Kā atšifrēt e-pastu MIME formātā

Lielākā daļa šodien nosūtīto e-pasta ziņojumu ir MIME (multipupose Internet Mail Extensions) formatēti. Tas ļauj nosūtīt e-pasta ziņojumus ar vienkāršu tekstu un bagātināta teksta/HTML versijām, iekļautiem attēliem un pielikumiem. Ziņojumam standarta RFC/822 formātā var pievienot MIME paplašinājumus, tādējādi tiek nodrošināta atgriezeniskā saderība ar vecākām pasta sistēmām.

1. darbība

Ielādējiet e-pasta ziņas saturu.

Dienas video

2. darbība

Pārbaudiet galveni "Content-Type". Ja satura veids ir daudzdaļīgs (t.i., "daudzdaļīgs/jaukts", "vairākdaļīgs/alternatīvs" utt.), ziņojumam būs vairākas sadaļas, kuras parsēt. Ja satura veids ir vairāku daļu, turpiniet ar tālāk norādītajām darbībām.

3. darbība

Satura tipa galvenē ir jābūt unikālai virknei, ko izmanto kods, kas ģenerēja MIME ziņojumu, lai norādītu MIME daļas robežas. Piemērs:

Satura veids: daudzdaļīgs/jaukts; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"

Robežu virkne šajā gadījumā ir "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".

4. darbība

Katra MIME daļa tiks atdalīta ar robežvirkni, pirms kuras ir divas domuzīmes ("--") tukšā rindā. Jums būs jāskenē ziņojums pēc rindas, meklējot daļu robežas. Viss teksts starp robežām izņemot pēdējo CR/LF ir daļa no šīs MIME daļas.

Svarīgi! Pēdējā MIME daļa beigsies ar robežvirkni, kam sekos vēl divas domuzīmes.

Piemērs:

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Pirmā MIME daļa.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Otrā MIME daļa

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Pēdējā MIME daļa.

--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--

5. darbība

Pēc tam katra MIME daļa ir jāparsē. Katras MIME daļas formāts ir līdzīgs oriģinālajam RFC/822 formatētam ziņojumam. Tajā būs virkne virsrakstu, kam sekos tukša rindiņa un pēc tam pamatdati.

6. darbība

MIME daļa pati par sevi var būt vairākdaļīga ar savu "Content-Type" galveni un robežvirkni. Jūsu kodam ir rekursīvi jāparsē MIME daļas, līdz tas sasniedz pakārtotos mezglus.

7. darbība

MIME daļa var būt vienkārši binārs pielikums. Šajā gadījumā parasti tiek nodrošināta faila nosaukuma galvene kopā ar pārsūtīšanas kodējumu. BASE64 ir populārs kodēšanas veids. Šajā gadījumā visam MIME daļas korpusam ir jābūt BASE64 dekodētam. Kā piemēru šeit ir pievienota JPG attēla pirmās rindas:

=NextPart_003_01C755EF.43F2628D Satura veids: attēls/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Satura izvietojums: pielikums; faila nosaukums="testimage.jpg"

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

8. darbība

Ziņojuma HTML pamattekstam ir jāatrodas MIME sadaļā ar ContentType: Text/Html, sadaļā ContentType: Multipart/Alternative MIME.

9. darbība

Ziņojuma vienkāršā teksta pamattekstam ir jāatrodas MIME sadaļā ar ContentType: Text/plain, sadaļā ContentType: Multipart/Alternative MIME.

Lietas, kas jums būs nepieciešamas

  • Datorvalodas zināšanas (t.i., C++, C#, VB u.c.).

  • Pamatzināšanas par RFC/822 formatēta e-pasta ziņojuma formātu.

Padoms

Konsultējieties ar RFC 822 http://www.ietf.org/rfc/rfc0822.txt? numurs = 822 un RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? numurs=1341 lai iegūtu vairāk informācijas. Ja kodējat C#, lieliska bezmaksas bibliotēka ir pieejama vietnē http://www.codeproject.com/csharp/mime_project.asp.