Kaip iššifruoti el. laišką MIME formatu

Dauguma šiandien siunčiamų el. laiškų yra suformatuoti MIME (daugialypių interneto pašto plėtinių). Tai leidžia siųsti el. laiškus su paprastu tekstu ir raiškiojo teksto / HTML versijomis, įterptais vaizdais ir priedais. MIME plėtinius galima pridėti prie pranešimo standartiniu RFC/822 formatu, todėl pasiekiamas atgalinis suderinamumas su senesnėmis pašto sistemomis.

1 žingsnis

Įkelkite el. laiško turinį.

Dienos vaizdo įrašas

2 žingsnis

Patikrinkite antraštę „Content-Type“. Jei turinio tipas yra kelių dalių (t. y. „daugialypis/mišrus“, „daugiadalis/alternatyvus“ ir t. t.), pranešime bus keli skyriai, kuriuos reikia analizuoti. Jei turinio tipas yra kelių dalių, tęskite toliau nurodytus veiksmus.

3 veiksmas

Turinio tipo antraštėje turėtų būti unikali eilutė, kurią naudoja kodas, sugeneravęs MIME pranešimą, kad būtų nurodytos MIME dalies ribos. Pavyzdys:

Turinio tipas: kelių dalių / mišrus; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Šiuo atveju ribinė eilutė yra „part_c7161025_fe8a_45f4_83ef_6befcfa5d021“.

4 veiksmas

Kiekviena MIME dalis bus atskirta ribine eilute, prieš kurią rašomi du brūkšneliai („--“) tuščioje eilutėje. Turėsite nuskaityti pranešimą eilutę po eilutės ieškant dalių ribų. Visas tekstas tarp ribų išskyrus galutinį CR/LF yra tos MIME dalies dalis.

Svarbu: paskutinė MIME dalis baigsis ribine eilute ir dar dviem brūkšneliais.

Pavyzdys:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Pirmoji MIME dalis.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Antroji MIME dalis

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Paskutinė MIME dalis.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

5 veiksmas

Tada kiekvieną MIME dalį reikia išanalizuoti. Kiekvienos MIME dalies formatas yra panašus į originalų RFC/822 formatuotą pranešimą. Jame bus keletas antraščių, po kurių bus tuščia eilutė, o tada – kūno duomenys.

6 veiksmas

Pati MIME dalis gali būti kelių dalių, turinti savo „Content-Type“ antraštę ir ribinę eilutę. Jūsų kodas turi rekursyviai išanalizuoti MIME dalis, kol pasieks antrinius mazgus.

7 veiksmas

MIME dalis gali būti tiesiog dvejetainis priedas. Tokiu atveju paprastai pateikiama failo pavadinimo antraštė kartu su perdavimo kodavimu. BASE64 yra populiarus kodavimo tipas. Šiuo atveju visas MIME dalies korpusas turi būti iššifruotas BASE64. Kaip pavyzdys pateikiamos kelios pirmosios pridėto JPG vaizdo eilutės:

=NextPart_003_01C755EF.43F2628D Turinio tipas: vaizdas/jpeg; name="testimage.jpg" Turinio perdavimo kodavimas: base64 Turinio aprašymas: testimage.jpg Turinio išdėstymas: priedas; failo pavadinimas="testimage.jpg"

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIAQJYM AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

8 veiksmas

Pranešimo HTML turinys turi būti MIME skiltyje su ContentType: Text/Html, skiltyje ContentType: Multipart/Alternative MIME.

9 veiksmas

Paprasto teksto pranešimo turinys turi būti MIME skiltyje su „ContentType: Text/plain“, „ContentType: Multipart/Alternative MIME“ skiltyje.

Daiktai, kurių jums prireiks

  • Kompiuterinės kalbos žinios (t.y. C++, C#, VB ir kt.).

  • Pagrindinės žinios apie RFC/822 formato el. pašto pranešimo formatą.

Patarimas

Pasitarkite su RFC 822 http://www.ietf.org/rfc/rfc0822.txt? skaičius = 822 ir RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? skaičius = 1341 Daugiau informacijos. Jei koduojate C#, puiki nemokama biblioteka yra adresu http://www.codeproject.com/csharp/mime_project.asp.