【发布时间】:2026-02-12 20:10:02
【问题描述】:
在我目前正在工作的当前项目中,我有一个 symfony 任务,它运行一些向数据库插入大量数据并运行至少半小时。 当任务开始时,邮件通知被正确发送,问题是在任务执行时我们无法发送另一封邮件来通知处理结束。
邮件工厂当前配置了假脱机传递策略,但在这种特定情况下,我们希望使用 sendNextImmediately() 方法立即触发通知。
我遇到了异常:
[Swift_TransportException]
预期响应代码 250,但得到代码“451”,消息“451 4.4.2 超时 - 关闭连接。74sm1186065wem.17 "
以及 php 日志文件中的流动错误:
警告:fwrite(): SSL: Broken pipe in /var/www/project/lib/vendor/symfony/lib/vendor/swiftmailer/classes/Swift/Transport/StreamBuffer.php 在第 209 行
有人可以帮忙吗? 有什么方法可以刷新 symfony 邮件程序以建立新连接?
【问题讨论】:
-
您能否显示您正在使用发送第二条消息的代码。您正在创建一个新的 swiftmailer 实例,对吗?
-
@Tom 每条消息的代码都非常相似: $message = $this->getMailer()->compose(); $message->setFrom(sfConfig::get('app_notifications_from_address'), sfConfig::get('app_notifications_from_address_name')); $message->setTo(sfConfig::get('app_notifications_to_error_support_address')); $message->setBody($html, 'text/html'); $this->getMailer()->sendNextImmediately()->send($message);我错过了什么吗?
-
好的,看来您已经解决了。这或多或少是我所追求的……要么停止/启动,要么完全创建一个新实例。
标签: symfony1 swiftmailer