PEAR::Mail_Mime里中文发件人名称无法发送邮件的问题

多了解一些BUG和漏洞,PHP架构师在设计应用时才能避免很多问题
收集各种PHP应用程序的bug及漏洞

PEAR::Mail_Mime里中文发件人名称无法发送邮件的问题

帖子沙漠之周 于 2009年 2月 24日 14:13

如题,在Mail_Mime 1.5.2版本里,如果发件人里包含非ascii字符,那么将无法发送成功。究其原因,是它没有正确分割邮件header里的邮件地址。

下面是参考人家的相应改动:
代码: 全选
$  diff mime.bak.php mime.php
926a927,935
>                       $hdr_value_suffix = "";
>                       // fix: non-us-ascii's From problem
>                       // (http://pear.php.net/bugs/bug.php?id=11238#1184306090)
>                       if (in_array($hdr_name, array('Reply-To', 'From'))) {
>                               $pos = strrpos($hdr_value, '<');
>                               $hdr_value_suffix = substr($hdr_value, $pos);
>                               $hdr_value = substr($hdr_value, 0, $pos);
>                               $hdr_value = trim($hdr_value, '"');
>                       }
1072c1081
<             $input[$hdr_name] = $hdr_value;
---
>                       $input[$hdr_name] = $hdr_value . $hdr_value_suffix;
沙漠之周
 
帖子: 4
加入时间: 2009年 2月 23日 10:00

Re: PEAR::Mail_Mime里中文发件人名称无法发送邮件的问题

帖子NT流人 于 2009年 2月 26日 17:10

有没有不要修改库的解决方案呀
在指尖流浪
1. Everything changes and ends. 所有的事情在变化,都有终结
2. Things do not always go according to plan. 事情总会出乎意料(计划)之外
3. Life is not always fair. 生活并不总是公平
4. Pain is part of life. 痛苦是生活的一部分
5. People are not loving and loyal all the time. 人们并不总是热爱和忠诚
头像
NT流人
网站管理员
 
帖子: 744
加入时间: 2008年 1月 2日 13:15


回到 程序BUG及漏洞

在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客