За последние 24 часа нас посетили 21928 программистов и 988 роботов. Сейчас ищут 664 программиста ...

Отправка писем из Laravel с помощью SMTP через yandex.ru

Тема в разделе "Laravel", создана пользователем xintrea, 3 апр 2019.

  1. xintrea

    xintrea Активный пользователь

    С нами с:
    25 фев 2019
    Сообщения:
    68
    Симпатии:
    0
    Для теста настроил в системе программу ssmtp, чтобы проверить как будет уходить почта через почтовый сервер yandex.ru. Настройки следующие:

    Код (Text):
    1.  
    2. root=***@yandex.ru
    3. mailhub=smtp.yandex.ru:465
    4. rewriteDomain=yandex.ru
    5. hostname=yandex.ru
    6. AuthUser=***
    7. AuthPass=***
    8. UseTLS=YES
    И с этими настройками почта отправляется.

    Теперь пробую использовать такие же настройки в Laravel. В файле .env прописано:

    Код (Text):
    1.  
    2. MAIL_DRIVER=smtp
    3. MAIL_HOST=smtp.yandex.ru
    4. MAIL_PORT=465
    5. MAIL_USERNAME=***
    6. MAIL_PASSWORD=***
    7. MAIL_ENCRYPTION=tls
    Однако, при отправке почты происходит ошибка:

    Код (Text):
    1.  
    2. Swift_TransportException
    3. Connection to tcp://smtp.yandex.ru:465 Timed Out
    Я пробовал другие комбинации порта и шифрования, но они тоже не работают:

    Код (Text):
    1.  
    2. 465, ssl:
    3. Swift_TransportException (553)
    4. Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user. "
    5.  
    6. 587, ssl:
    7. Swift_TransportException
    8. Connection could not be established with host smtp.yandex.ru [ #0]
    9.  
    10. 587, tls:
    11. Swift_TransportException (553)
    12. 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: Еще я пробовал поставить такую настройку:

    Код (Text):
    1.  
    2. MAIL_DRIVER=mail
    Все остальные значения MAIL_* приравнял null. Сделал я это
    в надежде, что стработает PHP-шная функция mail(), которая у меня работает с помощью настроенного ssmtp. Например, такой код работает:

    Код (Text):
    1.  
    2. <?php
    3. mail("sample@gmail.com", "Отправка через SSMTP агента", "Это проверка отправки");
    4. ?>
    Но после этой настройки и сброса кеша настроек:

    Код (Text):
    1.  
    2. $ ./artisan config:cache
    3. Configuration cache cleared!
    4. Configuration cached successfully!
    Попытка отправки почты завершается ошибкой:

    Код (Text):
    1.  
    2. Swift_TransportException
    3. Expected response code 220 but got an empty response
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям