我一直在砸我的头试图排除这一个......任何线索将不胜感激。使用PHPMailer发送SMTP邮件,'MAIL不被服务器接受'的回应,为什么?
我在运行exim的Ubuntu 12.04服务器上通过PHPMailers SMTP类本地发送邮件。如果我只发送10条消息,一切正常。但是,如果我排队发言权260+的消息,并尝试一个送他们相继我可以保证,他们〜30将与行返回:
MAIL not accepted from server
他们都去同一个地址(另一个230成功地在那里),我可以看到有时exim中的队列正在运行,所以如果我只是使用'Mail'命令,可能会导致这种情况,为什么不会发生这种错误呢?
在此先感谢。
本
PS:我不使用邮件命令,因为我实际上从SMTP输出提取消息ID
UPDATE
我已经做了一些更多的挖在PHPMailers class.smtp.php文件中,并在Mail函数内添加了一个var_dump或两个,并且我也将调试级别提高到了4(以便我看到每个SMTP响应)。看起来$this->getLines()
函数正在从套接字读取一个空白行...... class.smtp.php正在解释(推测不正确)然后释放。这是一个有效的回应?为什么telnet不会返回..?
您是否尝试在邮件之间放置'sleep(1);'延迟?可能会限制您可以在一定时间内发送多少封邮件。 – Peon 2012-07-18 13:17:43
我确实在每封邮件之后。事实上,如果我收到这条消息,我还需要额外安装一个睡眠(1)命令:( – Ben 2012-07-18 13:35:35
听起来像你需要检查邮件服务器日志中正在写入的内容) – Peon 2012-07-18 16:25:50