12. April 2011

E-Mail Header auslesen

Mal wieder ein paar technische Grundlagen, die ich hier zum besten geben möchte :)

E-Mails... wahrscheinlich jeder meiner Leser kennt sie,
versendet haufenweise davon und erhält wahrscheinlich nochmal soviel als Spam ^^

Doch wie sieht eine E-Mail eigentlich aus? Wie ist sie aufgebaut?

Da ich mir das E-Mail Konzept natürlich nicht selber ausgedacht und aufgebaut habe,
brauche ich das Rad nicht zwei mal erfinden, sondern poste einfach das bereits verfügbare Wissen aus Wikipedia:


Eine Internet-E-Mail besteht aus dem Header-Abschnitt (von englisch für: „Kopfzeile“) und dem Body (dem eigentlichen Inhalt der Nachricht). Der Header enthält als Pflichtangabe lediglich eine Absenderangabe und das Datum der Erstellung der E-Mail. Darüber hinaus kann der Header einer E-Mail eine Reihe optionaler Angaben enthalten. In der Regel finden sich Informationen über den Weg, den die E-Mail genommen hat, über den Inhalt der Nachricht und deren Format sowie Angaben zu den Empfängern.
Der Header enthält keine für die technische Zustellung einer E-Mail notwendigen Informationen. Absender und Empfänger werden durch den Envelope Sender und Envelope To angegeben.
Der Aufbau einer E-Mail ist im RFC 5322 festgelegt – hier wird im Gegensatz zu vorherigen Standards nicht mehr von header gesprochen, sondern header field für den Inhalt einer einzelnen Kopfzeile undheader section für den gesamten Kopfbereich der E-Mail (alle Kopfzeilen zusammen) verwendet, um Verwirrungen zu vermeiden.

Inhaltsverzeichnis

 [Verbergen]

Darstellung und Anzeige [Bearbeiten]

Viele Empfänger interessieren sich nicht oder nur selten für alle Header-Zeilen. Deshalb zeigen die meisten Mail-Clients standardmäßig nur einen kleinen Teil der tatsächlich in der E-Mail enthaltenen Header-Zeilen an. Das sind insbesondere die Zeilen mit den Tags:
  • „From:“ – der Absender
  • „To:“ – der Empfänger
  • „Cc:“ – weitere Empfänger
  • „Subject:“ – der Betreff
  • „Date:“ – der Zeitpunkt der Erstellung
Weitere oder alle Header-Zeilen werden in der Regel nur mit der Wahl spezieller Optionen angezeigt. Diese sind je nach Mail-Client sehr unterschiedlich. Bei einigen Mail-Clients (z. B. mutt) lässt sich konfigurieren, welche Header-Zeilen standardmäßig angezeigt werden. Einige E-Mail-Clients ersetzen die Header-Tags bei der Anzeige durch eine landessprachliche Entsprechung.

Beispielmail [Bearbeiten]

In der folgenden Beispiel-E-Mail werden die Header-Informationen, die von den meisten E-Mail-Programmen angezeigt werden, blau dargestellt. Die zumeist ausgeblendeten Header-Informationen sind orange, der Body ist grau. Die erste Zeile enthält den sogenannten Envelope Sender – sie ist nicht Teil des Headers, geht ihm aber im mbox-Format voraus und wird auch sonst häufig zusammen mit den Header-Zeilen dargestellt; sie wird im Simple Mail Transfer Protocol (SMTP) nicht als Teil der Mailheader, sondern mit einem speziellen Befehl übertragen.
From alex@mailgate.exam.ple Mon Dec 4 17:02:25 2006Envelope Sender
Received: (qmail 12345 invoked by alias); Mon, 04 Dec 2006 13:51:40 +0000
Received: by server1 (Postfix, from userid 1000)
  id D344F45681; Mon, 4 Dec 2006 14:51:39 +0100 (CET)
Mehrere „Received“-Zeilen zeigen den Weg, den die E-Mail vom Sender zum Empfänger genommen hat. Jeder Server, der die Mail weiterleitet, fügt seine Kennung und das Datum am Anfang der E-Mail hinzu.
Date: Mon, 4 Dec 2006 15:51:37 +0100Absendedatum
Subject: Der Sinn des LebensBetreff der E-Mail
Message-ID: <434571BC.8070702@example.net>Eindeutige Zeichenfolge, die diese E-Mail identifiziert
From: Alex Absender Absender
To: Erwin Empfaenger Empfänger
Cc: ErwinsSekretariat Empfänger einer Kopie der E-Mail
Content-Type: text/plain; charset=ISO-8859-1Art und Zeichensatz des Body-Text
In-Reply-To: <134535224@example.com>Diese E-Mail ist eine Antwort auf die E-Mail mit dieser Message-ID
Die erste Leerzeile trennt die Kopfzeilen vom Nachrichtentext
Hallo Erwin,

