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
- RFC 2045: MIME Part One: Format of Internet Message Bodies — RFC Editor
- RFC 5322: Internet Message Format — RFC Editor