Swiftmailer破管错误

时间:2017-05-09 13:51:41

标签: php email swiftmailer symfony-2.8 rhel6

我正在使用:

  • RHEL 6.6
  • Symfony 2.8.18
  • PHP 5.5.30
  • Apache 2.4.10
  • MySQL 5.1.73

当我想发送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封电子邮件...为什么?

有任何建议吗?

1 个答案:

答案 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);
}