Для теста настроил в системе программу ssmtp, чтобы проверить как будет уходить почта через почтовый сервер yandex.ru. Настройки следующие:
root=***@yandex.ru
mailhub=smtp.yandex.ru:465
rewriteDomain=yandex.ru
hostname=yandex.ru
AuthUser=***
AuthPass=***
UseTLS=YES
И с этими настройками почта отправляется.
Теперь пробую использовать такие же настройки в Laravel. В файле .env прописано:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.yandex.ru
MAIL_PORT=465
MAIL_USERNAME=***
MAIL_PASSWORD=***
MAIL_ENCRYPTION=tls
Однако, при отправке почты происходит ошибка:
Swift_TransportException
Connection to tcp://smtp.yandex.ru:465 Timed Out
Я пробовал другие комбинации порта и шифрования, но они тоже не работают:
465, ssl:
Swift_TransportException (553)
Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user. "
587, ssl:
Swift_TransportException
Connection could not be established with host smtp.yandex.ru [ #0]
587, tls:
Swift_TransportException (553)
Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user. "
Вопрос. Как заставить работать почту в Laravel через smtp?
UPD: Еще я пробовал поставить такую настройку:
MAIL_DRIVER=mail
Все остальные значения MAIL_* приравнял null. Сделал я это
в надежде, что стработает PHP-шная функция mail(), которая у меня работает с помощью настроенного ssmtp. Например, такой код работает:
<?php
mail("sample@gmail.com", "Отправка через SSMTP агента", "Это проверка отправки");
?>
Но после этой настройки и сброса кеша настроек:
$ ./artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
Попытка отправки почты завершается ошибкой:
Swift_TransportException
Expected response code 220 but got an empty response