15
Feb

WordPress邮件标题乱码的解决方案

这个问题相信很多人已经遇上过了,网上也有不少解决方案。

我的这个办法也是来自于网络,只不过把它简单化了一下,做成了插件形式,上传到${blog_install_dir}/wp-content/plugins/后激活即可。

急着回家过年,没有来得及充分测试,需要的请下载: WordPress Cube Mailer Plugin

Shawn 那里看到,目前这个插件只解决了标题乱码的问题,而内容部分在有中文回复的时候在某些主机上可能仍会显示成乱码。如果你的wordpress只是标题乱码而内容正常,那上面的插件仍可以继续下载使用并正常工作。

由于之前对wordpress的代码结构并未做过深入了解,发觉如果使用插件方式直接覆盖定义wp_mail()和wp_notify_postauthor() 等函数,会导致PHP报函数重复定义的错误。

google之后发现解决方案有两个,一种是启用WP的my-hacks.php支持,也就是Shawn用到的方法,大家可以去他那里 下载。 还有一种方式我觉得更为稳妥,WP本身提供了filter功能,针对特定流程中的某些步骤加以用户自定义功能,而发信功能恰好在受支持之列。具体可以看看 終極邊疆BLOG 上的说明,同时从那里下载相应的插件激活即可。

另外补充一点,著名的Spam Karma 2(SK2) 插件在发信时没有调用系统函数,而是自己写了邮件发送部分的代码,故由它发出的邮件可能仍有部分地方会是乱码(标题或内容)。针对这个我改了改它的代码(version 2.3rc1),省去各位劳心之苦。可以从这里下载:spam_karma_2_plugin_fixed.zip

希望大家在用到上面的方法后,遇到问题能够反馈一下,以便改进。

4 Comments

  • 无名氏 Said:

    仅作测试用。
    试试看而已

  • aigou Said:

    谢谢你的资料

  • Mr. J’s Blog » Blog Archive » 關於WordPress使用於Bluehost上的注意事項 Said:

    [...] 在網路上找到大家的做法是寫了一個插件(源作者站)來解決郵件標題亂碼的問題,這個插件的原理是替換掉Pluggable.php內的郵件發送部分,自行指定該部分的編碼。結合我自己的情況,將 Pluggable.php內的wp_mail部分重寫,分別指定郵件頭、郵件標題和郵件正文的編碼為base64也就是utf-8就可以了。考慮到日後 升級會比較麻煩,也可以將修改後的wp_mail部分寫入my-hacks.php這個文件,啟用my-hacks.php支持以後,這個文件內的修改內 容就會替換掉原有pluggable.php內的功能字段。順便附上修改好的my-hacks.php,使用時先到後台的「選項-雜項」內開啟my-hacks.php支持,然後將其放置在wp根目錄下即可。 [...]

  • 解决 Wordpress 邮件乱码和盗链问题 Said:

    [...] 以前使用国内的空间没有遇到过这种问题,可以确定是编码不同造成的。 Google 了一下相关的内容,发现我和别人的遭遇不太一样。大多数 Wordpress 使用者收到的邮件仅仅是标题乱码,而我接收到的邮件连内容都是。Cube同学写了一个插件来解决邮件标题乱码的问题,这个插件的原理是替换掉 Pluggable.php 内的邮件发送部分,自行指定该部分的编码。结合我自己的情况,将 Pluggable.php 内的 wp_mail 部分重写,分别指定邮件头、邮件标题和邮件正文的编码为 base64 也就是utf-8就可以了。考虑到日后升级会比较麻烦,也可以将修改后的 wp_mail 部分写入 my-hacks.php 这个文件,启用 my-hacks.php 支持以后,这个文件内的修改内容就会替换掉原有 pluggable.php 内的功能字段。顺便附上 修改好的my-hacks.php ,使用时先到后台的“选项-杂项”内开启 my-hacks.php 支持,然后将其放置在 wp 根目录下即可。 [...]

LEAVE A COMMENT

Comments RSS Feed   TrackBack URL