原因:当smtp服务器反应慢或者网络比较慢时,DZ在未收到smtp服务器的回应之前就过早地把连接关闭掉,于是smtp服务器就弃掉了邮件,出现邮件被吞掉的假象。这种现象在smtp服务器及网络速度都较快时是不会出现,邮件能正常送出。
但为什么会过早地关掉连接呢?因为这是一个BUG,而且翻查后发现,这个BUG原来从旧版本一直沿袭至今。修补办法如下:

打开include\sendmail.inc.php文件
找到fputs($fp, "QUIT\r\n");这一行
在这一行之前插入如下代码:

$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
$errorlog('SMTP', "($mail[server]mail[port]) DATA - $lastmessage", 0);
}


经修正后,DZ会等待smtp服务器的正式回应后才会把连接关闭掉,保证了邮件正常发送。

转载自:
http://www.discuz.net/thread-727394-1-1.html
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]