Většina e-mailů odeslaných dnes je ve formátu MIME (Multipupose Internet Mail Extensions). To umožňuje odesílat e-maily s prostým textem a verzemi RTF/HTML, vloženými obrázky a přílohami. Rozšíření MIME lze přidat do zprávy ve standardním formátu RFC/822, takže je dosaženo zpětné kompatibility se staršími poštovními systémy.
Krok 1
Načtěte obsah e-mailové zprávy.
Video dne
Krok 2
Zkontrolujte záhlaví "Content-Type". Pokud je typ obsahu vícedílný (tj. „vícedílný/smíšený“, „vícedílný/alternativní“ atd.), bude mít zpráva k analýze více částí. Pokud je typ obsahu vícedílný, pokračujte níže uvedenými kroky.
Krok 3
Záhlaví Content-Type by mělo obsahovat jedinečný řetězec používaný kódem, který vygeneroval zprávu MIME, k označení hranic částí MIME. Příklad:
Typ obsahu: vícedílný/smíšený; boundary="part_c7161025_fe8a_45f4_83ef_6befcfa5d021"
Hraniční řetězec je v tomto případě "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".
Krok 4
Každá část MIME bude oddělena hraničním řetězcem, kterému předcházejí dvě pomlčky ("--") na prázdném řádku. Budete muset naskenovat zprávu řádek po řádku a hledat hranice součástí. Veškerý text mezi hranicemi
kromě konečného CR/LF je součástí této části MIME.Důležité: Poslední část MIME bude končit hraničním řetězcem následovaným dvěma dalšími pomlčkami.
Příklad:
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 První část MIME.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Druhá část MIME
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Poslední část MIME.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--
Krok 5
Každá část MIME pak musí být analyzována. Formát každé části MIME je podobný původní zprávě ve formátu RFC/822. Bude obsahovat řadu záhlaví, za nimi bude následovat prázdný řádek a poté data těla.
Krok 6
Část MIME může být sama o sobě vícedílná s vlastní hlavičkou "Content-Type" a hraničním řetězcem. Váš kód musí rekurzivně analyzovat části MIME, dokud nedosáhne podřízených uzlů.
Krok 7
MIME část může být jednoduše binární příloha. V tomto případě bude obvykle dodána hlavička Filename spolu s kódováním přenosu. BASE64 je oblíbený typ kódování. V tomto případě musí být celé tělo MIME části dekódováno BASE64. Jako příklad uvádíme prvních několik řádků připojeného obrázku JPG:
=NextPart_003_01C755EF.43F2628D Content-Type: image/jpeg; name="testimage.jpg" Kódování přenosu obsahu: base64 Popis obsahu: testimage.jpg Dispozice obsahu: příloha; filename="testimage.jpg"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a A AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
Krok 8
Tělo HTML zprávy by mělo být v sekci MIME s ContentType: Text/Html, uvnitř sekce ContentType: Multipart/Alternative MIME.
Krok 9
Tělo zprávy ve formátu prostého textu by mělo být v sekci MIME s ContentType: Text/plain, uvnitř sekce ContentType: Multipart/Alternative MIME.
Věci, které budete potřebovat
Znalost počítačového jazyka (např. C++, C#, VB atd.).
Základní znalost formátu e-mailové zprávy ve formátu RFC/822.
Spropitné
Prostudujte si RFC 822 http://www.ietf.org/rfc/rfc0822.txt? číslo=822 a RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? číslo=1341 Pro více informací. Pokud kódujete v C#, vynikající bezplatná knihovna je k dispozici na http://www.codeproject.com/csharp/mime_project.asp.