uchome发送邮件小BUG
uchome中的发送邮件函数中,第一次没有进行清空缓冲区,造成发送第一封邮件会造成把页面所有数据发送出去,在 source/function_sendmail.php 文件的 16-18 行:
include template('sendmail');<br /> $message = ob_get_contents();<br /> obclean();
包含sendmail模版,读取缓冲区数据保存在 $message 变量中,然后清除。其实在include template('sendmail');之前,缓冲区里面应该有其他数据,这样就加在了一起保存在邮件内容中进行发送。
解决方法就是先清空一次缓冲区:
obclean();<br /> include template('sendmail');<br /> $message = ob_get_contents();<br /> obclean();
这样读取的话,就是完整的 sendmail 模版数据。
ps: 一开始搞了好久,没找到原因之前,我先向一个垃圾email里面发送一次,其后再向真正的目标邮件发送。比如:
//容错处理<br /> //sendmail("xxx@163.com",$subject, $mail_message); <br /> //发送<br /> if(!sendmail("recv_mail@gmail.com",$subject, $mail_message)) {<br /> ErrView("·发送邮件错误!",0);<br /> }
可能是我修改模版太多?
转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:uchome发送邮件小BUG
本文地址:http://www.woyigui.cn/2009/10/06/uchome-bug/
谢谢分享,
[回复]
我对发送邮件还是有点头疼的
[回复]