Как вложить MimeBodyParts в JavaMail (стандартные почтовые сообщения)? - PullRequest
4 голосов
/ 24 февраля 2012

Я пытаюсь отправить html-письмо (с текстовой альтернативой), содержащее встроенное / встроенное изображение, используя JavaMail.

Я хотел посмотреть, как выглядело правильно отформатированное сообщение, поэтому я отправил его, используя gmail, со встроенным изображением, а ниже - исходный источник. Кажется, что они вложили части тела в сообщение. Как я могу воспроизвести это точно, используя javamail. Я не нашел способа поместить Multipart внутри другой Multipart.

MIME-версия: 1.0 Получено: на 10.50.75.3 с HTTP; Чт, 23 фев 2012 20:15:34 -0800 (PST) Дата: четверг, 23 февраля 2012 г. 20:15:34 -0800 Delivered-To: x@gmail.com ID сообщения: Тема: c От: Foo Bar Кому: Foo Bar Content-Type: multipart / related; граница = e89a8f3b9b051e124104b9ae03fb

- e89a8f3b9b051e124104b9ae03fb Тип содержимого: составной / альтернативный; граница = e89a8f3b9b051e123604b9ae03fa

- e89a8f3b9b051e123604b9ae03fa Content-Type: text / plain; кодировка = ISO-8859-1

текстовый контент идет сюда

- e89a8f3b9b051e123604b9ae03fa Content-Type: text / html; кодировка = ISO-8859-1


- e89a8f3b9b051e123604b9ae03fa-- --e89a8f3b9b051e124104b9ae03fb Content-Type: image / png; name = "logo.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_135ad92205fc1ace

iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM / rhtAAAAh0lEQVR42u3ZsQnAIBBGYVtHShVI 7ViprASXcw8HMCckEGyTkB98xWsE4WvOwnMhBG / tVrGaSOU0 + Q5MVhMtdWAVBlY3HCyW + 7nlbhqB TiGAAAECBAhwMqB0AN8ANuUkgQzJvEPy1WP75C5AgAABAgQ4GXATAK4DUP8LOAsD87WGiIJriGj5 AwiiiyDxmymtAAAAAElFTkSuQmCC --e89a8f3b9b051e124104b9ae03fb - ​​

UPDATE:

Использование стандартных многокомпонентных встроенных методов изображения (например, связанных с lechlukasz) приводит к следующему сообщению, не совсем то, что мне нужно:

MIME-версия: 1.0 Получено: по 10.236.146.106 с идентификатором SMTP q70mr1894063yhj.0.1330071158663; Пт, 24 февраля 2012 00:12:38 -0800 (PST) Ответить: Foo Bar ID сообщения: <20cf303bfc80f02cfa04b9b152db@google.com> Дата: пт, 24 февраля 2012 08:12:38 +0000 Тема: пожалуйста, о, пожалуйста4 От: Foo Bar To: Foo Bar Тип контента: многочастному / альтернативные; граница = 20cf303bfc80f02ce704b9b152d6

- 20cf303bfc80f02ce704b9b152d6 Тип содержимого: текст / обычный текст; кодировка = UTF-8; Формат = тек; delsp = yes Content-Transfer-Encoding: base64

* +1032 * 77 + 9UE5HDQoaDQoAAAANCklIRFIAAAAoAAAAKAgGAAAA77 + 977 + 977 + 9bQAAAO + / vUlEQVR477 + 9 77 + 977 + 977 + 9Ce + / vSAgDQoQRmFbR0oVSO + / vVjvv73vv70E77 + 9cw8HMCckEGzvv73vv70ffO + / vWsE77 + 9а ++ / ве + / vXMhBG / vv71W77 + 977 + 9SO + / vTTvv70OTFYTLXVgFQZWNxws77 + 977 + 977 + 9 77 + 9bhrvv71OIe + / vQABAgQIcDLvv710AO + / vQA277 + 9JO + / vQzvv73vv71D77 + 977 + 9Y ++ / ве + / vS5A77 + 9AAECBDgZcBMA77 + 9A1Dvv70LOAsD77 + 977 + 977 + 977 + 977 + 9a ++ / vWjvv70DCO + / ve + / vSDvv73vv70p77 + 9AAAAAElFTkTvv71CYO + / vQ0K --20cf303bfc80f02ce704b9b152d6 Тип содержимого: текст / html; charset = ISO-8859-1 Content-Transfer-Encoding: цитируемый для печати

- 20cf303bfc80f02ce704b9b152d6 -

Ответы [ 2 ]

7 голосов
/ 25 февраля 2012

Вы помещаете Multipart в другую Multipart, создав MimeBodyPart, установив его содержимое в Multipart и добавив эту часть тела к первой Multipart.

0 голосов
/ 24 февраля 2012

Вы имеете в виду что-то вроде этого:

http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#IncludingImagesWithHTML

Обратите внимание, что вам также нужно изменить HTML-код, указав идентификатор cid: в качестве источника изображения.

...