De meeste e-mails die vandaag worden verzonden, zijn in MIME-indeling (Multipupose Internet Mail Extensions). Hierdoor kunnen e-mails worden verzonden met platte tekst en rich text/HTML-versies, inline afbeeldingen en bijlagen. MIME-extensies kunnen aan een bericht worden toegevoegd in standaard RFC/822-formaat, zodat achterwaartse compatibiliteit met oudere e-mailsystemen wordt bereikt.
Stap 1
Laad de inhoud van het e-mailbericht.
Video van de dag
Stap 2
Controleer de kop "Content-Type". Als het inhoudstype uit meerdere delen bestaat (d.w.z. "uit meerdere delen/gemengd", "uit meerdere delen/alternatief", enz.), heeft het bericht meerdere secties om te ontleden. Als het inhoudstype uit meerdere delen bestaat, gaat u verder met de onderstaande stappen.
Stap 3
De Content-Type-header moet een unieke tekenreeks bevatten die wordt gebruikt door de code die het MIME-bericht heeft gegenereerd om MIME-onderdeelgrenzen aan te duiden. Voorbeeld:
Inhoudstype: meerdelig/gemengd; grens = "part_c7161025_fe8a_45f4_83ef_6befcfa5d021"
De grensreeks is in dit geval "part_c7161025_fe8a_45f4_83ef_6befcfa5d021".
Stap 4
Elk MIME-gedeelte wordt gescheiden door de grensreeks voorafgegaan door twee streepjes ("--") op een lege regel. U moet het bericht regel voor regel scannen op zoek naar de onderdeelgrenzen. Alle tekst tussen de grenzen behalve de laatste CR/LF maakt deel uit van dat MIME-gedeelte.
Belangrijk: het laatste MIME-gedeelte eindigt met de grensreeks gevolgd door nog twee streepjes.
Voorbeeld:
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Eerste MIME-onderdeel.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Tweede MIME-deel
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021 Laatste MIME-onderdeel.
--part_c7161025_fe8a_45f4_83ef_6befcfa5d021--
Stap 5
Elk MIME-gedeelte moet vervolgens worden geparseerd. Het formaat van elk MIME-onderdeel is vergelijkbaar met het originele RFC/822-geformatteerde bericht. Het bevat een reeks kopteksten, gevolgd door een lege regel en vervolgens de hoofdtekst.
Stap 6
Een MIME-onderdeel kan zelf uit meerdere delen bestaan, met zijn eigen "Content-Type"-header en grensreeks. Uw code moet recursief MIME-onderdelen parseren totdat deze de onderliggende knooppunten bereikt.
Stap 7
Een MIME-onderdeel kan gewoon een binaire bijlage zijn. In dit geval wordt meestal een Filename-header meegeleverd, samen met de overdrachtscodering. BASE64 is een populair coderingstype. In dit geval moet de hele body van het MIME-deel BASE64-gedecodeerd zijn. Als voorbeeld zijn hier de eerste paar regels van een bijgevoegde JPG-afbeelding:
=NextPart_003_01C755EF.43F2628D Inhoudstype: afbeelding/jpeg; name="testimage.jpg" Content-Transfer-Encoding: base64 Content-Description: testimage.jpg Content-Disposition: bijlage; bestandsnaam="testafbeelding.jpg"
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyQIyMjMjIyQIyMjMjIyQIyMjMjA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
Stap 8
De HTML-tekst van het bericht moet in een MIME-sectie staan met ContentType: Text/Html, in een ContentType: Multipart/Alternative MIME-sectie.
Stap 9
De tekst zonder opmaak van het bericht moet in een MIME-sectie staan met ContentType: Text/plain, in een ContentType: Multipart/Alternative MIME-sectie.
Dingen die je nodig hebt
Kennis van een computertaal (bijv. C++, C#, VB, etc).
Basiskennis van het formaat van een RFC/822 geformatteerd e-mailbericht.
Tip
Raadpleeg RFC 822 http://www.ietf.org/rfc/rfc0822.txt? nummer=822 en RFC 1341 http://www.ietf.org/rfc/rfc1341.txt? nummer = 1341 voor meer informatie. Als u in C# codeert, is een uitstekende gratis bibliotheek beschikbaar op http://www.codeproject.com/csharp/mime_project.asp.