我正在使用PHPMailer发送包含两个链接的简短HTML消息(我需要添加第三个链接)。使用语法:
$mail ->MsgHTML($htmlmsg);
我可以获得纯文本版本,但链接不再存在。 (只是链接文字)。 使用'Body'和'AltBody'语法
$mail->Body = $htmlmsg;
$mail->AltBody = $textstr; // This is the plain text version
我已设法通过创建自己的纯文本版本($ textstr)来保留链接。我在链接上做了一些'preg_replace'(有效删除标签和“href ='...',但保留了URL),然后应用'strip_tags'。但我必须设计一个特定的正则表达式每个链接都很烦人且容易出错。
有更好的方法吗? (我指的是'由PHPMailer批准'的方式)。这必须是一个共同的要求。
答案 0 :(得分:0)
PHPMailer一般不关心。 msgHTML
使用了非常基本built-in html to text converter。如果你想要更好的结果,你应该inject your own converter,你可以从现有的转换器派生出来,例如html2text - 这就是为什么存在这样的库,以及注入转换器的能力。
最好的方法之一(我发现甚至尝试保留布局的唯一方法)是使用基于文本的Web浏览器(如lynx或elinks)为您呈现HTML文本,然后使用。它的设置速度更慢,更复杂,但产生的结果比任何搜索和结果都要好得多。替换方法会。