Экспорт электронной почты в формат EML, который содержит вложения EML - PullRequest
0 голосов
/ 15 апреля 2020

Мы используем Redemption из надстройки Outlook для сохранения сообщений в формате EML (RFC822).

Была неудачная ситуация, когда один из наших клиентов вложил несколько вложений EML-файлов в свою электронную почту (и эти сообщения были сохранено с погашением).

Сгенерированный EML не совпадает, если я открываю в Outlook как исходное сообщение.

ИМХО проблема, вызванная тем, что прикрепленные файлы EML используют тот же «00B0FEED_message_boundary» "ID для границ части сообщения.

Я пытаюсь объяснить ниже:

... headers ..

Content-type: Multipart/mixed; charset=iso-8859-1;
 boundary="00B0FEED_message_boundary"
Content-Description: Multipart message


--00B0FEED_message_boundary
Content-type: Multipart/alternative; charset=ISO-8859-1;
 boundary="00B0FEEE_message_boundary"
Content-Description: Multipart message


--00B0FEEE_message_boundary
Content-type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-Description: Message text

... message body in plain text format ...

--00B0FEEE_message_boundary
Content-type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: inline
Content-Description: HTML text

... message body in HTML format ...

--00B0FEEE_message_boundary--
--00B0FEED_message_boundary
Content-type: application/octet-stream; charset=iso-8859-1;
 name="=?iso-8859-1?Q?1=20Ab-=20und=20Zuschl=E4ge=2EEML?="
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: attachment;
 filename="=?iso-8859-1?Q?1=20Ab-=20und=20Zuschl=E4ge=2EEML?="
Content-Description: =?iso-8859-1?Q?1=20Ab-=20und=20Zuschl=E4ge=2EEML?=

... first attached message headers ...

Content-type: Multipart/mixed; charset=3Dutf-8;
 boundary=3D"00B0FEED_message_boundary"                           <------ inner message boundary ID
Content-Description: Multipart message


--00B0FEED_message_boundary
Content-type: Multipart/related; charset=3DISO-8859-1;
 boundary=3D"00B0FEEE_message_boundary"
Content-Description: Multipart message


--00B0FEEE_message_boundary
Content-type: Multipart/alternative; charset=3DISO-8859-1;
 boundary=3D"00B0FEEF_message_boundary"
Content-Description: Multipart message


--00B0FEEF_message_boundary
Content-type: text/plain; charset=3Dutf-8
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: inline
Content-Description: Message text

... first attached message body in plain text ...

--00B0FEEF_message_boundary
Content-type: text/html; charset=3Dutf-8
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: inline
Content-Description: HTML text

... first attached message body in HTML ...

--00B0FEEF_message_boundary--
--00B0FEED_message_boundary--

--00B0FEED_message_boundary

... several other similar EML messages

Это сообщение не открывается правильно в Outlook, но если я изменю внутренний идентификатор границы сообщения (и изменю соответствующую часть во внутреннем сообщении), EML открывается правильно. Поэтому я предполагаю, что этот похожий идентификатор является причиной моей проблемы.

Есть ли способ обойти использование случайного идентификатора для границы сообщения? Может заставить BASE64 кодировать вложения?

...