Проблема с отправкой писем в Heroku с помощью Swiftmailer

Я написал приложение на symfony 4. Я развернул его на героку. Все работает как надо, за исключением отправки писем. Когда я пытаюсь отправить электронное письмо с консоли следующим образом:

heroku run php bin/console swiftmailer:email:Send

Исключение при очистке очереди электронной почты: не удалось пройти аутентификацию на SMTP-сервере с именем пользователя «[email protected]» с использованием 1 возможной аутентификации. Authenticator LOGIN вернул Swift_TransportException: ожидаемый код ответа 235 Пожалуйста, войдите в систему через свой веб-браузер и повторите попытку. Подробнее см. На странице https://support.google.com/mail/answer/78754. i65sm11848023qkh.49 - gsmtp "в /app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:457

Это мой файл swiftmailer.yaml:

swiftmailer: transport: gmail username: username password: ******** host: localhost port: 465 encryption: ssl auth-mode: login spool: { type: 'memory' } stream_options: ssl: allow_self_signed: true verify_peer: false verify_peer_name: false

Как исправить эту ошибку?


person Major Kuprich    schedule 17.12.2018    source источник
comment
Gmail требует особой конфигурации (symfony doc). Вы уверены, что это не smtp, которое вам нужно использовать как transport?   -  person Pouette    schedule 18.12.2018
comment
Я пробую, но не работает. Я также сменил хост на smtp.gmail.com. Но все равно получаю ту же ошибку.   -  person Major Kuprich    schedule 18.12.2018


Ответы (1)


Проблема в Gmail. Хотя я настроил безопасность, чтобы разрешить менее безопасные приложения, и сообщения электронной почты с локальных хостов отправляются правильно, когда я выполняю ту же операцию в gmail heroku, я вижу новое устройство - к сожалению, я не могу добавить его на доверенные устройства, поэтому оно заблокирован.

Решением было изменить почту, например на yandex.com. Вот пример файла swiftmailer.yaml, правильно настроенного для heroku:

swiftmailer:
  transport:        smtp
  username:         username
  password:         ********
  host:             smtp.yandex.com
  port:             465
  encryption:       ssl
  auth-mode:        login
  spool: { type: 'memory' }
  stream_options:
    ssl:
      allow_self_signed: true
      verify_peer: false
      verify_peer_name: false

person Major Kuprich    schedule 18.12.2018