Ich benutze Amazon SES SendRawEmail API daher brauche ich eine MailMessage als Memorystream.
Ich habe mehrere Antworten auf das Problem MailMessage to MemoryStream hier im Stackoverflow gefunden.
Lösung 1: Wenn Sie eine Methode verwenden, die private Methoden verwendet, führt dies zu einer falschen Codierung von Teilen der E-Mail: Ссылка
Lösung 2: No Encoding Probleme mit dieser Lösung, wo Sie an ein Pickup-Verzeichnis senden und dann wieder einlesen: Ссылка
Ich mag die Tatsache nicht, dass ich in eine temporäre Datei schreiben muss, damit das funktioniert. Hat jemand eine Idee, wie die reine MemoryStream-Lösung etwas von der Kodierung durcheinander bringen kann.
Die Mail-Nachricht, die iam testet, ist dies:
%Vor%Zusammenfassend:
Bei Codierungsproblemen meine ich, dass "ø" als
angezeigt wird
Haben Sie versucht, die Codierung für Subject / Body und MailAddress explizit anzugeben?
Ich schätze, wenn .NET Mails in einen Ordner schreibt, kann es irgendwie die richtige Kodierung definieren (oder vielleicht kann File Reader irgendwie die richtige Kodierung finden, um Daten zu konvertieren). Und im Speicher ist alles in Standard-Codierung, die für Sie nicht funktioniert.
Leider MailMessage Objekt ist fehlerhaft und hat eine schlechte Schnittstelle.
Das Gute ist, dass .NET 4.5 es teilweise mit dem allowUnicode-Flag in Send () reparierte (leider ist die Send-Methode noch privat)
Unten ist "Lösung 1" geändert. Es kodiert den Betreff genauso wie "Lösung 2". Nur .NET Framework 4.5.
%Vor%Tags und Links .net c# amazon-web-services