HTML-e-Mail avec pièces jointes en ligne et non en ligne des pièces jointes

Quelle est la bonne façon de créer un HTML-e-Mail avec pièces jointes en ligne et non en ligne des pièces jointes?

En plus s'il vous plaît dites-moi ce Type de Contenu à utiliser uniquement avec des pièces jointes en ligne et avec seulement les pièces jointes en ligne.

Jusqu'à maintenant j'ai fait comme ceci:

MIME-Version: 1.0
[some more headers]
Content-type: multipart/mixed;
 boundary="myboundary"
--myboundary
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

[html with img cid:my_image]

--myboundary
Content-Type: image/png;  name="my_image.png"
Content-Transfer-Encoding: base64
Content-ID: <my_image>
Content-Disposition: inline;  filename="my_image.png"

[base64 image data]

--myboundary
Content-type: application/pdf;  name="my_pdf.pdf"
Content-length: 1150
Content-Transfer-Encoding: base64
Content-ID: <my_pdf.pdf>
Content-Disposition: attachment;  filename="my_pdf.pdf"

[base64 pdf data]

--myboundary--

Le mail semble bon dans outlook. Mais j'ai remarqué que Thunderbird ne pas afficher mon image en ligne et montre 2 pièces jointes à la place (mon image et Mon PDF). J'ai donc fait un peu de débogage et remarqué que les images doivent être envoyées par Content-Type: multipart/related.

J'ai donc changé Content-Type: multipart/mixed à Content-Type: multipart/related et Thunderbird affiche il correct: L'image s'affiche en html et une pièce jointe, le fichier PDF est affiché.

Je ne suis pas sûr si c'est la bonne solution, bien qu'il semble fonctionner. Est-il correct d'utiliser multipart/related toujours (dans le cas où si j'ai en ligne et non en ligne des pièces jointes, dans le cas où si j'ai uniquement des pièces jointes en ligne et dans le cas où si j'ai seulement les pièces jointes en ligne)?

Ou est la façon correcte d'utiliser une limite de type diviser les pièces jointes en ligne et une autre frontière de type mixte pour diviser la non-pièces jointes en ligne?

J'espère que vous pouvez me fournir un échantillon pour

  1. E-mail avec inline seulement les pièces jointes
  2. E-mail avec les non-associé uniquement les pièces jointes
  3. E-mail en ligne et non en ligne des pièces jointes
J'ai écrit une réponse à une question similaire, et a créé un art ascii pour expliquer la answert: stackoverflow.com/a/40420648/633961

OriginalL'auteur steven | 2015-05-20