Ответ на Mail multipart/alternative vs multipart/mixed предполагает, что вложения должны быть одноранговыми сообщениями multipart/alternative
, например:
- многочастному/смешанная
- многочастный/альтернативный
- Текст/равнина
- Текст /HTML
- some/thing (расположение: вложение)
- some/thing (расположение: вложение)
- ...
- многочастный/альтернативный
Я бы хотел отправить электронное письмо с помощью html-части с некоторыми встроенными изображениями и простой текстовой альтернативой. Каков предпочтительный макет MIME для различных частей? Несколько вариантов отображаются в примере кода и в других вопросах, но которые лучше всего работали на практике? Моя склонность такова:
- многочастный/альтернативный
- Текст/равнина
- многочастному/родственный
- text/html (ссылки на изображения с помощью cid)
- изображение /GIF
- изображение /GIF
- ...
Таким образом, изображения явно предназначены для рендеринга html-части. Полный пример этого:
From: Rich Example <[email protected]>
To: A Recipient <[email protected]>
Subject: An example of email with images and a plain alternative
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="outer-boundary"
This is a MIME-encoded message. If you are seeing this, your mail
reader is old.
--outer-boundary
Content-Type: text/plain; charset=us-ascii
This message might make you :) or it might make you :(
--outer-boundary
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html"; start="<[email protected]>"; boundary="inner-boundary"
--inner-boundary
Content-Type: text/html; charset=us-ascii
Content-Disposition: inline
Content-ID: <[email protected]>
<html>
<body>
This message might make you
<img src="cid:[email protected]" alt="smile">
or it might make you
<img src="cid:[email protected]" alt="frown">
</body>
</html>
--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
R0lGODlhEAAQAKEBAAAAAP//AP//AP//ACH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci6JrasrqkypxJr8S0oNpgqkGLtcY6hoFADs=
--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
R0lGODlhEAAQAKEBAAAAAAD//wD//wD//yH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci75drDzm5uLZyZ1I3Mv8ZB5Krtgg1RoFADs=
--inner-boundary--
--outer-boundary--