使用PHPMailer发送法语邮件时主题编码异常求助
解决PHPMailer发送法语邮件时主题显示编码字符串的问题
嘿,我之前也碰到过PHPMailer处理非英文邮件主题的类似问题,你的情况其实是CharSet属性设置错误导致的,这就一步步帮你搞定:
问题根源
你设置的$mail->CharSet = "text/html; charset=UTF-8;";是错的!PHPMailer的CharSet属性只需要单独的字符集名称(比如UTF-8),不需要带上text/html这种内容类型标识——内容类型已经由$mail->isHTML(true)来控制了。错误的CharSet设置会让PHPMailer对主题的编码处理出问题,导致主题显示成那种带=?Q?...?=的Quoted-Printable编码字符串。
修复步骤
- 第一步:修正
CharSet的赋值,只保留UTF-8 - 第二步:确保你的代码文件本身是UTF-8编码(无BOM格式最佳),这样直接编写的法语字符串才能被正确识别
- 第三步:可以保留
Encoding = "base64"的设置,修正CharSet后主题会自动用正确的编码方式展示
修改后的代码示例
$Email_Subject = 'Votre essai de 14 jours a débuté'; // 修正CharSet,仅设置字符集 $mail->CharSet = "UTF-8"; $mail->Encoding = "base64"; $mail->isHTML(true); $mail->Subject = $Email_Subject; $mail->Body = $messageHTML; // 后续的邮件发送代码...
这样修改后,邮件主题就会正常显示法语原文Votre essai de 14 jours a débuté,而不是编码后的字符串了。
内容的提问来源于stack exchange,提问作者user9516731
相关产品推荐
相关产品推荐

