You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHPMailer发送HTML邮件时如何添加Header解决邮件破损问题

问题排查与修改方案

1 修复现有代码明显错误

你现有代码中mail->SMTPSecure = EMAIL_SMTP_ENCRYPTION;一行缺少变量前缀$,会导致加密配置不生效,部分邮件服务商对未加密传输的内容会做截断、转码处理,可能引发内容破损。
修正为:

$mail->SMTPSecure = EMAIL_SMTP_ENCRYPTION;

2 需补充的配置与Header

你已经开启了HTML邮件模式,针对带图片、格式化内容的邮件,建议补充两类配置提升兼容性:

  • 补充备选纯文本内容:设置AltBody属性,供不支持HTML的邮件客户端降级显示,避免内容完全破损
  • 添加必要自定义Header:使用PHPMailer的addCustomHeader方法添加标准化Header,降低不同客户端的解析异常概率

3 修改参考

在你原有$mail->IsHTML(true);行之后添加对应配置即可,示例如下:

$mail->IsHTML(true);
$mail->SingleTo = true;
// 以下为新增内容
// 强制设置字符集为UTF-8,避免中文/特殊符号乱码
$mail->CharSet = "UTF-8";
// 补充纯文本备选内容,可根据实际业务调整内容
$mail->AltBody = "您的邮件客户端不支持HTML格式,请切换支持HTML的客户端查看内容。";
// 添加自定义Header提升兼容性
$mail->addCustomHeader('X-Mailer: PHP/' . phpversion());
$mail->addCustomHeader('Content-Transfer-Encoding: quoted-printable');

// 若你使用内嵌图片,建议不要用外部URL,改为addEmbeddedImage方法添加,示例:
// $mail->addEmbeddedImage('/服务器本地图片路径.jpg', 'logo_cid', 'logo.jpg');
// 正文$body中引用图片时用 <img src="cid:logo_cid"> 即可,避免外部图片被邮箱拦截导致内容显示异常

其他检查项

  • 确认$body中的所有链接为完整的绝对路径,不要使用相对路径,避免客户端无法正常跳转
  • 若邮件中存在大量特殊样式,尽量使用内联CSS写法,避免外部样式被邮箱拦截导致排版错乱

内容的提问来源于stack exchange,提问作者Ratnaprabha Bhoir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:48:03