Kuinka purkaa sähköposti MIME-muodossa

click fraud protection

Useimmat tänään lähetetyt sähköpostit ovat MIME-muotoisia (Multipupose Internet Mail Extensions). Tämä mahdollistaa sähköpostien lähettämisen pelkkää tekstiä ja rich text/HTML-versioina, upotetuina kuvina ja liitteinä. Viesteihin voidaan lisätä MIME-laajennuksia standardissa RFC/822-muodossa, joten taaksepäin yhteensopivuus saavutetaan vanhempien sähköpostijärjestelmien kanssa.

Vaihe 1

Lataa sähköpostiviestin sisältö.

Päivän video

Vaihe 2

Tarkista "Content-Type" -otsikko. Jos sisältötyyppi on moniosainen (eli "multipart/mixed", "multipart/alternative" jne.), viestissä on useita osioita jäsennettävänä. Jos sisältötyyppi on moniosainen, jatka alla olevilla vaiheilla.

Vaihe 3

Content-Type-otsikon tulee sisältää yksilöllinen merkkijono, jota MIME-sanoman luonut koodi käyttää MIME-osien rajojen osoittamiseen. Esimerkki:

Sisältötyyppi: moniosainen/sekoitettu; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Rajamerkkijono tässä tapauksessa on "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

Vaihe 4

Jokainen MIME-osa erotetaan rajalla olevalla merkkijonolla, jota edeltää kaksi väliviivaa ("--") tyhjällä rivillä. Sinun tulee skannata viesti rivi riviltä etsiäksesi osien rajoja. Kaikki teksti rajojen välissä paitsi viimeinen CR/LF on osa tuota MIME-osaa.

Tärkeää: Viimeinen MIME-osa päättyy rajamerkkijonoon, jota seuraa kaksi lisäviivaa.

Esimerkki:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Ensimmäinen MIME-osa.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Toinen MIME-osa

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Viimeinen MIME-osa.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

Vaihe 5

Jokainen MIME-osa on sitten jäsennettävä. Kunkin MIME-osan muoto on samanlainen kuin alkuperäinen RFC/822-muotoiltu viesti. Se sisältää sarjan otsikoita, joita seuraa tyhjä rivi ja sitten runkotiedot.

Vaihe 6

MIME-osa voi itsessään olla moniosainen, ja siinä on oma "Content-Type"-otsikko ja rajamerkkijono. Koodisi on jäsennettävä rekursiivisesti MIME-osia, kunnes se saavuttaa alisolmut.

Vaihe 7

MIME-osa voi olla yksinkertaisesti binääriliite. Tässä tapauksessa tiedostonimi-otsikko yleensä toimitetaan yhdessä siirtokoodauksen kanssa. BASE64 on suosittu koodaustyyppi. Tässä tapauksessa koko MIME-osan runko on purettava BASE64-koodilla. Tässä ovat esimerkkinä liitetyn JPG-kuvan ensimmäiset rivit:

=NextPart_003_01C755EF.43F2628D Sisältötyyppi: kuva/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Content-Disposition: attachment; filename="testimage.jpg"

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

Vaihe 8

Viestin HTML-tekstin tulee olla MIME-osiossa, jossa on ContentType: Text/Html, ContentType: Multipart/Alternative MIME -osan sisällä.

Vaihe 9

Viestin pelkkä tekstiosan tulee olla MIME-osiossa, jossa on ContentType: Text/plain, ContentType: Multipart/Alternative MIME -osan sisällä.

Asiat, joita tarvitset

  • Tietokonekielen taito (esim. C++, C#, VB jne.).

  • Perustiedot RFC/822-muotoisen sähköpostiviestin muodosta.

Kärki

Ota yhteyttä RFC 822:een http://www.ietf.org/rfc/rfc0822.txt? numero = 822 ja RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? numero = 1341 Lisätietoja. Jos koodaat C#:lla, erinomainen ilmainen kirjasto on saatavilla osoitteessa http://www.codeproject.com/csharp/mime_project.asp.