使用Swiftmailer在Heroku中发送电子邮件的问题

时间:2018-12-17 22:08:32

标签: symfony heroku deployment gmail swiftmailer

我用symfony 4编写了一个应用程序。 我将其部署在heroku上。 除发送电子邮件外,其他所有操作均应正常进行。 当我尝试从控制台像这样发送电子邮件时:

heroku run php bin/console swiftmailer:email:Send
  

刷新电子邮件队列时发生异常:使用用户名“ healthcard95@gmail.com”在SMTP服务器上无法使用1种可能的身份验证进行身份验证   ors。 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

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

问题出在Gmail中。 尽管我已设置安全性以允许安全性较低的应用程序,并且当我在gmail heroku中执行相同的操作时可以正确发送来自本地主机的电子邮件,但我看到了一个新设备-不幸的是,我无法将其添加到受信任的设备中,因此被阻止。

解决方案是更改邮件,例如在yandex.com上。 这是为heroku正确配置的示例文件swiftmailer.yaml:

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