E-mail dekódolása MIME formátumban
A legtöbb ma elküldött e-mail MIME (Multipupose Internet Mail Extensions) formátumú. Ez lehetővé teszi az e-mailek egyszerű szöveggel és rich text/HTML verziókkal, soron belüli képekkel és mellékletekkel történő elküldését. A MIME-bővítmények szabványos RFC/822 formátumú üzenetekhez adhatók, így a régebbi levelezőrendszerekkel visszafelé kompatibilitás érhető el.
1. lépés
Töltse be az e-mail üzenet tartalmát.
2. lépés
Ellenőrizze a "Content-Type" fejlécet. Ha a tartalomtípus több részből áll (azaz "többrészes/vegyes", "többrészes/alternatív" stb.), az üzenet több részből áll majd az elemzésre. Ha a tartalomtípus több részből áll, folytassa az alábbi lépésekkel.
3. lépés
A Content-Type fejlécnek tartalmaznia kell egy egyedi karakterláncot, amelyet a MIME-üzenetet generáló kód használ a MIME-részhatárok kijelölésére. Példa:
Tartalom típusa:többrészes/vegyes; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"
A határkarakterlánc ebben az esetben a következő:"part_c7161025_fe8a_45f4_83ef_6befcfa5d021".
4. lépés
Az egyes MIME-részeket egy határoló karakterlánc választja el, amelyet két kötőjel ("--") előz meg egy üres sorban. Soronként át kell vizsgálnia az üzenetet, és meg kell keresnie az alkatrészhatárokat. Minden szöveg a határok között kivéve a végső CR/LF része ennek a MIME-résznek.
Fontos:Az utolsó MIME-rész a határ karakterlánccal, majd két további gondolatjellel végződik.
Példa:
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Első MIME-rész.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Második MIME-rész
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Utolsó MIME-rész.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--
5. lépés
Ezután minden MIME-részt elemezni kell. Az egyes MIME-részek formátuma hasonló az eredeti RFC/822 formátumú üzenethez. Ez egy sor fejlécet tartalmaz, majd egy üres sort, majd a törzsadatokat.
6. lépés
A MIME-rész maga is lehet többrészes, saját "Content-Type" fejléccel és határkarakterlánccal. A kódnak rekurzívan elemeznie kell a MIME-részeket, amíg el nem éri a gyermek csomópontokat.
7. lépés
A MIME-rész egyszerűen egy bináris melléklet lehet. Ebben az esetben általában egy Fájlnév fejlécet kell megadni, az átviteli kódolással együtt. A BASE64 egy népszerű kódolási típus. Ebben az esetben a teljes MIME alkatrész törzsét BASE64 dekódolni kell. Példaként álljon itt egy csatolt JPG kép első néhány sora:
------= NextPart_003_01C755EF.43F2628D Tartalomtípus:kép/jpeg; name="testimage.jpg" Content-Transfer-Encoding:base64 Content-Description:testimage.jpg Tartalom-elhelyezés:melléklet; filename="testimage.jpg"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAQABQQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
8. lépés
Az üzenet HTML törzsének egy ContentType:Text/Html MIME szakaszban kell lennie, a ContentType:Multipart/Alternative MIME szakaszon belül.
9. lépés
Az üzenet egyszerű szöveges törzsének egy ContentType:Text/plain MIME szakaszban kell lennie, a ContentType:Multipart/Alternative MIME szakaszon belül.
Tipp
További információért keresse fel az RFC 822 http://www.ietf.org/rfc/rfc0822.txt?number=822 és az RFC 1341 http://www.ietf.org/rfc/rfc1341.txt?number=1341 dokumentumot. Ha C#-ban kódol, egy kiváló ingyenes könyvtár érhető el a http://www.codeproject.com/csharp/mime_project.asp címen.