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

PHPMailer如何在纯文本版本中保留链接?

解决PHPMailer自动生成纯文本版本时丢失链接的问题

我最近在用PHPMailer发送包含2个(后续还要加第3个)链接的简短HTML邮件时,踩了个小坑:当使用$mail->MsgHTML($htmlmsg);方法时,虽然它能自动生成对应的纯文本版本,但所有链接都“失踪”了——只留下链接显示的文字,完全看不到实际的URL地址,这对纯文本邮件用户来说太不友好了。

后来我换了一种思路,手动分别设置HTML正文和纯文本正文,再借助preg_replace把HTML里的链接转换成纯文本里易读的格式,完美解决了链接丢失的问题。具体代码如下:

// 设置HTML版本的邮件内容
$mail->Body = $htmlmsg;

// 将HTML中的<a>标签转换为纯文本格式:"链接文本 (URL地址)"
$textstr = preg_replace('/<a href="([^"]+)">([^<]+)<\/a>/', '$2 ($1)', $htmlmsg);

// 设置纯文本版本的邮件内容
$mail->AltBody = $textstr;

这种方式的好处是,HTML邮件能保持原本的样式,纯文本邮件里的链接会以「链接文本 (实际URL)」的形式呈现,用户不管是复制还是直接点击(部分邮件客户端支持纯文本链接跳转)都很方便。

内容的提问来源于stack exchange,提问作者Tim Dawson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:50:31