wir müssen einen Termin vereinbaren.

Bis dann,
Alex
Inhalt („message body“)

Mögliche Einträge im Header [Bearbeiten]

Einträge im E-Mail-Header werden durch einen Zeilenumbruch (CRLF) voneinander getrennt. Der E-Mail-Header wird durch eine Leerzeile (CRLF CRLF) vom E-Mail-Body getrennt.

Date: Absendedatum und Uhrzeit [Bearbeiten]

Pflichtangabe nach RFC 5322. Der Zeitpunkt des Absendens der E-Mail.

From: Absender [Bearbeiten]

Pflichtangabe nach RFC 5322. Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, die den oder die Absender einer E-Mail bezeichnen. Die meisten E-Mail-Clients unterstützen nur einen einzelnen Absender.

Sender: Technischer Absender [Bearbeiten]

Ist der technische Absender ein anderer, als im From-Header bezeichnet, kann dieser im Sender-Header vermerkt werden. Das Sender-Feld darf nur eine einzelne E-Mail-Adresse enthalten. Beispiel: Die E-Mail-Adresse eines Sekretärs, der eine E-Mail nach Diktat des Chefs verschickt, gehört ins Sender-Feld. Die E-Mail-Adresse des Chefs gehört ins From-Feld. Wenn der Verfasser einer E-Mail und der technische Absender identisch sind, sollte das Sender-Feld nicht verwendet werden, sonst sollten beide (From- und Sender-Feld) verwendet werden.

