为PHPMailer准备电子邮件正文

时间:2018-07-26 07:34:23

标签: php email phpmailer bitrix

我在使用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)

谢谢。

1 个答案:

答案 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结构不正确,因此我不希望它在任何上下文中都能工作。