So dekodieren Sie eine E-Mail im MIME-Format

Die meisten heute gesendeten E-Mails sind MIME-formatiert (Multipupose Internet Mail Extensions). Auf diese Weise können E-Mails mit Nur-Text- und Rich-Text-/HTML-Versionen, Inline-Bildern und Anhängen gesendet werden. MIME-Erweiterungen können einer Nachricht im Standardformat RFC/822 hinzugefügt werden, sodass die Abwärtskompatibilität mit älteren Mailsystemen erreicht wird.

Schritt 1

Laden Sie den Inhalt der E-Mail-Nachricht.

Video des Tages

Schritt 2

Überprüfen Sie die Kopfzeile "Content-Type". Wenn der Inhaltstyp mehrteilig ist (d. h. "multipart/mixed", "multipart/alternative" usw.), enthält die Nachricht mehrere zu analysierende Abschnitte. Wenn der Inhaltstyp mehrteilig ist, fahren Sie mit den folgenden Schritten fort.

Schritt 3

Der Content-Type-Header sollte eine eindeutige Zeichenfolge enthalten, die von dem Code verwendet wird, der die MIME-Nachricht generiert hat, um MIME-Teilgrenzen festzulegen. Beispiel:

Inhaltstyp: mehrteilig/gemischt; border="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Die Begrenzungszeichenfolge ist in diesem Fall "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

Schritt 4

Jeder MIME-Teil wird durch die Begrenzungszeichenfolge getrennt, denen zwei Bindestriche ("--") in einer Leerzeile vorangestellt sind. Sie müssen die Meldung Zeile für Zeile scannen und nach den Teilegrenzen suchen. Alle Texte zwischen den Grenzen außer dem letzten CR/LF ist Teil dieses MIME-Teils.

Wichtig: Der letzte MIME-Teil endet mit der Begrenzungszeichenfolge, gefolgt von zwei weiteren Bindestrichen.

Beispiel:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Erster MIME-Teil.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Zweiter MIME-Teil

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Letzter MIME-Teil.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

Schritt 5

Jeder MIME-Teil muss dann geparst werden. Das Format jedes MIME-Teils ähnelt der ursprünglichen RFC/822-formatierten Nachricht. Es enthält eine Reihe von Kopfzeilen, gefolgt von einer Leerzeile und dann die Textkörperdaten.

Schritt 6

Ein MIME-Teil kann selbst mehrteilig sein, mit eigenem "Content-Type"-Header und Begrenzungsstring. Ihr Code muss MIME-Teile rekursiv analysieren, bis er die untergeordneten Knoten erreicht.

Schritt 7

Ein MIME-Teil kann einfach ein binärer Anhang sein. In diesem Fall wird normalerweise ein Filename-Header zusammen mit der Übertragungscodierung geliefert. BASE64 ist ein beliebter Kodierungstyp. In diesem Fall muss der gesamte MIME-Teilkörper BASE64-dekodiert werden. Als Beispiel hier die ersten paar Zeilen eines angehängten JPG-Bildes:

=NextPart_003_01C755EF.43F2628D Inhaltstyp: Bild/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Beschreibung: testimage.jpg Content-Disposition: Anhang; filename="testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyQj AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAgEDAwIEAwUFBAQA

Schritt 8

Der HTML-Text der Nachricht sollte sich in einem MIME-Abschnitt mit ContentType: Text/Html innerhalb eines ContentType: Multipart/Alternative MIME-Abschnitts befinden.

Schritt 9

Der Klartexttext der Nachricht sollte sich in einem MIME-Abschnitt mit ContentType: Text/plain innerhalb eines ContentType: Multipart/Alternative MIME-Abschnitts befinden.

Dinge, die du brauchen wirst

  • Kenntnisse in einer Computersprache (d. h. C++, C#, VB usw.).

  • Grundkenntnisse des Formats einer RFC/822-formatierten E-Mail-Nachricht.

Spitze

Konsultieren Sie RFC 822 http://www.ietf.org/rfc/rfc0822.txt? Zahl=822 und RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? Nummer=1341 für mehr Informationen. Wenn Sie in C# codieren, ist eine ausgezeichnete kostenlose Bibliothek verfügbar unter http://www.codeproject.com/csharp/mime_project.asp.