Symfony 3:Swiftmailer在使用swiftmailer时不会从网站发送电子邮件:email:send命令

时间:2017-11-09 18:39:11

标签: symfony swiftmailer mailjet

我遇到了一个我不明白的问题。

我使用SwiftMailer使用Mailjet SMTP从网站发送电子邮件(例如:注册确认)。邮件不会被发送。

Symfony探查器说我在创建用户帐户时会假脱机1封邮件,但永远不会发送。 php bin / console swiftmailer:spool:send返回0封电子邮件发送。我尝试了内存和文件假脱机。

当使用php bin / console swiftmailer:email:send时,邮件被正确发送(邮件有mailjet标题,并且它们在mailjet发送的邮件界面中)。

当我尝试使用OVH SMTP时,邮件会从应用程序和cli命令中正确发送,因此问题似乎是SwiftMailer配置错误。

这是我的设置:

应用程序/配置/ config.yml

swiftmailer:
    transport: "%mailer_transport%"
    host:      "%mailer_host_prod%"
    port:      "%mailer_port_prod%"
    encryption:"%mailer_encryption_prod%"
    username:  "%mailer_user_prod%"
    password:  "%mailer_password_prod%"
    spool:     { type: memory }

应用程序/配置/ parameters.yml

mailer_transport: smtp

mailer_host_prod: in-v3.mailjet.com
mailer_port_prod: 587
mailer_encryption_prod: tls
mailer_user_prod: api_key
mailer_password_prod: api_secret

mailer_host_ovh: ssl0.ovh.net
mailer_port_ovh: 465
mailer_encryption_ovh: ssl
mailer_user_ovh: email
mailer_password_ovh: password

3 个答案:

答案 0 :(得分:0)

创建消息时,您的请求是否完成没有任何错误?

On https://symfony.com/doc/current/email/spool.html:“这意味着只有在没有任何未处理的异常或任何错误的情况下执行整个请求时才会发送电子邮件。”

答案 1 :(得分:0)

最后,发件人的电子邮件错了。我忘了在生产后更新它。 此时,Mailjet成功收到电子邮件,但将其放入队列并且不发送。在Symfony方面,它是成功的。

答案 2 :(得分:0)

对我有用。我遇到了同样的问题,但是在发送电子邮件之后退出了,在这种情况下,假脱机程序不发送电子邮件,因为内核无法正常结束。如果您删除假脱机:{type:memory},它将发送电子邮件。

要使用假脱机正确发送电子邮件,则需要正确结束内核。