Iam utilisant l'API Amazon SendSawEmail d'EOS d'où j'ai besoin d'un MailMessage en tant que Memorystream.C# MailMessage au flux - problème de codage
J'ai trouvé plusieurs réponses au problème MailMessage to MemoryStream ici sur stackoverflow.
Solution 1: En utilisant celui qui utilise des méthodes privées, il en résulte un mauvais encodage des parties de l'e-mail: https://stackoverflow.com/a/8826833
Solution 2: Pas de problème d'encodage en utilisant cette solution lorsque vous envoyez à un pick-up répertoire, puis le relire en: https://stackoverflow.com/a/14350088
Je n'aime pas du tout le fait que j'ai besoin d'écrire dans un fichier temporaire pour que cela fonctionne correctement. Quelqu'un a-t-il une idée de la façon dont la pure solution MemoryStream peut gâcher une partie de l'encodage?
Le test de courrier de message avec iam est ceci:
var mailMessage = new MailMessage();
mailMessage.Subject = "HEADER WITH SPECIAL ÆØÅ";
mailMessage.Body = "TEST";
Attachment att = new Attachment(@"C:\AttachmentWithSpecial ÆØÅ.pdf");
mailMessage.Attachments.Add(att);
mailMessage.From = new MailAddress("[email protected]", "NameÆØÅ");
mailMessage.To.Add(new MailAddress("[email protected]", "NameÆØÅ"));
Pour résumer:
- Si je vous envoie ce message avec SMTP standard, il semble bon.
- Si je l'envoie à l'aide SendRawEmail il semble bon si je généré MemoryStream en utilisant une solution 2
- Si je l'envoie à l'aide SendRawEmail il a des problèmes d'encodage si je généré MemoryStream en utilisant la solution 1.
avec les problèmes de l'encodage, je veux dire « ø » montrant que
Pourquoi ne pas utiliser SendEmail à la place? SES vous permet de composer des emails et il supporte l'encodage. –
Comme je le vois, il ne supporte pas les pièces jointes. ? –
Oh oui, avez-vous essayé d'utiliser StringWriter? Le flux de mémoire peut ignorer l'encodage car il utilise des octets comme stockage. –