technisch · antwoord met bronnen

MIME (Multipurpose Internet Mail Extensions) uitgelegd

MIME staat voor Multipurpose Internet Mail Extensions. Het is een standaard die het oorspronkelijke Simple Mail Transfer Protocol (SMTP) uitbreidt, zodat ook andere content dan tekst kan worden uitgewisseld, zoals afbeeldingen, audio, video en applicatiedata, en daarnaast opgemaakte tekst zoals HTML.

Hoe MIME werkt

MIME voegt specifieke headers aan het e-mailbericht toe die de ontvangende mailclient vertellen hoe de body moet worden verwerkt. De belangrijkste header is Content-Type, die het mediatype van de data aangeeft. Zo staat text/plain voor eenvoudige tekst en text/html voor een opgemaakte webpagina. Als er meerdere soorten content in één e-mail worden verstuurd, worden de typen multipart/mixed of multipart/alternative gebruikt om de verschillende delen te groeperen.

Waarom het belangrijk is voor afzenders

MIME is essentieel voor de deliverability en gebruikerservaring van moderne e-mail. Zonder MIME zouden e-mails beperkt zijn tot 7-bits ASCII-tekens, waardoor internationalisering onmogelijk zou zijn en bijlagen niet mogelijk zouden zijn. Met MIME kunnen afzenders naast een HTML-versie ook een plaintextversie als terugvaloptie meesturen, zodat het bericht leesbaar is, ongeacht wat de e-mailclient van de ontvanger ondersteunt.

Praktische aandachtspunten en fouten

Een veelgemaakte fout is de juiste charset niet instellen in de Content-Type-header, wat leidt tot kapotte tekens of mojibake. Een ander probleem zijn onjuiste boundary-definities in multipart-berichten, waardoor de e-mail als ruwe code kan verschijnen of bijlagen ontbreken. Developers moeten ervoor zorgen dat binaire data correct met Base64 wordt gecodeerd, zodat die onderweg via SMTP-relays niet beschadigd raakt.

Concreet voorbeeld

Een typische MIME-header voor een HTML-e-mail met een bijlage ziet er zo uit: Content-Type: multipart/mixed; boundary=boundary_123. In de body is het eerste deel gemarkeerd als Content-Type: text/html; charset=UTF-8 voor de berichttekst, en het tweede deel als Content-Type: application/pdf; name=invoice.pdf voor het bestand. Met SendHQ of de gratis tools (https://sendhq.cc/tools) kun je analyseren hoe je headers zijn opgebouwd.

Coderingsmechanismen

Omdat SMTP voor tekst is ontworpen, gebruikt MIME coderingsschema's om binaire data te transporteren. Base64 is de meest gebruikte methode en zet binaire bestanden om in een reeks ASCII-tekens. Quoted-Printable-codering wordt gebruikt voor tekst die grotendeels uit ASCII bestaat maar enkele niet-ASCII-tekens bevat. Dat geeft minder overhead dan Base64 en blijft compatibel met oudere mailsystemen.

Vragen die teams stellen

Is MIME hetzelfde als SMTP?

Nee. SMTP is het protocol dat de e-mail van de ene server naar de andere transporteert, terwijl MIME de standaard is die het formaat van de getransporteerde content bepaalt.

Wat is het MIME-type multipart/alternative?

Het wordt gebruikt wanneer dezelfde content in meerdere formaten wordt verstuurd, zoals plaintext en HTML, zodat de e-mailclient de beste versie kan kiezen om te tonen.

Waarom wordt Base64 gebruikt in MIME?

Base64 codeert binaire data als ASCII-tekst, zodat de data intact blijft wanneer die via mailservers gaat die alleen 7-bits tekst ondersteunen.

Kan MIME ook buiten e-mail worden gebruikt?

Ja, het systeem van MIME-types (tegenwoordig Media Types genoemd) wordt overal op het web gebruikt, onder meer in HTTP-headers om aan te geven welk type bestand wordt gedownload of geüpload.

Primaire bronnen