我在使用1C-Bitrix框架和PHPMailer时遇到了问题。问题与电子邮件正文有关。
1C-Bitrix框架根据启用的选项准备主体。例如,如果我打开“创建html-email的文本文本”选项,则正文将如下所示:
---------alt8045b59706
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is my email
---------alt8045b59706
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<h1> This is my email </h1>
---------alt8045b59706--
如果我的电子邮件模板将带有附件的txt文件,则正文将如下所示:
---------mix4215b5973f
Content-Type: multipart/alternative; boundary="-------alt3795b5973f"
---------alt3795b5973f
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is my email
---------alt3795b5973f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<h1> This is my email </h1>
---------alt3795b5973f--
---------mix4215b5973f
Content-Type: text/plain; name="=?UTF-8?B?dGVzdC50eHQ=?="
Content-Transfer-Encoding: base64
Content-ID: <427605>
dGVzdCB0ZXh0Cg==
---------mix4215b5973f--
最后,标准电子邮件正文如下所示:
<h1> This is my email </h1>
我不能只将这样的电子邮件正文提供给PHPMailer。它不能正常工作。我尝试了msgHtml()-也不起作用。
但是标准的php mail()函数可与此类电子邮件正文很好地配合使用。 我发现在PHPMailer中,我需要分别设置Body和AltBody。但是,对我而言,解析此类电子邮件正文的最佳方法是什么。
也许有人知道它的工具?
还是PHPMailer具有内置的方法?
也许我只需要手动设置正确的“ Content-Type”标头(框架告诉我正确的Content-Type)
谢谢。
答案 0 :(得分:0)
您不需要考虑这些事情-PHPMailer会为您完成。这就是创建该结构所需要做的一切:
$mail->isHTML();
$mail->Body = '<h1> This is my email </h1>';
$mail->AltBody = 'This is my email';
$mail->addAttachment('path/to/file.pdf');
此外,您在示例中为带有附件的邮件正文提供的MIME结构不正确,因此我不希望它在任何上下文中都能工作。