php mail发送utf-8编码的邮件,outlook收下来是乱码
费了好大的功夫,把网站全站改成utf-8编码了,可是悲剧了,才传上去一天,客服电话不断,说收到邮件都是乱码的。程序中用到了mail()函数发送邮件的,发出去的邮件是utf-8编码,可是客户端的outlook什么的一般默认都是gb2312,不会自动转换。这下怎么办好?
程序是国际化了,可是客户还是本土化,纠结呢 竟然用mail...
用phpmailer吧, 亲, 完全支持utf-8. 解决了,中文地方加上"?UTF-8?B?".base64_encode("中文")."?=" 本帖最后由 satrun7 于 2012-10-30 20:01 编辑
php里的mail函数,不单单和文件编码,数据库编码有关系,还操作系统的字符集有关。
如果是redhat,centos系统,查看你的系统字符集
cat /etc/sysconfig/i18n
如果不是utf-8字符集,改为utf-8字符集
例如
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
修改后重启一下你的邮件服务器,如果是sendmail
service sendmail restart
不行的话,楼上的建议就很好,改用phpmailer。
outlook一般就是gbk,要它不乱码的话,只能发送时就用gbk发送
页:
[1]