Multipurpose Internet Mail Extensions (MIME)-Protokoll
Multipurpose Internet Mail Extensions (MIME) ist ein Internetstandard, der das E‑Mail‑Format erweitert, um zu unterstützen:
- Text in anderen Zeichensätzen als US‑ASCII;
- Nicht‑Text‑Anhänge;
- Mehrteilige Nachrichtenkörper; und
- Header-Informationen in Nicht‑ASCII‑Zeichensätzen.
SMTP unterstützt nur 7‑Bit‑ASCII‑Zeichen, was im Grunde bedeutet, dass es nur eine kleine Anzahl von Sprachen unterstützt. Sprachen, die auf dem lateinischen Alphabet basieren, funktionieren in SMTP; andere Sprachen werden bei der Zustellung von E‑Mails nicht korrekt angezeigt. MIME erweitert jedoch die ASCII‑Zeichenunterstützung von SMTP, sodass E‑Mails mit anderen Zeichensätzen, Bildern und Sounds gesendet und angezeigt werden können. Im Allgemeinen verarbeiten alle E‑Mail‑Clients und SMTP‑Server MIME‑formatierte Nachrichten korrekt.
Verstehen von MIME‑Headern
MIME‑Header enthalten Informationen über das Protokoll.
MIME-Version
Dies zeigt an, dass die Nachricht im MIME-Format vorliegt. Sie erscheint als:
MIME-Version: 1.0
Content-Type
Dies gibt den Inhaltstyp der Nachricht an, angegeben als Typ‑ und Subtyp‑Paar, z. B. text/plain, text/html. Der Multipart‑Inhaltstyp kann Text, HTML, Anhänge, Bilder, Audio, Video usw. enthalten.
Content-Type: multipart
Content-Transfer-Encoding
Gibt an, ob ein Binär‑zu‑Text‑Kodierungsschema zusätzlich zum im Content-Type angegebenen Encoding verwendet wird. Falls ja, wird angegeben, welches. Hier können wir 7‑Bit, 8‑Bit und Binär‑Kodierungstypen festlegen.
Encoded‑Word
SMTP‑Nachrichten-Header verwenden normalerweise ASCII‑Zeichen. Nicht‑ASCII‑Zeichen müssen die MIME‑kodierte Wort‑Syntax anstelle eines wörtlichen Strings verwenden. Das Format ist:
"=? charset ? encoding ? encoded text ?=".
Multipart‑Nachrichten
Eine MIME-Multipart-Nachricht enthält eine Grenze (Boundary) im Content-Type‑Header. Diese Grenze, die in keinem der Teile vorkommen darf, wird zwischen den Teilen sowie am Anfang und Ende des Nachrichten‑Body platziert, wie folgt:
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="frontier"
This is a multi-part message in MIME format.
--frontier
Content-type: text/plain
This is the body of the message.
--frontier
Content-type: application/octet-stream
Content-transfer-encoding: base64
PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg
Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
--frontier--
Jeder Teil besteht aus einem eigenen Inhalts‑Header und einem Body.
Multipart‑Subtypen
Der MIME‑Standard definiert verschiedene multipart‑Message‑Subtypen. Der Subtyp wird im „Content-Type“-Header der Gesamtnachricht angegeben.
Im Folgenden ist eine Liste der am häufigsten verwendeten Subtypen.
- Mixed: multipart/mixed wird verwendet, um Dateien mit unterschiedlichen „Content-Type“-Headers inline zu senden. Beim Senden von Bildern oder anderen leicht lesbaren Dateien zeigen die meisten Mail‑Clients sie inline an.
- Message: Ein Nachrichten‑Teil enthält eine E‑Mail‑Nachricht.
- Digest: Digest ist eine einfache Möglichkeit, mehrere Textnachrichten zu senden. Der Standard‑Content‑Type für jeden Teil ist „message/rfc822“.
- Alternative: Der alternative Subtyp gibt an, dass jeder Teil eine „alternative“ Version desselben (oder eines ähnlichen) Inhalts ist, jeweils in einem anderen Format, das durch den „Content-Type“-Header angegeben wird.
Am häufigsten wird multipart/alternative für E‑Mails mit zwei Teilen verwendet, einem Nur‑Text‑Teil (text/plain) und einem HTML‑Teil (text/html). Der Nur‑Text‑Teil sorgt für Abwärtskompatibilität, während der HTML‑Teil Formatierungen und Hyperlinks ermöglicht. Die meisten E‑Mail‑Clients bieten eine Option, rein‑Text zu bevorzugen; dies ist ein Beispiel dafür, wie lokale Faktoren beeinflussen können, welchen „besten“ Teil einer Nachricht eine Anwendung anzeigt.