【问题标题】:Symfony 2 and Swiftmailer not working with file spoolingSymfony 2 和 Swiftmailer 不使用文件假脱机
【发布时间】:2016-04-03 17:06:54
【问题描述】:

我无法让文件假脱机与 Symfony 2 和 Swiftmailer 一起正常工作。

这是我的配置

# Swiftmailer Configuration
swiftmailer:
    transport:      %mailer_transport%
    host:           %mailer_host%
    username:       %mailer_user%
    password:       %mailer_password%
    spool:
        type: file
        path: '%kernel.root_dir%/spool'
    port:           %mailer_port%
    encryption:     %mailer_encryption%
    sender_address: %mailer_sender_address%

当我发送电子邮件时,会在 app/spool/default/ 中创建一个文件

然后我运行

php app/console swiftmailer:spool:send

并获得此响应

[2015-12-29 18:54:40] Processing default mailer... 1 emails sent

看起来它已经工作了,但没有发送任何内容,并且 /var/log/mail.log 没有显示任何新电子邮件。

当我将配置设置为内存假脱机时,电子邮件正常工作,我只更改了 config.yml

swiftmailer:
    spool: { type: memory }

改为

swiftmailer:
    spool:
        type: file
        path: '%kernel.root_dir%/spool'

我正在使用 sendgrid 和 postfix 来实际发送电子邮件,但我不确定电子邮件是否会到达 postfix,所以这可能没有任何区别。

【问题讨论】:

  • 你用 symfony 2.8 或 3.0 测试过吗?反序列化电子邮件文件内容时,这可能是一个内部错误。此外,即使您说将类型设置为内存时它也有效,您也应该尝试使用 gmail smtp。
  • 我还没有尝试过其他版本。但是基于我遇到的类似问题(在命令中使用内存假脱机),我怀疑这是我为我的邮件获取的传输的问题。在我的另一个问题中,当命令终止并刷新队列时,我不断收到 NullTransport。
  • 我尝试使用您提供的确切配置重现该错误,但没有运气。可能问题出在其他地方。
  • 您的控制台命令是否在正确的环境中运行?您是否有 swift mailer 的备用开发设置以不实际发送电子邮件?
  • 正如@Codezilla 提到的,检查你没有:disable_delivery: true 在你正在使用的环境的 config.yml 文件中

标签: symfony swiftmailer symfony-2.7


【解决方案1】:

问题最终是默认环境。我需要做的就是指定一个不同于 dev 的环境

php app/console swiftmailer:spool:send --env=prod

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    相关资源
    最近更新 更多