我在使用 1C-Bitrix 框架和 PHPMailer 时遇到了问题。与电子邮件正文有关的问题。
1C-Bitrix 框架根据启用的选项准备正文。例如,如果我打开选项“创建 html 电子邮件的文本版本”,正文将如下所示:
---------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)
提前致谢。