首页 > 编程地带 > uchome发送邮件小BUG

uchome发送邮件小BUG

2009年10月6日 发表评论 阅读评论

  uchome中的发送邮件函数中,第一次没有进行清空缓冲区,造成发送第一封邮件会造成把页面所有数据发送出去,在 source/function_sendmail.php 文件的 16-18 行:

  include template(&#039;sendmail&#039;);<br />  $message = ob_get_contents();<br />  obclean();

包含sendmail模版,读取缓冲区数据保存在 $message 变量中,然后清除。其实在include template('sendmail');之前,缓冲区里面应该有其他数据,这样就加在了一起保存在邮件内容中进行发送。
解决方法就是先清空一次缓冲区:

obclean();<br />  include template(&#039;sendmail&#039;);<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/

分类: 编程地带 标签:
  1. 2009年10月7日03:07 | #1

    谢谢分享,zan

    [回复]

  2. 2009年10月7日09:58 | #2

    我对发送邮件还是有点头疼的

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*