我正在使用:
当我想发送5封或更多电子邮件时,我有以下两条错误消息(如果我发送1或2或4封电子邮件,它会完美运行......):
注意:fwrite():40字节的发送失败,errno = 32 Broken pipe in /appli/projects/APACHE-PHP/apache_2.4/htdocs/APACHE-PHP/project/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php 在第231行
注意:fwrite():发送6个字节失败,errno = 32 Broken pipe in /appli/projects/APACHE-PHP/apache_2.4/htdocs/APACHE-PHP/project/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php 在第231行
我添加了一个Try / Catch(通过搜索其他帖子):
foreach($messages as $message){
try{
$this->get('mailer')->send($message);
}catch (Exception $e){
printf("Error: %s\n", $e->getMessage());
$mailer->getTransport()->stop();
sleep(10);
}
}
但它仍然没有用......
这很奇怪,因为如果我尝试使用PHP邮件功能的简单示例,我可以发送超过5封电子邮件(例如12封电子邮件):
<?php
$msg = "Suspendisse vestibulum et lectus eu pellentesque. ";
$headers = "From: mypersonalemail@anyidea.com" . "\r\n" .
"CC: mypersonalemail@anyidea.com";
for($i = 1; $i <= 12; $i++){
mail("recipient@anyidea.com","Test",$msg, $headers);
}
?>
它与PHP mail()函数完美配合,但是当我尝试使用Swiftmailer时,我可以发送超过5封电子邮件...为什么?
有任何建议吗?
答案 0 :(得分:0)
有很多关于此的错误报告,以及相关主题中的几个解决方法。
(您在or close enough上面发布的简单试用/捕获对我有用,所以将其转发给正在寻找解决方案的其他人。)
while (true) {
while ($message = $queue->pop()) {
try { $mailer->send($message); }
catch (Exception $e) { printf("Error: %s\n", $e->getMessage()); }
}
$mailer->getTransport()->stop();
sleep(5);
}