|
六
16
|
update on 2007.6.23:WP更新到2.2中文版后,发现不存在邮件乱码的问题了,只是需要修改发送人地址为自己就可以了,原来点点已经修正了其中相关代码。

如果你是使用 WordPress ,又刚好是租用 Hostmonster 的虚拟主机,可能会遇到邮件乱码,而且由 Wordpress 发出的邮件寄件者是xxx@host62.hostmonster.com,如果你想解決乱码问题,并将邮件寄件者改为自己的 EMAIL ,可以按照下面方式修改。
引起问题的主要原因是:默认不支持非 ASCII 编码的信息传递。 放狗搜索了一下,总结几个解决的方法:
使用 mb_send_mail 代替 mail 函数,目的是在提交信息给 MTA 前,将信息使用适合的字符重新编码。
先下载其制作的 my-hacks.rar (4.48 KB)文件,修改后缀名为.php,修改第13、66行的发信地址为您的电邮地址,并上传至 WordPress 根目录。然后登陆您的后台,在“设置”-“其他”中,将“兼容旧版 WordPress 中的 my-hacks.php 文件”钩选并保存即可。
PS:目前本人应用这种方法。
方法二:原理来自台湾的网友C.H.Weng
修正邮件本身的 header、subject 以及内容,使大多数的邮件软体与网页可以正确读取。
这方法虽然不错,但是因为考虑到还有一些系统没有完全支持 UTF-8,容易产生一些預期之外的状况。因此,除非你很执着一定要采用 UTF-8 编码,不然不建议用这个方式修改。
由于不易掌握送到 wp_mail 这个函式的资料型式,因此这个方法可能还有一些盲点存在。不过至少 WordPress 本身用到关于寄信的功能、以及 WP-DB-Backup、Spam Karma 2 等等插件都能正常运作。
先下载其制作的 wp-mail2utf8.rar (1.64 KB)文件,修改文件名为my-hacks.php(注意后缀名),并上传至 WordPress 根目录。然后登陆您的后台,在“设置”-“其他”中,将“兼容旧版 WordPress 中的 my-hacks.php 文件”钩选并保存即可。
PS:这个方法是直接从WP中读取邮件地址,可随着你在WP中修改邮件地址,自动改变,本人未做测试,如果有异常情况,请联系原作者。
方法三:原理来自台湾的网友C.H.Weng
目前常見的各大论坛,为求最大相容性,就算论坛本身是 UTF-8 编码,在寄发邮件的时候,还是将邮件內容转成 Big5 编码来寄送。这方法较前一个的相容性好上许多,缺点就是没办法兼顾到 UTF-8 多语系并存的特色,而且服务器本身必须有 iconv 功能,才能进行转换。这边我一样直接对 wp_mail 函式下手,这样处理过后,凡是藉由这个函式送出的邮件,就全部都是 Big5 编码的形式了。
先下载其制作的 wp-mail2big5.rar (703 Bytes)文件,修改文件名为my-hacks.php(注意后缀名),并上传至 WordPress 根目录。然后登陆您的后台,在“设置”-“其他”中,将“兼容旧版 WordPress 中的 my-hacks.php 文件”钩选并保存即可。
PS:这个方法是直接从WP中读取邮件地址,可随着你在WP中修改邮件地址自动改变,本人未做测试,如果有异常情况,请联系原作者。
(注意:此方法修改为BIG5发送,理论上可以修改源代码实现简体形式,本人未做测试,欢迎有才人士修改后反馈)
方法四:使用插件,当然以上的方法都可以做成插件,感兴趣的朋友可以自己制作,记得反馈哦。
插件名称:UTF-8 Mail Header Fix (PipperL version)
最新版本:v1.3
适用版本:WordPress 2.X
官方站点:終極邊疆BLOG
文件名称:utfmail_PL_13.zip (1.35 KB)
补充说明一:
著名的 Spam Karma 2(SK2) 插件在发信时没有调用系统函数,而是自己写了邮件发送部分的代码,故由它发出的邮件可能仍有部分地方会是乱码(标题或内容)。碎片已针对这个问题修改了它的源码(version 2.3rc1),省去各位劳心之苦。文件名称: spam_karma_2_plugin.zip (13.42 KB)
补充说明二:
修改 php.ini 文件实现使用自己的邮件地址作为发送邮件地址
1. 首先从/public_html/下载 php.ini 文件
2. 在 php.ini 文件中找到第604行的
sendmail_path = /usr/sbin/sendmail -t -i ;
3.將他改為:
sendmail_path = /usr/sbin/sendmail -t -i -f you@gmail.com ;
其中 -f是个参数,后面的「you@gmail.com」改成你的 Email 地址
把这个修改好的 php.ini 文件,复制到你的WP根目录。完成。
PS:提到的插件请到这里下载,本人总结整理,首发于idcspy.com,任何问题请留言或者联系原作者,请各位测试过的朋友积极反馈。
PS2:总的来说解决方案其实就是两种,一种是启用WP的 my-hacks.php 支持。 还有一种方式我觉得更为稳妥,WP本身提供了 filter 功能,针对特定流程中的某些步骤加以用户自定义功能,而发信功能恰好在受支持之列。推荐大家采用的終極邊疆提供的插件结合上面修改 php.ini 以自己邮件地址作为发件地址的形式来实现无乱码。
最近评论