PHP4.3.10的一个重要BUG及解决

zealy 在 周四, 2005-01-06 15:25 提交      Drupal技术

  今天将网站的PHP版本升级到最新的4.3.10,结果发现一个重要的Bug,在网站发送邮件时会失败,导致不能发送注册邮件和取密码邮件,提示是:Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in....

  查了一下,应该是PHP Bug #28976,这个Bug参见http://bugs.php.net/bug.php?id=28976,居然说是4.3.6就有了,但前一阵子用4.3.8却没有发现这一现象。具体表现是明明在php.ini中已经设定了sendmail_from,在php代码中用ini_get()也能正确的获得其值,但是将header传送给邮件函数就是报错,倒!

  test.php:
  <?php
     mail('example@php.com','subject','body',"From: eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%6d%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))\r\n");
   /*直接将From传入都不行,仍然是:
    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:"
     header missing in C:\dev\quiktests\test.php on line 3
   */
  ?>

  解决的方法可以通过修改php的源代码重编译来解决,……太麻烦了吧?

  最简单的法子是在调用ini_get("sendmail_from")之前,先ini_set("sendmail_from", $tempFromAddress)一下就OK了。然后等着PHP的新版本吧!

此内容的Trackback地址:

http://blogme.cn/trackback/2615

十年、十年又十年 | 发表评论 | 打印版本 | 已被阅读8347次


zealy | 周四, 2005-01-06 15:53

PS: 发现4.3.10的邮件功

PS: 发现4.3.10的邮件功能还是有问题的,现在在代码里收邮件也不行了。还不知道是不是PHP本身的问题,如果是的话,恐怕只好回到4.3.8看看了。

——————我何处不去攀登——————


zealy | 周四, 2005-01-06 15:57

因此,大家暂时不要

因此,大家暂时不要通过Email发送Blog到网站!

——————我何处不去攀登——————


zealy | 周五, 2005-01-07 00:06

邮件发布Blog功能已正常

邮件发布Blog功能已正常。请放心使用。

——————我何处不去攀登——————


zealy | 周四, 2005-01-06 16:00

这个问题只出现在Windo

这个问题只出现在Windows平台,详细代码对比参见 http://marc.theaimsgroup.com/?l=php-dev&m=109286883222906&w=2

——————我何处不去攀登——————


关于 zealy

zealy
zealy 的图片

用户登录

导航

zealy 的存档

« 三月 2010  
周一 周二 周三 周四 周五 周六 周日
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

zealy 的聚合

RSS 2.0
XML feed
ATOM 0.3
XML feed