No comments have been added to this post yet.

再谈WP Mail邮件头编码

AvP曾经完美解决过Wordpress中Subject编码的问题,而且发布过插件,也可以按照他的方法自行修改pluggalbe-functions.php文件。但我近日升级到Wp 2.0.1后发现,Wp的邮件头的信息不再像1.5只显示邮箱那么单调了,也开始能够显示From的信息了,但和以前的Subject一样,存在未编码的问题,所以在Gmail中看到的是乱码(如下图底部那一条)。Gmail 收取wp邮件图

还是老办法,让From的姓名字段用UTF-8和Base64编码起来就OK。当然首先Subject的部分还是不要忘记,用Avp的插件也好,自行修改也行。下面来谈From字段。打开wp-includes/pluggable-functions.php文件,找到339行和343行两处进行修改(wp 2.0.1为例),片段如下:
[code lang=”cpp”]if ( ‘’ == $comment->comment_author ) {
$from = “From: \”$blogname\” < $wp_email>“;
if ( ‘’ != $comment->comment_author_email )
$reply_to = “Reply-To: $comment->comment_author_email”;
} else {
$from = “From: \”$comment->comment_author\” < $wp_email>“;[/code]
两处$from进行编码,分别改为:
[code lang=”cpp”]$from = “From: \”=?UTF-8?B?”.base64_encode($blogname).”?=\” < $wp_email>“;
$from = “From: \”=?UTF-8?B?”.base64_encode($comment->comment_author).”?=\” < $wp_email>“;[/code]
完成后可以测试一下邮件通知,上图第一条即是修改后的效果,正确显示了。可以在Gmail的show original中得到确认:
[code lang=”cpp”]From: “=?UTF-8?B?TmV3IFRoZW1l5rWL6K+V5ZGY?=” [/code]

5 Comments

  1. Comments @ 17:29:56 on 2006-02-18

    我的服务商不提供mail()功能
    能否使用PHPmailer()来代替WP中的mail()呢?

    如果可以,如何修改?

    另外,你的Comment显示有点问题

    lwjct#hotmail.com

  2. Dark Comments @ 07:12:21 on 2006-02-19

    comment有什么问题?

    利用php发邮件你可以找一下好像有类似的插件。

  3. windix Comments @ 09:43:37 on 2006-02-22

    你可以看一下gslin的改法:
    http://blog.gslin.org/archives/2006/02/01/340/
    原理是一样的,不过他的那个通用性好一些。
    另外他说他准备提交到WP去,在源码上进行改进 :)

  4. erik Comments @ 22:45:01 on 2006-04-28

    请问有没有能够给注册用户群发邮件的WP2插件啊,谢谢!

  5. 威廉博客-William Blog » 博客存档 » 关于 WordPress 新用户注册时收不到注册确认邮件的问题 Pingbacks @ 19:54:56 on 2006-12-27

    […] 修改过pluggable-functions.php文件之后,邮件发送功能已经正常,而且PHPMailer有编码功能,发送出来的邮件的中文标题都很正常,无需再按照再谈WP Mail邮件头编码,WordPress 通知郵件標題的亂碼两篇文章所说的在调用处手工给From编码和在wp_mail函数里给Subject编码,也不用使用AvP的插件了。 […]