首页 > Web > 解决phpmail发邮件时中文标题乱码的问题

解决phpmail发邮件时中文标题乱码的问题

2009年10月10日 timmy 发表评论 阅读评论 349 views

今天心血来潮给博客装上留言、评论回复自动邮件通知评论者的插件,几经周折,用gmail以及gmail托管的@timmyvicky.com邮箱都失败了,后来用了一个163的,速度还算不错,不过测试时出问题了,中文标题乱码了。

去bo-blog论坛上插件帖子上翻,发现很多人都有这样的问题,不过作者(江湖人称 疯淫 的牛人)貌似没有给出解决办法。

怎么办呢?这样的用户体验肯定不好。于是开始分析问题所在。

首先可以肯定一点,乱码,那么问题自然出在编码上。

第一感觉想到的是会不会插件的php文件编码有问题。于是逐个打开插件里面的文件查看,全都是utf-8无bom,正常。pass~

然后开始想,标题乱码,但是邮件内容却是正常的,那会不会问题出在邮件的编码定义上?
于是打开乱码的邮件以及其他wp博客上自动回复给我的正常的邮件的原始头部信息进行比较,后来发现了问题所在。

原来"Content-Type:text/html;"这一行少了"charset=UTF-8"进行字符集定义。
找到问题根源了,于是顺藤摸瓜找到function.php(如果没改动过的话应该是在第73行)中的那行代码,将
[codes=php]  $header .= "Content-Type:text/html \r\n";[/codes]
替换为
[codes=php]  $header .= "Content-Type:text/html; charset=UTF-8 \r\n";[/codes]

然后保存并上传覆盖原文件,这样乱码标题问题就解决了。

这里提供修改好的function.php文件:
function.rar

以及修改过的replyback插件(仅仅修改了function.php文件):
replyback.rar

若日志经rss订阅或导入到外站,可能有些视频和图片无法显示,请点击原文链接查看。
本文链接地址: http://imtimmy.com/phpmail-email-address-when-you-issue-the-chinese-title-of-garbage/

转载请注明: 转载自Timmy's Blog

如果你觉得本博内容不错,欢迎 [订阅 Timmy's Blog],以便第一时间了解本博更新内容;


不妨再看看这些相关的日志:

  1. jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
  2. Google地图API应用:根据宁波各公园经纬度值在地图上作标记,并连线
  3. 博客搬家完毕——附不同环境下网站进行301重定向的方法
  4. 巧用CSS为图片添加修饰点缀效果
  5. 解决ie8的兼容性问题

分类: Web 标签: , , ,
  1. 2009年10月9日20:26 | #1

    charset=UTF-8的问题,处处都会遇得到 无奈啊

    timmy Reply:

    是啊。积累经验,以后遇到类似的问题就不用绕很大弯子了

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :cool: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O