E-mail correcte format pour le courrier Électronique avec un texte Brut, HTML et d'un Attachement SMTP?
Le Problème:
J'ai essayé de copier le SMTP en fonction des en-têtes de courriels utilisé par yahoo et hotmail et de les envoyer Telnet, mais l'e-mail que je reçois n'affiche pas l'attachement inclus, mais elle affiche le message correctement.
Ce que je soupçonne est à l'origine d':
Je crois que j'ai le mauvais format pour le courrier électronique, et en dépit de la recherche de nombreux articles en ligne (ainsi que d'essayer de saisir compliqué et difficile à lire Rfc), je n'ai pas trouvé d'utile ou d'articles concis qui expliquent comment utiliser tous les trois (Brut, HTML et en pièce jointe) en SMTP correctement. J'ai passé plusieurs jours à essayer de modifier le code, mais je obtenir juste le message (pas de pièce jointe) ou l'ensemble de Données SMTP corps de l'affichage (y compris les limites, code html, etc).
Ce que j'espère atteindre par le biais de cette question:
Je suis en espérant que quelqu'un peut regarder par-dessus les informations que j'ai rassemblé ci-dessous, et être en mesure de me dire ce que je suis absent (ou comment exactement la mise en forme de l'email est incorrect).
Des informations de débogage:
Je nourris une copie de l'information que j'ai envoyé au serveur SMTP de fichier, et je l'ai collé l'information à pastebin (avec toutes les informations personnelles soient supprimées/modifiées - le Base64 pièce jointe est juste un fichier texte d'un courriel reçu de IMAP):
Informations envoyées verbatim (moins les caractères de contrôle) au serveur SMTP:
Ce que je vois dans le client de messagerie (note aucune pièce jointe):
http://i45.tinypic.com/29b1zci.jpg
Ce IMAP voit quand j'ai télécharger l'e-mail (note format incorrect):
Ce qu'un email correctement formatée devrait ressembler à IMAP:
Je soupçonne SMTP est une mauvaise interprétation de ce que j'envoie, c'est pourquoi le multipart/alternative est manquant lorsque IMAP essaie de retrive l'e-mail. Qu'est-ce exactement je fais mal? Quel est le serveur attendre?
[Merci pour les upvotes - je peux ré-activer les liens!]
Toute l'assistance possible avec cette?
OriginalL'auteur user1433767 | 2012-06-03
Vous devez vous connecter pour publier un commentaire.
J'ai nettoyé le multipart limite des prescripteurs et reçu ce qui fonctionne pour moi sur mon serveur (j'ai laissé les commandes SMTP ici):
La limite spécificateur de type multipart e-mail est n'importe quel texte qui n'est pas probable à apparaître dans le corps du message/attachments. Quand il se présente avec deux tirets en face, qui indique le début d'une nouvelle partie (y compris la toute première partie. Quand il se présente avec deux tirets au début et à la fin, qui indique la fin du message.
Original de votre mail a cette "fin frontière" marqueur dans le milieu de l'e-mail (à droite après
<html>Does this actually work?</html>
), et a eu deux bornes (--boundary-type-1234567890
et--boundary-type-1234567892-alt
). Ce qui explique pourquoi la pièce jointe a été laissé.Il semble yahoo tout simplement ne pas afficher la pièce jointe. Hotmail n'a pas de telles questions, et ni votre serveur SMTP. Vérification de l'email en IMAP via yahoo, le multipart frontière manque encore (même si la pièce jointe est toujours là).
Oui, il y a une différence entre multipart/alternative et multipart/mixed. Alternative est censé être différentes représentations de la même contenu (généralement un HTML vs version en texte brut de la même adresse email). Mixte est censé être pour les pièces jointes, je suppose. Dans la pratique, cependant, beaucoup de clients de messagerie/Mta ignorer que juste et traiter les pièces mixtes, de toute façon. (note, le serveur SMTP que j'utilisais pour les tests a Exchange 2010 SP1).
OriginalL'auteur ejdyksen
Il s'avère que le problème est incroyablement subtile.
Hotmail de façon conventionnelle (c'était le message d'origine je me suis basé sur ), utilise le terme "multipart/alternative" pour plusieurs parties de l'e-mail. J'ai utilisé "multipart/alternative" dans mon e-mail.
Il s'avère yahoo n'aime pas 'multipart/alternative" et de ne pas afficher correctement le texte brut, html et l'attachement correctement lorsqu'au contraire, le terme "multipart/mixed" est utilisé (comme je l'ai remarqué yahoo compatible e-mails utilisation de ce terme au lieu de la variante), en combinaison avec ejdyksen de la suggestion (ni suggestion fonctionne par lui-même de yahoo serveur).
Bien que, techniquement parlant, c'est la "bonne" réponse, je vais laisser ejdyksen la réponse est sélectionnée en raison de ses efforts avait montré il y a quelques côté serveur technicité (son serveur SMTP et hotmail est à la fois affiché la pièce jointe, yahoo n'a pas). Poliment upvote ejdyksen de répondre à la place comme il l'a fait, la plupart des déplacements.
OriginalL'auteur user1433767