Der HeaderÄhnlich wie ein herkömmlicher papierener Brief weist auch ein E-Mail einen Briefkopf auf, in welchem interessante Dinge wie Absender, Adressat und Datum zu finden sind. Dieser Briefkopf wird bei einem E-Mail Header genannt. Er besteht aus mehreren Teilen, die Felder genannt werden. Ein Feld besteht aus einem Feldnamen, gefolgt von einem Doppelpunkt (Colon), dem Feldinhalt und einem CRLF. Dazwischen darf sich grundsätzlich beliebig Leerraum befinden. Felder können sich auch über mehrere Zeilen erstrecken. Sogenannte Folgezeilen, welche noch zum Feld in der Zeile oberhalb gehören, beginnen mit Leerraum.
Es existieren die folgenden standardisierten Felder (diese werden weiter unten noch näher vorgestellt):
From, Sender, Reply-To, To, Cc, Bcc, Message-ID, In-Reply-To, References, Date, Received, Return-Path, Subject, Comments, Keywords und
Encrypted (veraltet). Dabei müssen in einem E-Mail mindestens die Felder
Date und
From sowie mindestens eines der Adressatenfelder
To, Cc oder
Bcc vorhanden sein. (Zudem müssen während der Reise des E-Mails
Received Felder hinzu kommen. Mehr dazu aber im dritten Teil über das Envelope.) Neben diesen Standardfeldern gibt es für E-Mail Software die Möglichkeit, eigene erweiternde Header-Felder zu verwenden. Diese erweiternden Felder müssen das Präfix X- im Feldnamen tragen. Ein häufig anzutreffendes erweiterndes Feld ist z.B.
X-Mailer, in welchem vermerkt wird, mit welcher Software das E-Mail erstellt worden ist. Naheliegenderweise können diese nicht-standardisierten, erweiternden Felder häufig nur von der einfügenden Software interpretiert werden und Fremdsoftware weiss damit oft nichts anzufangen.
In Feldnamen findet die Gross-/Kleinschreibung keine Beachtung. Es folgt eine kurze Vorstellung der Standard-Felder:
FromDas
From Feld enthält in der Regel eine einzige Mailbox, welche die Person oder den Prozess identifiziert, welche(r) das E-Mail erstellt hat. Also z.B:
From: rodion@raskolnikow.ru
Obwohl selten angetroffen, ist im From Feld auch eine kommaseparierte Mailboxliste erlaubt:
From: rodion@raskolnikow.ru, dmitrij@rasumichin.ru
Enthält das From Feld mehr als eine Mailbox, so muss der Header zwingend ein Sender Feld enthalten.
SenderDieses Feld gibt den Versender eines E-Mails an. Es mag auf den ersten Blick redundant mit dem
From Feld erscheinen. Der Versender einer Mitteilung braucht jedoch nicht zwangsläufig auch der Ersteller zu sein. So kann zum Beispiel eine Sekretärin im Auftrag und Namen ihres Chefs ein Mail versenden:
From: bond@secretservice.gov.uk
Sender: moneypenny@secretservice.gov.uk
Das Feld darf nur eine einzige Mailbox enthalten. Es ist ursprünglich dafür gedacht, am „Abgangsort“ und nicht durch nachfolgende Empfänger eingefügt zu werden. Einige Mailing Listen benutzen das Feld hingegen um anzuzeigen, dass das Mail durch eine Mailing Liste verteilt worden ist. Dabei handelt es sich jedoch technisch gesehen um ein regelwidriges Vorgehen, da es die Nutzung des Feldes zum ursprünglich vorgesehenen Zweck sabotiert.
Reply-ToIn jenem Feld wird angegeben, wohin eine allfällige Antwort auf das betreffende Mail gesendet werden soll. Es wird häufig durch Benutzer mit mehreren Computern eingesetzt, welche die Antworten auf ihre E-Mails auf einem einzigen Computer erhalten möchten:
From: peter_parker@home.net
Reply-To: spiderman@savetheworld.com
Dem Feld wird beim Beantworten von Mails durch die meisten E-Mail Programme standardmässig Vorrang vor dem
From Feld eingeräumt. Es wird häufig auch von Mailing Listen eingesetzt, um sicherzustellen, dass auch Antworten wieder über die Liste erfolgen und nicht direkt an den ursprünglichen Autor gehen. Das Feld darf, wie das
From Feld, auch mehrere durch Komma getrennte Mailboxen enthalten.
Die Absenderangaben in E-Mails sorgen bei Empfängern immer wieder für Verwirrung: „Ich habe ein dubioses E-Mail von Tante Gertha erhalten, und die will sich nicht daran erinnern, ein solches Mail geschickt zu haben.“ Hier hilft es, sich erneut die nicht-virtuelle Analogie vorzustellen: den papierenen Brief. Ich werde als normaler ehrlicher Mensch zwar mich selbst als Absender im Briefkopf vermerken, und nicht etwa meinen Cousin Alphons oder das Finanzamt. Es ist aber für jeden ohne Weiteres möglich, im Briefkopf einen anderen, falschen Absender anzugeben. Genau so ist es leicht möglich, die Angaben in den
From, Sender und
Reply-To Feldern zu fälschen. Das E-Mail muss also keinesfalls von Tante Gertha stammen, auch wenn ihre E-Mail Adresse im
From Feld steht. Zuverlässigere Informationen über die Herkunft eines E-Mails lassen sich aus den
Received Feldern heraus lesen. Dazu später mehr.
ToIn jenem Feld stehen der oder die primäre(n) Empfänger des E-Mails. Also z.B.
To: alexej@karamasow.ru, dmitrij@karamasow.ru
CcDas
Cc Feld dient der Angabe eines oder mehrerer sekundärer Empfänger. Das Cc steht für carbon copy (= Durchschlag). Die unter
Cc aufgeführten Empfänger sollen die Mitteilung lediglich „zur Kenntnis“ erhalten. Von ihnen erwartet der Sender keine Reaktion.
BccSteht für blind carbon copy (= versteckter Durchschlag) und hat eine ähnliche Funktion wie
Cc, mit dem Unterschied, dass die unter
To und
Cc aufgeführten Empfänger die unter
Bcc aufgeführten nicht sehen können.
Wie E-Mail Programme mit dem Feld umzugehen haben ist nicht sehr detailliert geregelt und lässt Raum für unterschiedliche Interpretationen. Dementsprechend finden sich unter den E-Mail Programmen die folgenden drei Vorgehensweisen:
a) Das E-Mail Programm merkt sich die Adressen im
Bcc Feld und löscht dieses anschliessend. Es sendet nun das E-Mail ohne
Bcc Feld an alle in den
To, Cc und
Bcc aufgeführten Empfänger einzeln.
b) Das E-Mail Programm löscht das
Bcc Feld und sendet diese Version ohne
Bcc Feld an alle in den
To und
Cc Feldern aufgeführten Empfänger. Anschliessend wird das komplette Mail inklusive
Bcc Feld an alle im
Bcc Feld aufgeführten Empfänger verschickt. Bei diesem Vorgehen kriegen somit alle
Bcc Empfänger mit, welche anderen
Bcc Empfänger das Mail auch erhalten haben.
c) Die dritte Möglichkeit ist eine Kombination der ersten beiden. Das E-Mail Programm sendet zuerst eine Version ohne
Bcc Feld an alle in den
To und
Cc Feldern aufgeführten Empfänger. Anschliessend sendet es das Mail einzeln an alle im
Bcc Feld aufgeführten Empfänger, wobei immer nur der jeweilige Empfänger im
Bcc Feld aufgeführt wird.
Ähnlich wie bei den Absenderangaben kommt es auch bei Empfängerangaben immer wieder zu Verwirrung und erstaunten Fragen, gerade bei Spam und von Viren versandten E-Mails: „Wie konnte dieses E-Mail zu mir gelangen, wo meine E-Mail Adresse doch in den
To, Cc und
Bcc Feldern nirgendwo vermerkt ist?“ Auch hier hilft es wieder, sich den Papierbrief vorzustellen. Wenn ich einen Brief an Tante Gertha schreibe, dann werde ich als höflicher junger Mann selbstverständlich oben in meinem Brief gemäss den üblichen Gepflogenheiten die Anschrift von Tante Gertha vermerken. Auf die Zustellung des Briefes hat diese Angabe jedoch keinen Einfluss (ausser natürlich, wenn ich einen Fensterumschlag verwenden würde). Vermerke ich auf dem Umschlag die Anschrift von Onkel Zülfü, dann geht der Brief an Onkel Zülfü, und nicht an Tante Gertha, obwohl ich auf dem eigentlichen Brief die Anschrift von Tante Gertha vermerkt habe. Genau so verhält es sich auch bei E-Mail. Aber mehr zum Umschlag gibts im dritten Teil.
Message-IDDas
Message-ID Feld enthält eine Kennung, welche das betreffende E-Mail eindeutig identifiziert, z.B:
Message-ID: <20060122130128.8913.qmail@serv20.anyhoster.de>
In-Reply-ToDas
In-Reply-To Feld enthält Informationen zum Identifizieren jener Mitteilung, auf welche mit dem betreffenden Mail geantwortet wird. Es dient den Mail-Programmen zusammen mit dem
References Feld zur baumartigen Darstellung von Konversationssträngen. Die Syntax kann (theoretisch) unterschiedlich aussehen, wobei mir die zweite und dritte Variante in der Realität noch nie unter die Augen gekommen ist:
In-Reply-To: <20060122130128.8913.qmail@serv20.anyhoster.de>
In-Reply-To: Your message of „Sun, 07 Mar 1999 10:23:23 -0700.“ <20060122130128.8913.qmail@serv20.anyhoster.de>
In-Reply-To: Joe‘s message of Sun, 07 Mar 1999 10:23:23 -0700
ReferencesDieses Feld dient als Ergänzung zum
In-Reply-To Feld. Es führt nicht nur die Mitteilung auf, auf die unmittelbar geantwortet wird, sondern alle vorangegangenen Mails eines Diskussionsstranges:
In-Reply-To: <06AC49D2-4EC2-4C19-877C-E4A7D59F78D7@spray.se>
References: <082B0B84-285C-4985-B1E2-92BC96B047E7@spray.se>
<abd4da256bad2e736b5cb5774ebfbd07@physics.uc.edu>
<F6EE2BEC-A031-4F5D-9297-90EEFE001A2D@spray.se>
<06AC49D2-4EC2-4C19-877C-E4A7D59F78D7@spray.se>
DateEnthält das Datum und die Zeit wann das E-Mail erstellt worden ist. Vereinzelt gibt es Software, welche darin Datum und Zeit vermerkt, wann das E-Mail verschickt worden ist. Dieses Vorgehen ist allerdings nicht regelkonform.
ReceivedVertiefter auf diese Felder kommen wir im dritten Teil zu sprechen. Vorläufig können wir uns die
Received Felder als etwas wie einen Poststempel auf unserem elektronischen Brief vorstellen. Im Unterschied zu einem papierenen Brief, auf welchem nur jenes Postamt seinen Stempel anbringt, das den Brief vom Absender entgegen nimmt, bringt auf unserem elektronischen Brief jedes „Postamt“ (= SMTP Server), bei welchem das Mail vorbei kommt, ein solches Feld und damit seinen virtuellen Stempel an.
Return-PathAuch bei diesem Feld hängen wir ohne die Kenntnisse aus dem dritten Teil noch etwas in der Luft. Es wird erst vom letzten „Postamt“ in das E-Mail eingefügt, welches darin den auf dem Umschlag angegebenen Absender vermerkt.
SubjectBeinhaltet den Betreff, also eine kurze Beschreibung, worum es im E-Mail geht. Es darf alle 7-Bit Zeichen enthalten, inklusive einzelne CR und LF. Die CRLF Kombination ist hingegen nicht erlaubt. (Bezüglich 8-Bit Zeichen und Kodierung im Betreff siehe weiter unten folgenden Abschnitt über „MIME und Header“.)
CommentsDiese Feld findet relativ selten Verwendung. Es erlaubt das Hinzufügen eines beliebigen Kommentars zu einer E-Mail Mitteilung. Bei verschlüsselten E-Mail wird es mitunter dazu genutzt anzugeben, wo der öffentliche Schlüssel des Absenders erhältlich ist:
Comments: Public Key at
http://beispiel.de/~bob/public-key.pgpKeywordsDieses Feld würde es erlauben, einem E-Mail Schlüsselwörter zuzuordnen, die zum Beispiel für themenspezifische Suchen verwendet werden können. Das Feld wird hingegen kaum benutzt.
EncryptedDieses Feld wurde zwar einst definiert. Es hat jedoch nie wirklich seinen Einsatz gefunden und gilt heute als „veraltet“. Es findet, auch bei verschlüsselten E-Mails, keine Verwendung.
Resent-*Von den
From, Sender, To, Cc, Bcc, Date, Message-ID und
Reply-To Feldern existieren zusätzlich Varianten, welche bei einem „Zweitversand“ (resend - was nicht einer Weiterleitung = forward entspricht) eingefügt werden:
Resent-From, Resent-Sender usw. Bei diesem Resend-Vorgang bleibt, abgesehen davon, dass diese Resent- Felder eingefügt werden, der gesamte Rest des E-Mails unverändert.
Wie wir gesehen haben, beinhaltet eine Reihe der nun vorgstellten Header Felder E-Mail Adressen. Unerwähnt blieb bisher, was das genau ist und wie sie auszusehen haben. Schauen wir uns daher die E-Mail Adressen noch etwas genauer an. Primär wird zwischen zwei Arten von E-Mail Adressen unterschieden: Mailboxen und Gruppenlisten.
Mit der ersten Art, den Mailboxen, sind die meisten Benutzer vertraut. Es existieren zwei Untervarianten: Einfache Adressen und Routing-Adressen. Eine einfache Adresse setzt sich wie folgt zusammen: lokalteil @ domain
Der Lokalteil kann aus einem oder mehreren sogenannten Atoms (beliebige Folgen beliebiger Zeichen, jedoch keine Sonder- und Leerzeichen enthaltend) oder in Anführungszeichen gesetzten Zeichenketten bestehen. Der grösste Teil der E-Mail Adressen besteht aus durch Punkte separierten Atoms, z.B. steve@apple.com oder bill.gates@microsoft.com. Möglich sind aber auch Adressen wie „Emile M.Cioran“@penseur.fr. Gemäss dem Standard würde im Lokalteil die Gross-/Kleinschreibung eigentlich eine Rolle spielen und demnach bob@example.com nicht identisch sein mit Bob@example.com. In der Realität wird die Gross-/Kleinschreibung jedoch von fast ausnahmslos aller E-Mail Software ignoriert. Der Domain Teil wird meist als ausgeschriebener Domainname (Full Qualified Domain Name; FQDN) angegeben, der aus durch Punkte separierten Atoms besteht: tuba.orchestra.com oder cello.org. In Ausnahmefällen möglich ist (oder wäre) gemäss Standard jedoch auch die Angabe einer „aufgelösten“ Domain in eckigen Klammern, was sich z.B. so präsentieren kann: info@[80.67.17.24]. Diese Form der Domain Angabe funktioniert im heutigen Internet Umfeld jedoch kaum noch richtig.
Die zweite Art zur Angabe einer Mailbox ist die Routing-Adresse. Sie steht zwischen <> Zeichen und wurde eigentlich dazu geschaffen, um den genauen Weg eines E-Mails vorzugeben. Eine Routing-Adresse mit Routing Angaben sähe Beispielsweise wie folgt aus: <@c.beispiel.de,@b.beispiel.de,@a.beispiel.de:guido@a.beispiel.de>. Routing Angaben werden jedoch von einem Grossteil der E-Mail Software nicht wirklich ausgewertet und sollten vermieden werden. Dennoch finden Routing-Adressen recht häufig Verwendung, allerdings ohne Routing Angaben. Sie haben nämlich den Vorteil, dass es erlaubt ist, ihnen eine beliebige Phrase voranzustellen. Das wird häufig dazu genutzt, um der E-Mail Adresse den Namen des Adressinhabers in zur menschlichen Lektüre bestimmter Form voranzustellen. So begegnen wir recht häufig solchen Adressangaben: Dirk Diggler <dirk@beispiel.de> oder „Jack Bauer“ <jack@twentyfour.com>.
Mailboxen bezeichnen jeweils einen einzelnen Empfänger. Die zweite Variante der Adressangabe, die Gruppenlisten, ermöglichen es, mehrere Empfänger als eine Einheit zu behandeln. Eine Gruppenliste besteht aus einem Gruppennamen und einer zwischen : und ; Zeichen gesetzten Liste von Mailboxen, z.B:
To: Black and White Team: laurel@doof.de, hardy@dick.de;
Gruppenlisten werden höchst selten zu ihrem eigentlichen Zweck eingesetzt. Viel häufiger begegnen wir ihnen, wenn es darum geht, die Empfänger einer Nachricht zu verbergen. Bei diesem Einsatz der Gruppenlisten macht man es sich zu Nutzen, dass der Teil zwischen den : und ; Zeichen optional ist. So ist das folgende Beispiel eine gültige Gruppenliste:
To: Undisclosed-Recipients:;
Und genau dieser Gruppenliste begegnen wir ab und zu. Sie wird von vielen E-Mail Programmen automatisch eingefügt, wenn wir ein E-Mail erstellen, das nur im
Bcc Feld Adressen enthält. Wir erinnern uns, ein gültiges E-Mail muss mindestens ein
To, Cc oder
Bcc Feld enthalten. Das
Bcc Feld wird aber, wie wir ebenfalls gesehen haben, in der Regel vom versendenden Programm sogleich wieder gelöscht. Ein E-Mail ohne
To und
Cc wäre fortan also ohne
To, Cc und
Bcc Feld unterwegs und würde somit die Standards verletzen. Zu diesem Zweck fügen viele Programme ein
To Feld mit einer leeren Gruppenliste ein. (Einen echten Nutzen, ausser eben, dass das E-Mail wieder standardkonform wird, bringt dies natürlich nicht.)
MIME und HeaderDie im ersten Teil über den Mail Body behandelten MIME-Erweiterungen haben in zweierlei Hinsicht Auswirkungen auf den Header eines E-Mails. Zum einen ermöglichen die Erweiterungen in beschränktem Ausmass auch im Header ein Ausbrechen aus der 7-Bit Limitierung, zum anderen fügen sie weitere Felder in den Header ein. Möglich ist im Header die Q Kodierung (eine Variante der quoted-printable Kodierung) und die B Kodierung (die base64 nutzt). Erlaubt ist sie primär an folgenden Orten: in den
Subject und
Comments Standard-Feldern sowie in allen erweiternden Feldern (X-); weiter möglich ist sie im beigestellten Namen (Phrase) einer Routing-Adresse, im Gruppennamen einer Gruppenliste, im
Keywords und im
In-Reply-To Feld. Entsprechende Beispiele mit der jeweiligen dekodierten Auflösung:
Subject: =?iso-8859-1?q?J=FCrgens?= Einladung
Subject: Jürgens Einladung
From: =?iso-8859-1?q?J=FCrgen Muster?= <juergen@muster.de>
From: Jürgen Muster <juergen@muster.de>
To: =?iso-8859-1?q?J=FCrgens?= Witzliste:;
To: Jürgens Witzliste:;
Keywords: =?iso-8859-1?q?B=F6hser?= Junge
Keywords: Böhser Junge
X-Stuff: =?us-ascii?b?SW50ZXJuZXQgRW1haWw=?=
X-Stuff: Internet Email
Nutzt ein E-Mail Programm beim Erstellen von E-Mails die MIME-Erweiterungen, dann fügt es folgende Header Felder ein, um dem empfangenden Programm wichtige Informationen für die Dekodierung mitzuteilen.
MIME-VersionDies ist das einzige obligatorische MIME Header Feld. Es muss also zwingend im Header eines E-Mails vorhanden sein muss, wenn im E-Mail MIME Kapselung zum Einsatz gelangt. Es gibt die Version der MIME-Erweiterungen an. Gegenwärtig gibt es nur eine Version:
MIME-Version: 1.0
Content-TypeIn diesem Feld wird der MIME-Medientyp der Daten deklariert, die in der MIME-Kapsel enthalten sind. Je nach Medientyp kann das Feld neben der Bezeichnung des Medientyps auch noch zusätzliche Parameter enthalten. Beispiele:
Content-Type: text/plain
Content-Type: text/plain; charset=“us-ascii“
Content-Type: message/external-body;
access-type=mail-server; server=“lists@beispiel.de“
Content-Transfer-EncodingIn diesem Feld wird die verwendete Kodierungsart (zur Erinnerung: 7bit, 8bit, Binary, Base64 und Quoted-Printable) angegeben.
Content-ID
Dient dazu, der MIME Kapsel eine eindeutige ID zuzuweisen, ähnlich wie das Feld Message-ID der eindeutigen Identifizierung von ganzen Mail Mitteilungen dient.
Content-DescriptionDas Feld erlaubt, der MIME Kapsel Erläuterungen beizufügen, falls sich der Inhalt dem Empfänger nicht von selbst erschliesst.
Content-DispositionMit diesem Feld lässt sich bestimmen, ob die in der MIME-Kapsel enthaltenen Daten bevorzugt direkt in der Textabfolge, also "inline", dargestellt werden sollen (kann z.B. bei Grafiken sinnvoll sein) oder als "angehängtes" Icon (attachment). Beispiele:
Content-Disposition: inline
Content-Disposition: attachment; filename=wuw.pdf
Content-MD5In diesem Feld kann ein mit dem MD5 Algorithmus (Message Digest Algorithm 5) generierter Hash (Prüfsumme) der in der MIME-Kapsel enthaltenen Daten mitgeschickt werden. Anhand dieser Prüfsumme kann das empfangende Programm die Integrität der Daten überprüfen und allfällige auf dem Transport entstandene unbeabsichtigte Schäden und Datenveränderungen feststellen. (Aber Vorsicht, es dient nicht zum Entdecken oder Verhindern von Veränderungen, die mit Absicht vorgenommen werden.)
Content-LanguageIn diesem Feld kann die (menschliche) Sprache angegeben werden, in welcher die Informationen der in der MIME-Kapsel enthaltenen Daten gehalten sind. Dies können gleichzeitig mehrere Sprachen sein. Beispiele:
Content-Language: de
Content-Language: en, fr
Content-Language: i-navaho, en-US
Content-Language: de-CH