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
- E-mail avec inline seulement les pièces jointes
- E-mail avec les non-associé uniquement les pièces jointes
- E-mail en ligne et non en ligne des pièces jointes
OriginalL'auteur steven | 2015-05-20
Vous devez vous connecter pour publier un commentaire.
Images
Oui, il est correct de l'approche à utiliser
multipart/related
type de contenu. Voici un exemple (notez que 'Content-Type' et 'Content-Disposition" valeurs):Exemple de source et les informations détaillées
Ici sont des exemples que vous avez demandé:
Exemple 1: en ligne seulement
Exemple 2: seules les pièces jointes de
Exemple 3: en ligne et les pièces jointes
Résumé
multipart/related
multipart/mixed
multipart/mixed
etmultipart/related
Mise à jour
Voici un article très intéressant: Utilisation d'Images dans les mails HTML
multipart/mixed
ET unmultipart/related
limite. Le mélange de avoir les pièces suivantes: 1. Le HTML-Mail y compris les pièces jointes et 2. Le premier non-inline l'annexe 3. La deuxième non en ligne de l'attachement ... Partie 1 est elle-même coupée en deux par les limites.Peut-être que vous devriez améliorer votre réponse un peu. Vous pouvez supprimer la partie où vous expliquez que fichier pdf doit envoyés par type de contenu application/pdf parce qu'il ne faisait pas partie de la question. La question était seulement sur les limites des types de contenu. Et il serait bon de donner trois exemples comme votre dernier exemple de la place: 1. image en ligne d'attachement, 2. non en ligne d'attachement et 3. à la fois en ligne et non en ligne de l'attachement (c'est ce que votre exemple montre, pour l'instant) mais vous pouvez supprimer les
multipart/alternative
partie parce qu'il ne faisait pas partie de la question.Je vous offre +100 pour votre réponse si vous l'améliorer un petit peu comme je l'ai expliqué. J'espère que vous confirmer mon intention de fournir un échantillon pour l'ensemble des trois variantes. J'espère donc vous aider à comprendre les limites des trucs qui n'est pas si facile à obtenir par la lecture de la Rfc. Je vous remercie beaucoup.
Bien sûr, il est assez facile d'obtenir d'autres exemples. Sera mise à jour de la réponse au cours de la journée.
Merci pour la superbe réponse @RenatGilmanov! Je vais avoir un problème similaire avec des types Mime, dans lequel je tente d'ajouter une partie HTML 'prefix' à l'e-mail du corps, mais certains clients se vider corps sans pièces jointes, certains d'obtenir le corps que dans les pièces jointes (le corps est vide) (Outlook sur Windows), et certains fonctionnent bien (GMail, web, Application Android, etc.). Veuillez prendre un coup d'oeil si c'est possible: stackoverflow.com/questions/47312409/...
OriginalL'auteur Renat Gilmanov