phpmailer에서 보낸 중국어 왜곡 이메일 문제에 대한 해결 방법 요약

WBOY
풀어 주다: 2016-07-25 08:59:55
원래의
3228명이 탐색했습니다.
  1. $mail = new PHPMailer();
复制代码

2:设置邮件的编码;

  1. $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() ) 这样,标题的中文乱码也就解决了。

#--------------------- 附,phpmailer发送邮件中文乱码的问题

phpmailer在默认情况下发出去的邮件可能会出现乱码。 网上给出解决方案:增加一行

  1. $mail->CharSet = "UTF-8";
复制代码

经过测试,此方法对于163可用,可是QQ邮箱就会变成乱码,而QQ邮箱在默认的情况下是没有问题的。 正确的做法:

  1. $mail->CharSet = "GB2312";
复制代码

中文还是用GB2312的好点。 只测试过QQ,163其它的没有测试。

2012-11-5更新: $mail->CharSet这个方法应该设置的编码是要跟你引用phpmailer类的页面的编码一至的,比方在1.php里面引用该类发送邮件,则需要设置为1.php这个文件的编码类型,如何查看文件的编码,这个问题就不要问了。当然,外部引用的内容最好也要统一文件编码。

就是这些了,希望以上的内容可以帮助大家解决phpmailer中文邮件发送乱码的问题。 程序员之家,祝大家学习愉快。



원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