关于dz无不能很好的支持win服务器的邮件发送功能,导致密码不能找回,很多用户都很郁闷.我也搞了大半天才知道原因.
主要是由于邮件系统防止发垃圾邮件吧,邮件头里面必须包含 Message-ID:
不多说了,解决方法如下:
1.在include目录找sendmail.inc.php文件,用编辑器打开
2.在第39行或查找
- $headers = "From: $email_from\nMIME-Version: 1.0\nContent-type: text/plain; charset=$charset\nContent-Transfer-Encoding: base64\n";
复制代码
把代码修改如下:
- $headers = "From: $email_from\nMIME-Version: 1.0\nContent-type: text/plain; charset=$charset\nContent-Transfer-Encoding: base64\n";
- $nowdate = date("20ynjHis"); //服务器时间
复制代码
3,找如下代码:
- fputs($fp, "To: $email_to\r\nSubject: $email_subject\r\n$headers\r\n$email_message\r\n.\r\n");
复制代码
修改如下:
- fputs($fp, "To: $email_to\r\nSubject: $email_subject\r\nMessage-ID: <$nowdate@把这里改成发邮件的域>\r\n$headers\r\n$email_message\r\n.\r\n");
- sleep(3);
复制代码
保存文件,试试吧,一切ok咯
出处 http://www.gwng.net/viewthread.php?tid=7&pid=14
这个是第二种Esmtp方式的解决方案.我个人不建议使用php.ini的配置,这样你的邮件服务器就有被利用发垃圾邮件的危险.
我也在 winwebmail 3.7.0.7上面试验过,可行.
奇怪那么大堆人在问这个问题,DZ官方都不解决.
用telnet 登陆邮件服务器,用DZ的邮件输出格式手工测试,再对比用其他软件发送时有什么不同其实就知道了(又一个排除法的成功案例).
好了,用win的用户不用发愁了.
用winwebmail的用户,记得测试完毕以后关闭 "手工登陆"那个钩.
[ 本帖最后由 topscan 于 2006-12-25 12:51 编辑 ] |