Заставляем Laravel отправлять e-mail'ы

 

Было замечено, что после установки Laravel не приходят емейлы. И такое происходит довольно часто особенно при смене хостинга.

В качестве отправки использую базовый sendmail. Чтобы понять причину нужно пробежаться по настройкам. В первую очередь смотрим в файл базовых настроек .env

       //файл .env

       MAIL_MAILER=sendmail
       MAIL_HOST=null
       MAIL_PORT=null
       MAIL_USERNAME=null
       MAIL_PASSWORD=null
       MAIL_ENCRYPTION=null
       MAIL_FROM_ADDRESS=info@test.ru
       MAIL_FROM_NAME="${APP_NAME}"
  

 

Здесь у нас некая интересная строка с MAIL_FROM_ADDRESS, в которой что-то прописано. Вот это что-то должно совпадать с емейл отправителя, от которого приходит наше письмо получателю, человеку которому отправляем письмо. Иначе письма не будут уходить (а вернее приходить).

Поскольку функция у нас sendmail (т.е. стандартная функция сервера по отправке почты), нужно узнать адрес с которого приходят серверные письма. Для этого отправим email с сервера стандартной php функцией mail() и посмотрим адрес отправителя. Заодно и проверим работает ли базовая функция mail() на нашем хостинге.

       //любой базовый исполняемый php файл сервера
      // функция mail($to,$theme,$message)

      mail('na_moi@email.ru','тема email','текст email')
       
  

 

Если ошибок не допущено и почтовый сервер на хостинге работает корректно, то на почту na_moi@email.ru придет емейл. У меня хостинг на timeweb и email пришло от адресата de15639@vh226.timeweb.ru. Его-то и нужно прописать в настройки.

       //файл .env

       MAIL_FROM_ADDRESS=de15639@vh226.timeweb.ru
  

 

После чего обновить кэш конфигов и проверить что емейлы теперь доставляются. Если другим проблем нет, то email должны приходить.

Кейсы