【问题标题】:symfony swiftmailer: mail not sent in prod-environmentsymfony swiftmailer:邮件未在产品环境中发送
【发布时间】:2016-04-08 08:42:57
【问题描述】:

我有一个 symfony 2.8 应用程序,实现了 fosuserbundle。在dev环境下会发送注册确认邮件,prod环境下不会发送。没有日志信息,smpt配置正确。

sf 版本:2.8.1 swiftmailer-bundle 版本:当前(与 sf 版本兼容;2.* in composer json) fosuserbundle:1.3.5(作曲家中的*

开发配置:

imports:
    - { resource: config.yml }

framework:
    router:
    resource: "%kernel.root_dir%/config/routing_dev.yml"
    #strict_requirements: true
    profiler: { only_exceptions: true }

web_profiler:
    toolbar: true
    intercept_redirects: true

assetic:
    use_controller: true

有人遇到同样的问题吗?

编辑

我刚刚在prod env 中尝试使用以下控制台命令发送邮件:php sf --env=prod swiftmailer:email:send

终端输出:

#!/usr/bin/env php
From: test@antondachauer.de
To: mail@antondachauer.de
Subject: test
Body: test
Sent 1 emails

但是邮件还没有发送。在dev 环境中,它也适用于终端。

【问题讨论】:

  • prod环境是在同一台服务器上吗?您是否更改了 Swiftmailer 的任何标准配置设置,和/或您是来自全新的 2.8.1 安装还是从以前的版本升级?您使用的是什么操作系统?
  • 生产环境在同一台服务器上(Ubuntu 14.04)。我已经从 2.3.x 更新并使用默认的 swiftmailer 配置
  • 你试过清除缓存吗?
  • swiftmailerconfig*.yml文件中的配置是什么?它使用卷轴吗?它是如何链接到 FOSUserBundle 的?是从未发送过所有电子邮件,还是仅发送来自 FOSUserBundle 的电子邮件?
  • 看看app/logs/prod.log 可能会有所帮助

标签: php symfony fosuserbundle swiftmailer


【解决方案1】:

我尝试了here提到的所有解决方案, 这是“gethostbyname”和“更改 Gmail 的 smtp”,但它不起作用。

挖了几天,找到了解决办法,需要把加密改成tls,并在config的stream_options中添加ssl。从安全角度来看,不建议这样做,但它适用于我的情况。

parameters.yml

mailer_prod_encryption: tls

config.yml

swiftmailer:
  transport:  "%mailer_dev_transport%"
  host:       "%mailer_dev_host%"
  username:   "%mailer_dev_user%"
  password:   "%mailer_dev_password%"
  encryption: "%mailer_dev_encryption%"
  auth_mode:  "%mailer_dev_auth_mode%"
  spool:     { type: memory }
  port: 25
  stream_options:
    ssl:
      allow_self_signed: true
      verify_peer: false

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 2014-11-19
    • 2016-02-23
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多