Kako dekodirati e-pošto v formatu MIME

Večina e-poštnih sporočil, poslanih danes, je formatiranih MIME (večnamenske internetne poštne razširitve). To omogoča pošiljanje e-pošte z navadnim besedilom in različicami obogatenega besedila/HTML, vgrajenimi slikami in prilogami. Razširitve MIME lahko dodate sporočilu v standardnem formatu RFC/822, tako da se doseže združljivost s starejšimi poštnimi sistemi.

Korak 1

Naložite vsebino e-poštnega sporočila.

Video dneva

2. korak

Preverite glavo "Content-Type". Če je vrsta vsebine večdelna (tj. "večdelna/mešana", "večdelna/alternativna" itd.), bo sporočilo imelo več razdelkov, ki jih je treba razčleniti. Če je vrsta vsebine večdelna, nadaljujte s spodnjimi koraki.

3. korak

Glava Content-Type mora vsebovati edinstven niz, ki ga uporablja koda, ki je ustvarila sporočilo MIME, da označi meje dela MIME. Primer:

Vrsta vsebine: večdelni/mešani; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Mejni niz v tem primeru je "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

4. korak

Vsak del MIME bo ločen z mejnim nizom, pred katerim sta dve pomišljaji ("--") v prazni vrstici. Sporočilo boste morali skenirati vrstico za vrstico in iskati meje dela. Vse besedilo med mejami

razen končnega CR/LF je del tega dela MIME.

Pomembno: zadnji del MIME se bo končal z mejnim nizom, ki mu sledita še dve pomišljaji.

Primer:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Prvi del MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Drugi del MIME

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Zadnji del MIME.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

5. korak

Nato je treba vsak del MIME razčleniti. Oblika vsakega dela MIME je podobna izvirnemu sporočilu v formatu RFC/822. Vseboval bo vrsto glav, ki jim bo sledila prazna vrstica, nato pa telesni podatki.

6. korak

Del MIME je lahko tudi večdelni, z lastno glavo "Content-Type" in mejnim nizom. Vaša koda mora rekurzivno razčleniti dele MIME, dokler ne doseže podrejenih vozlišč.

7. korak

Del MIME je lahko preprosto binarna priloga. V tem primeru bo običajno podana glava Filename skupaj s kodiranjem prenosa. BASE64 je priljubljena vrsta kodiranja. V tem primeru mora biti celotno telo dela MIME dekodirano BASE64. Kot primer je tukaj prvih nekaj vrstic priložene slike JPG:

=NextPart_003_01C755EF.43F2628D Vrsta vsebine: slika/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Opis vsebine: testimage.jpg Content-Disposition: priloga; filename="testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjImjMIyMjIyMjMJMJYMJMJMJYMJMJMJYMJMJMJYMJMJMJMJMJYMJMJMJYMJMJMJYMJYMJMJM AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

8. korak

Telo sporočila HTML mora biti v razdelku MIME z ContentType: Text/Html, znotraj razdelka ContentType: Multipart/Alternative MIME.

9. korak

Telo golega besedila sporočila mora biti v razdelku MIME z ContentType: Besedilo/navadno, znotraj razdelka ContentType: Večdelni/Alternativni MIME.

Stvari, ki jih boste potrebovali

  • Poznavanje računalniškega jezika (npr. C++, C#, VB itd.).

  • Osnovno poznavanje oblike e-poštnega sporočila v formatu RFC/822.

Nasvet

Oglejte si RFC 822 http://www.ietf.org/rfc/rfc0822.txt? številka = 822 in RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? številka=1341 za več informacij. Če kodirate v C#, je na voljo odlična brezplačna knjižnica http://www.codeproject.com/csharp/mime_project.asp.