1

我面临一个我不明白的问题。

我使用 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 }

应用程序/配置/参数.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
4

3 回答 3

1

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

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

于 2019-09-19T18:42:15.303 回答
0

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

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

于 2017-11-10T08:48:51.560 回答
0

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

于 2017-11-15T12:01:50.533 回答