解决 phpmailer 发件中文乱码的问题

本文介绍如何通过修改PHPMailer配置解决使用该库发送邮件时出现的中文乱码问题,包括更改字符集设置、邮件及主题编码。

phpmailer 很强大,可以让PHP新手在简单的配置下以复杂的socket方式发件,
然而,phpmailer是外国人写的,中文乱码也不就是偶然的事了。
下面是我几天来总结的解决phpmailer发件中文乱码的问题。
1:打开phpmailer 核心文件 class.phpmailer.php , 将 public $CharSet = 'iso-8859-1';   改为 public $CharSet = 'UTF-8';
至于为什么要将'iso-8859-1'改为‘UTF-8’,请google或百度一下'iso-8859-1'就清楚。
$mail = new PHPMailer();
2:设置邮件的编码;
$mail->Charset='UTF-8';
相信有不少朋友是设置成"GBK"或“GB2312”的,我开始也是,后来了解到Mail是国际化的,如果想在像Gmail等那样的国际化邮箱正确显示中文,请将编码设置为“UTF-8”;
3,:设置标题编码;
这里可能有人会问,都设置了邮件的编码了,还设置标题编码做什么。。。 如果您测试过多种邮箱,你会发现标题中文是乱码的,没错,即使您设置了 $mail->Charset="UTF-8"; 
既然学习php应该多看看php手册或留意php.net ,标题乱码的解决办法我是在php官网找到答案的 hhtp://.www.php.net/mail。
$mail->Subject ="信件标题";  改为  $mail->Subject = "=?utf-8?B?" . base64_encode("信件标题") . "?=";
“设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。”(来自php手册 base64_encode() )
这样,标题的中文乱码也就解决了。

转载于:https://www.cnblogs.com/lyc90/archive/2013/05/24/3096825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值