Подготовить тело письма для PHPMailer

Я застрял в проблеме с использованием фреймворка 1С-Битрикс с PHPMailer. Проблема связана с телом электронной почты.

Каркас 1С-Битрикс готовит тело в зависимости от включенных опций. Например, если я включу опцию «Создать текстовую версию 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--

Если к шаблону электронной почты будет прикреплен текстовый файл, тело будет выглядеть так:

---------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 () func хорошо работает с таким телом электронной почты.
Я обнаружил, что в PHPMailer мне нужно установить Body и AltBody отдельно. Но тогда, что является лучшим способом для меня, чтобы разобрать такое тело электронной почты.

Может кто-нибудь знает инструмент для этого?
Или PHPMailer имеет встроенные методы для этого?
Может быть, мне нужно просто вручную установить правильный заголовок «Content-Type» (фреймворк сообщает мне правильный Content-Type)

Заранее спасибо.

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 в примере, который вы дали для тела сообщения с вложением, неверна, поэтому я не ожидаю, что она будет работать в любом контексте.

0

Другие решения

Других решений пока нет …