Reply-To: Antwortadresse [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Antwort auf die E-Mail geschickt werden soll (falls unterschiedlich zum From-Feld).

To: Der Empfänger [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die die E-Mail primär gesendet wird. Jedem Adressaten werden auch alle andren E-Mail-Adressen mitgeteilt.

CC: Carbon Copy, die Kopie [Bearbeiten]

Eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Kopie der E-Mail gesendet wird.
Der Begriff kommt vom früher benutzten Durchschlag. Dabei wurden beim Schreiben mit einem harten Stift oder der Schreibmaschine Kopien erstellt, indem mehrere Papierseiten mit jeweils einem Kohlepapierdazwischen übereinandergelegt wurden.
Beim Schreiben einer E-Mail wird dieses Feld verwendet, um Kopien an einen oder mehrere Empfänger zu senden. Mit einem Eintrag in diesem Feld wird gleichzeitig symbolisiert, dass diese E-Mail sich nicht direkt an diesen Benutzer wendet, sondern lediglich „zur Beachtung“ bzw. „zur Kenntnisnahme“ an ihn versendet wurde. Die Einträge im CC-Feld werden (im Gegensatz zum BCC-Feld) bei allen Empfängern angezeigt und sind somit bekannt.
Umgangssprachlich wird auch ab und an (vornehmlich in den USA) fälschlicherweise „Courtesy Copy“ als Bedeutung für CC benutzt, was soviel wie „Höflichkeitskopie“ bedeutet (courtesy „Höflichkeit“, copy„Kopie“).

BCC: Blind Carbon Copy, die Blindkopie [Bearbeiten]

Das BCC-Feld enthält eine oder mehrere durch Kommata getrennte E-Mail-Adressen, an die eine Kopie der E-Mail gesendet wird, ohne dass dies jedoch für die anderen angegebenen Empfänger sichtbar sein soll („Blindkopie“). Durch eine Blindkopie sollen die Empfänger von Rund-Mails vor der Adressen-Sammlung von bösartigen Diensten wie z. B. Spambots gesichert werden.
Da die Adressaten (also auch die BCC-Adressaten) dem Mailserver vor der Übertragung der E-Mail mitgeteilt werden, kann das Prinzip technisch einfach umgesetzt werden: BCC-Adressaten werden als Empfänger genannt, in der anschließend übermittelten E-Mail entfällt dann die BCC-Zeile oder wird verändert übertragen. Die Handhabung der BCC-Zeile ist aber nicht eindeutig vorgegeben. Je nach Implementierung im verwendeten E-Mail-Programm und der beteiligten Mailserver ergeben sich folgende Möglichkeiten:
  • Die BCC-Zeile wird vor der Übertragung vollständig aus dem Header der E-Mail entfernt. Die Nachricht wird jedoch trotzdem an alle Empfänger übermittelt. Die BCC-Empfänger sehen bei Eingang der E-Mail nicht, dass sie im BCC-Feld geführt wurden. Die Gefahr ist dann größer, dass sie versehentlich an alle Empfänger antworten und damit ihre E-Mail-Adresse und die Tatsache preisgeben, dass sie auch die E-Mail erhalten haben.
  • Die in der To- und CC-Zeile genannten Empfänger erhalten wie oben eine Kopie der E-Mail, aus welcher die BCC-Zeile entfernt wurde. Die in der BCC-Zeile aufgeführten Adressaten hingegen erhalten eine Kopie, in der die BCC-Zeile erhalten bleibt. Je nach E-Mail-Programm erhält entweder jeder BCC-Adressat eine Kopie, in der nur seine E-Mail-Adresse steht, oder alle Empfänger erhalten die gleiche BCC-Zeile. In letzterem Fall ist es Empfängern einer Blindkopie möglich, alle anderen BCC-Adressaten zu sehen.
  • Der Inhalt der BCC-Zeile wird bei der Übertragung entfernt. Personen, welche die E-Mail via BCC bekommen, können sich nicht gegenseitig identifizieren. Allen Empfängern wird aber signalisiert, dass die E-Mail zusätzlich als Blindkopie versendet wurde.
Während E-Mail-Programme und Server üblicherweise nach der ersten Variante vorgehen, sollte man sich im Zweifelsfall nicht darauf verlassen.

Subject: Der Betreff [Bearbeiten]

Das Subject (im Deutschen auch Betreff) stellt eine Beziehung des Senders und/oder des Empfängers zu einer Sache, erforderlichen Aktion oder zu einem Ereignis her. Es ist für den Empfänger eine wichtige Kurzinformation über den Inhalt der Mail und sollte daher nicht fehlen. In Anbetracht der steigenden Anzahl unerwünschter E-Mails (UBE/UCE/Spam) wächst die Bedeutung des Betreff-Felds, denn oft lassen sich unerwünschte Nachrichten bereits am Betreff erkennen.

Weitere Header-Zeilen [Bearbeiten]

Wesentlich sind weiterhin folgende Header-Zeilen:
  • Zeichensatz der E-Mail (z. B. „charset=utf-8“), damit der Empfänger auch Fremdsprachen oder Sonderzeichen im Text richtig angezeigt bekommt.
  • Content-Type, falls nicht nur reiner Text verwendet wird, bei HTML z. B. „text/html“
    • Bei gesetztem Content-Type ist auch der Mime-Type zu senden, z. B. „MIME-Version: 1.0“
Weitere Informationen werden automatisch in den Header eingefügt, sowohl vom Mailprogramm (Mail User Agent) des Absenders als auch von den an der Leitung der Mail beteiligten Mailservern (Mail Transfer Agents). So lässt sich in der Regel an den Received-Zeilen die Reihenfolge und Adresse aller am Versand beteiligten Mailserver ablesen. Weiterhin erscheinen gegebenenfalls Informationen über eine erfolgteViren-Prüfung oder Spam-Klassifizierung oder -Filterung in den Header-Zeilen der E-Mail.

Authentizität von Header-Informationen [Bearbeiten]

Wie alle Teile einer E-Mail-Nachricht werden auch Header-Zeilen nicht auf inhaltliche Korrektheit geprüft. Die dort angezeigten Informationen sind fälschbar. So setzen findige Spam-Versender in der Regel fingierte Header-Zeilen ein, um die wirkliche Herkunft der E-Mail zu verschleiern oder um Spam-Filter in die Irre zu führen, damit ihre Mails ungefiltert zugestellt werden. Dazu gehören Header-Zeilen, die auf ein legitimes Standard-Mailprogramm (und damit einen menschlichen Absender) hindeuten sollen oder auch Header-Zeilen, die eine bereits erfolgte Spamprüfung vorspiegeln, in der Hoffnung, die Mail werde dann vom Spam-Filter ungeprüft weitergeleitet.



Für mich war die Festlegung der Blind- und Carbon Copy wichtig,
der Rest aber auch überaus interessant ^^


Nun haben wir wieder was gelernt,
vielen Dank für zuhören (lesen), bis zum nächsten Mal

- the incredible Leitman

1 Kommentar:

azella hat gesagt…

Danke, wieder etwas gelernt!