Kako dekodirati e-poštu u MIME formatu

Većina e-poruka koje se danas šalju imaju MIME (višenamjenska proširenja internetske pošte) format. To omogućuje slanje e-pošte s običnim tekstom i obogaćenim tekstom/HTML verzijama, umetnutim slikama i privitcima. MIME ekstenzije se mogu dodati poruci u standardnom RFC/822 formatu tako da se kompatibilnost unatrag postiže sa starijim sustavima pošte.

Korak 1

Učitajte sadržaj poruke e-pošte.

Video dana

Korak 2

Provjerite zaglavlje "Content-Type". Ako je vrsta sadržaja višedijelna (tj. "višedijelni/mješoviti", "višedijelni/alternativni" itd.), poruka će imati više odjeljaka za raščlanjivanje. Ako je vrsta sadržaja višedijelna, nastavite s donjim koracima.

Korak 3

Zaglavlje Content-Type treba sadržavati jedinstveni niz koji koristi kod koji je generirao MIME poruku za označavanje granica MIME dijela. Primjer:

Vrsta sadržaja: višedijelni/mješoviti; granica="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Granični niz u ovom slučaju je "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

4. korak

Svaki MIME dio bit će odvojen graničnim nizom kojem prethode dvije crtice ("--") u praznom retku. Morat ćete skenirati poruku red po red tražeći granice dijela. Sav tekst između granica

osim završnog CR/LF dio je tog MIME dijela.

Važno: Posljednji dio MIME završit će graničnim nizom nakon kojeg slijede još dvije crtice.

Primjer:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Prvi MIME dio.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Drugi dio MIME

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Zadnji MIME dio.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

Korak 5

Svaki MIME dio tada treba raščlaniti. Format svakog MIME dijela sličan je izvornoj RFC/822 formatiranoj poruci. Sadržavat će niz zaglavlja, nakon čega slijedi prazan redak, zatim podatke o tijelu.

Korak 6

MIME dio sam po sebi može biti višedijelan, s vlastitim zaglavljem "Content-Type" i graničnim nizom. Vaš kod mora rekurzivno analizirati MIME dijelove dok ne dođe do podređenih čvorova.

Korak 7

MIME dio može jednostavno biti binarni privitak. U ovom slučaju obično se isporučuje zaglavlje Filename, zajedno s kodiranjem prijenosa. BASE64 je popularna vrsta kodiranja. U ovom slučaju cijelo tijelo MIME dijela mora biti dekodirano BASE64. Kao primjer evo prvih nekoliko redaka priložene JPG slike:

=NextPart_003_01C755EF.43F2628D Vrsta sadržaja: slika/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Opis sadržaja: testimage.jpg Dispozicija sadržaja: prilog; filename="testimage.jpg"

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

Korak 8

HTML tijelo poruke treba biti u MIME odjeljku s ContentType: Text/Html, unutar ContentType: Multipart/Alternative MIME odjeljka.

Korak 9

Tijelo otvorenog teksta poruke treba biti u MIME odjeljku s ContentType: Text/plain, unutar ContentType: Multipart/Alternative MIME odjeljka.

Stvari koje će vam trebati

  • Poznavanje računalnog jezika (npr. C++, C#, VB, itd.).

  • Osnovno poznavanje formata poruke e-pošte u formatu RFC/822.

Savjet

Posavjetujte se s RFC 822 http://www.ietf.org/rfc/rfc0822.txt? broj=822 i RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? broj=1341 za više informacija. Ako kodirate u C#, izvrsna besplatna biblioteka dostupna je na adresi http://www.codeproject.com/csharp/mime_project.asp.