【问题标题】:Disable swiftmailer spool in Symfony per environment在每个环境中禁用 Symfony 中的 swiftmailer 假脱机
【发布时间】:2014-03-26 21:32:39
【问题描述】:

我无法通过控制台命令使用 symfony2 发送批量电子邮件。我想为控制台正在运行的环境禁用邮件假脱机完成,但让它在默认环境下工作。所以我在 config.yml 中有这个:

swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    port:      %mailer_port%
    username:  %mailer_user%
    password:  %mailer_password%
    spool:     %mailer_spool_type%

然后每个环境都有它的参数,如parameters_prod.yml:

parameters:
    mailer_transport:       smtp
    mailer_host:            smtp.someserver.net
    mailer_port:            587
    mailer_user:            "someuser"
    mailer_password:        "somepassword"
    mailer_spool_type:      { type:memory }

然后对于控制台环境,我使用 parameters_cron.yml:

parameters:    
    mailer_spool_type: ~

问题在于使用~null 实际上并没有关闭阀芯,而是使用{cache: file, path: %kernel.cache_dir%/swiftmailer/spool } 的默认值

有没有办法只通过更改参数来禁用阀芯,还是有更好的方法?

【问题讨论】:

  • 有任何反馈吗?我的解决方案对您有用吗?

标签: php symfony yaml swiftmailer


【解决方案1】:

显然,禁用电子邮件假脱机的唯一方法是从配置文件中完全忽略假脱机条目。在主配置文件中包含假脱机条目后,就无法针对特定环境禁用假脱机。

也就是说,您可以完成与您建议相反的操作:您可以默认禁用电子邮件假脱机并在特定环境中启用它。

把它留在config.yml:

swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    port:      %mailer_port%
    username:  %mailer_user%
    password:  %mailer_password%

并将其包含在config_prod.yml

swiftmailer:
    spool:     %mailer_spool_type%

【讨论】:

  • 这是目前唯一可行的禁用假脱机的方法。
  • 在 symfony 4.2 中你需要在 swiftmailer.yaml 中注释 spool 行
猜你喜欢
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 2016-04-08
  • 2018-07-09
  • 2011-08-11
  • 1970-01-01
相关资源
最近更新 更多