Möchten Sie eine Seite auf Gaijin.at verlinken?
Auf der Seite für Webmaster finden Sie Banner, Buttons und Text-Links, die Sie in Ihre Seite einfügen können.

Mail-Header

Inhalt

Der Nachrichtenversand mit SMTP
Der Nachrichtenempfang mit POP3
Die Received-Zeilen
Headerzeilen im Detail

Relevante Programme

Der Nachrichtenversand mit SMTP

Das Versenden und Empfangen von E-Mails wird normalerweise von E-Mail Clients wie etwa Microsoft Outlook Express oder Mozilla Firebird erledigt. Zum besseren Verständnis ist es jedoch von Vorteil, wenn das Prinzip des Nachrichtenversandes bekannt ist.

Zum Versenden von E-Mails bedienen sich Mailprogramme meist dem Mailserver des eigenen Providers, der dann die weitere Zustellung an den Empfänger übernimmt. Jedoch können Nachrichten auch direkt zugestellt werden. Dazu benötigt man eine DNS-Anfrage vom Typ "MX", welche die verfügbaren MX-Server (Mail eXchange Server) einer Domain liefert. Dafür können spezielle Programme oder auch Online-Dienste verwendet werden.

Im folgenden Beispiel möchte der fiktive Absender "test@tester.tld" eine Nachricht an "noname@example.tld" senden. Dazu wird zuerst der MX-Server der Domain "example.tld" benötigt. Eine DNS-Anfrage ergibt, dass der MX-Server "mail.example.tld" Nachrichten für die Domain "example.tld" entgegen nimmt. Mit einem Terminal-Programm kann nun eine Verbindung zum Host "mail.example.tld", Port 25 (SMTP) hergestellt werden.

Nach dem Aufbau der Verbindung meldet sich der Mailserver mit der Zeile:

220 server11011.net ESMTP

Die Zahl 220 am Beginn der Zeile bedeutet, dass es sich bei dem nachfolgenden Text nur um eine gewöhnliche Meldung handelt und dass kein Fehler aufgetreten ist. Jetzt wartet der SMTP-Server auf eine sog. Vorstellung, welche mit dem Kommando "HELO" bzw. "EHLO" eingeleitet wird.

helo faked.tester.tld

Mit diesem Kommando stellt sich der Sender mit dem Namen "faked.tester.tld" vor. Der Server bestätigt dies mit dem Statuscode 250, welcher für einen gültigen Befehl steht.

250 server11011.net

Nun folgt die Adressierung der Nachricht, beginnend mit der E-Mail Adresse des Senders, welche mit dem Befehl "mail from:" gekennzeichnet wird.

mail from: test@tester.tld

Nachdem der SMTP-Server die Adresse des Absenders verifiziert hat und diese als gültig befunden hat, meldet er den Statuscode 250, meist gefolgt vom Text "ok", zurück.

250 ok

Anschließend wird die E-Mail-Adresse des Empfängers angegeben. Diese wird mit dem Befehl "rcpt to:" (engl. für "recipient") eingeleitet.

rcpt to: noname@example.tld

Auch dies wird vom SMPT-Server bestätigt:

250 ok

Die Adressierung ist nun abgeschlossen und die eigentliche Nachricht kann dem Server übermittelt werden. Dazu wird das Kommando "data" verwendet.

data

Der SMPT-Server bestätigt den data-Befehl mit dem Statuscode 354, der zur Eingabe des Textes auffordert. Im Anschluss an den Statuscode, können Texte wie z.B. "go ahead" oder "Enter mail, end with "." on a line by itself".

354 go ahead

Keine der oben genannten Angaben müssen auch in der Nachricht enthalten sein, die beim Empfänger eintrifft. Darum werden nun die typischen Kopfzeilen wie "From", "To" und "Subject" einer Nachricht eingegeben. Hier wird zu Beginn auch eine gefälschte Received-Zeile angegeben, die über den wahren Absender täuschen soll. Darauf wird jedoch weiter unten genauer eingegangen.

Nach den Headerzeilen wird der eigentliche Nachrichtentext, durch eine Leerzeile getrennt, eingegeben.

Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
  by server11011.net with SMTP; 1 Sep 2006 13:53:24 +0200
Message-Id: <1234567890@tester.tld>
X-Sender: test@tester.tld
From: "The Faker" <test@tester.tld>
To: "NoName" <noname@example.tld>
Subject: Ein Test

Text, Text, Text
Zeile 2
Zeile 3
.

Der Nachrichtentext wird immer mit einem einzelnen Punkt in einer eigenen Zeile abgeschlossen. Der Server bestätigt den Empfang der Nachricht wieder mit dem Code 250:

250 ok 1157111913 qp 7263

Durch das Kommando "quit" wird die Verbindung zum SMTP-Server geschlossen.

quit

Bevor der Server die Verbindung beendet gibt er den Statuscode 221 (Bestätigung des quit-Befehls) zurück:

221 server11011.net

Hiermit ist die Verbindung geschlossen und die Nachricht wird im Postfach des Empfängers hinterlegt.

Der komplette oben beschriebene Dialog zwischen Server und Client sieht nun so aus:

220 server11011.net ESMTP
helo faked.tester.tld
250 server11011.net
mail from: test@tester.tld
250 ok
rcpt to: noname@example.tld
250 ok
data
354 go ahead
Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
  by server11011.net with SMTP; 1 Sep 2006 13:53:24 +0200
Message-Id: <1234567890@tester.tld>
X-Sender: test@tester.tld
From: "The Faker" <test@tester.tld>
To: "NoName" <noname@example.tld>
Subject: Ein Test

Text, Text, Text
Zeile 2
Zeile 3
.
250 ok 1157111913 qp 7263
quit
221 server11011.net

Der Nachrichtenempfang mit POP3

Das Empfangen von E-Mails funktioniert ähnlich wie der Versand. Jedoch kommt hier ein eigenes Protokoll, das Post Office Protokoll (POP), zum Einsatz. Der POP3-Server ist meist über den Port 110 erreichbar.

Im Folgenden wird die oben gesendete Nachricht abgerufen:

+OK Hello there.
user xxxxxxxx
+OK Password required.
pass xxxxxxxx
+OK logged in.
list
+OK
1 598
.
retr 1
+OK 598 octets follow.
Return-Path: <test@tester.tld>
Received: (qmail 7881 invoked from network); 1 Sep 2006 13:58:33 +0200
Received: from m198p010.dipool.highway.telekom.at
  (HELO tester.tld) (62.46.14.170)
  by server11011.net with SMTP; 1 Sep 2006 13:55:38 +0200
Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
  by server11011.net with SMTP; 1 Sep 2006 13:53:24 +0200
Message-Id: <1234567890@tester.tld>
X-Sender: test@tester.tld
From: "The Faker" <test@tester.tld>
To: "NoName" <noname@example.tld>
Subject: Ein Test

Text, Text, Text
Zeile 2
Zeile 3
.
quit
+OK Bye-bye.

Der rot markierte Text wurde vom Mailserver eingefügt. Abhängig vom Mailserver und der Daten, die beim Versand der Nachricht angegeben wurden, können sich die Headerzeilen unterscheiden. Die erste bzw. in diesem Fall die erste und zweite Received-Zeile von oben werden jedoch immer vom eigenen Mailserver eingefügt, wodurch diese auf jeden Fall authentisch sind.

Die Received-Zeilen

In unserem Beispiel ergeben sich jetzt folgende Received-Zeilen:

Received: (qmail 7881 invoked from network); 1 Sep 2006 13:58:33 +0200
Received: from m198p010.dipool.highway.telekom.at
  (HELO tester.tld) (62.46.14.170)
  by server11011.net with SMTP; 1 Sep 2006 13:55:38 +0200
Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
  by server11011.net with SMTP; 1 Sep 2006 13:53:24 +0200

Received-Zeilen sind Zustellvermerke der Mailserver, über die die Nachricht gesendet wurde. Ein Mailserver fügt die Received-Zeile immer oben an die Nachricht an. Daraus ergibt sich, dass der Received-Eintrag des ersten Mailservers unten und der Eintrag des letzten Mailservers, über den die Nachricht transportiert wurde, oben steht.

Received: (qmail 7881 invoked from network); 1 Sep 2006 13:58:33 +0200

Diese Received-Zeile kommt recht häufig in Nachrichten vor, es ist ein Vermerk des Mailservers "QMail". Diese Zeile hat nur bedingt Bedeutung für eine Rückverfolgung des Absenders.

Received: from m198p010.dipool.highway.telekom.at
  (HELO tester.tld) (62.46.14.170)
  by server11011.net with SMTP; 1 Sep 2006 13:55:38 +0200

Diese Zeile wurde, so wie die erste auch, vom Mailserver des Empfängers eingefügt und ist somit eine gute Ausgangsbasis für eine Rückverfolgung. Der Aufbau einer Received-Zeile ist jedoch nicht an feste Richtlinien gebunden, weshalb man alle Angaben überprüfen sollte. Sehen wir uns die einzelnen Teile genauer an:

from m198p010.dipool.highway.telekom.at

Unter "from" kann einerseits der richtige Hostname des Absenders stehen, so wie in diesem Fall. Aber auch der Computername oder Hostname, wie dieser unter HELO angegeben wurde, ist möglich.

(HELO tester.tld)

Nach "HELO" wird jener Text angegeben, der bei der Begrüßung beim Nachrichtenversand festgelegt wurde. Diese Angabe muss jedoch nicht immer enthalten sein.

(62.46.14.170)

Am Ende des Absenders (jedoch vor "by ...") steht in runden Klammern der tatsächliche Absender. Diese IP-Adresse hat die Verbindung zum Mailserver hergestellt und die E-Mail übermittelt. Dies bedeutet, dass die IP-Adresse 62.46.14.170 zum Zeitpunkt des Versandes den Hostnamen "m198p010.dipool.highway.telekom.at" hatte. Da dieser mit dem Hostnamen nach "from ..." identisch ist, wurde er nicht nochmals angeführt. Auch folgende Angabe ist hier möglich:

(m198p010.dipool.highway.telekom.at [62.46.14.170])

Es gibt keine einheitliche Form der Darstellung, weshalb alle Hostnamen mit der IP-Adresse überprüft werden sollten.

by server11011.net with SMTP

Daraus ist ersichtlich, dass der Server "server11011.net" die Nachricht entgegengenommen hat. Das verwendete Übertragungsprotokoll war SMTP.

1 Sep 2006 13:55:38 +0200

Durch einen Strichpunkt getrennt folgt am Ende immer das Datum und die Zeit des Einganges beim Mailserver. Das Format der Zeitangabe kann, trotzt Standardisierung unterschiedlich sein. In unserem Fall wurde die E-Mail am 1. September 2006, um 13:55:38 vom Mailserver entgegengenommen. Die Zeitangaben in den Received-Zeilen sind immer in der Lokalzeit des Mailservers angegeben. Um die UTC-Zeit bestimmen zu können, wird die Abweichung zur UTC angefügt. In diesem Fall ist es die Angabe "+0200", was bedeutet, dass die angeführte Zeit eine Abweichung von plus 2 Stunden zur UTC hat. Somit wurde die Nachricht am 01.09.2006, um 11:55:38 UTC entgegengenommen.

Soweit die Einträge des Mailservers. Nun folgen die vom Absender angegebenen und teilweise auch gefälschten Headerzeilen:

Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
  by server11011.net with SMTP; 1 Sep 2006 13:53:24 +0200

Wie bereits angedeutet, kann die Nachricht auch über mehrere Mailserver laufen, wobei die Received-Zeile eines Mailservers immer oben angefügt wird. In jeder Received-Zeile ist sowohl der Absender ("from...") als auch der Empfänger ("by...") enthalten. Daraus ergibt sich, dass der Versender der ersten Zeile und der Empfänger der zweiten Zeile identisch oder zumindest ähnlich sein müssen. In unserem Beispiel ist dies jedoch nicht der Fall:

Received: from m198p010.dipool.highway.telekom.at (62.46.14.170)
          by server11011.net

Received: from faked.tester.tld (faked.tester.tld [123.45.67.89])
          by server11011.net

Ein plausibler Verlauf der Nachricht könnte etwa so aussehen (vereinfachte Darstellung):

Received: from mail.target.tld (12.34.56.78)
          by mx.target.tld

Received: from mx3.provider1.tld (123.45.67.3)
          by target.tld

Received: from mx1.provider1.tld (123.45.67.1)
          by mx3.provider1.tld

Received: from user1.provider1.tld (123.45.67.89)
          by mx1.provider1.tld

Die nachfolgende Liste enthält nur die wesentlichsten Headerzeilen. Je nach verwendetem Mailprogramm, Mailserver oder auch bei Mailinglisten können noch weitere Zeilen vorkommen.

BCC

BCC: Webmaster <webmaster@example.tld>

Zusätzliche Empfänger, die die Nachricht als "unsichtbare Kopie" erhalten sollen. Im BCC-Feld werden jene zusätzlichen Empfänger eingetragen, die die anderen Empfänger nicht sehen sollen. Die Empfänger in der To- und CC-Zeile sind für alle Empfänger sichtbar.

CC

CC: NoName <noname@example.tld>

Zusätzliche Empfänger, die die Nachricht in "Kopie" erhalten sollen. Diese Angabe ist nur für administrative Zwecke vorgesehen. Die E-Mail wird jedoch so zugestellt, als ob die Adresse im To-Header enthalten wäre, da die Adressen aus den Feldern "To" und "CC" im SMTP-Dialog bei "RCPT TO" übergeben werden.

Content-Transfer-Encoding

Content-Transfer-Encoding: quoted-printable

Diese Headerzeile gibt an, wie der Nachrichtentext kodiert ist. Neben der Angabe "quoted-printable" sind auch noch "base64", "7bit" und "8bit" gebräuchlich.

Content-Type

Content-Type: text/plain; charset=ISO-8859-1

Diese Zeile gibt den Typ der Nachricht an, in diesem Falle ist es eine einfache Textnachricht. Hinter "charset" folgt der verwendete Zeichensatz.

Date

Date: Wed, 6 Sept 2006 10:02:47 +0200

Die Erstellungszeit bzw. die Zeit des lokalen Versendens (Ablegen im Postausgang). Diese Zeitangabe wird vom Mailprogramm eingefügt. Die Uhrzeit ist immer in der Lokalzeit des versendenden Rechners angegeben. Am Ende folgt entweder die Abweichung zur UTC (hier +2 Stunden), oder in manchen Fällen auch die Zeitzone, wie z.B.: "(MESZ)".

From

From: NoName <noname@example.tld>

Der Absender, der vom Versender eingetragen wurde.

Message-ID

Message-ID: <DCEA2913.6003005@domain.tld>

Bei der Message-ID sollte es sich um eine eindeutige Kennung der Nachricht handeln. Diese Kennung wird vom Mailprogramm, meist aus dem Datum, generiert. Sollte die Message-ID fehlen, wird sie meist von einem Mailserver erstellt und angefügt.

Organisation

Organisation: example.tld

In dieser Headerzeile kann der Firmennamen des Absenders stehen.

References

References: <DCEA2913.6003005@domain.tld>

Wenn sich eine Nachricht auf eine andere E-Mail bezieht, etwa diese beantwortet, wird die Message-ID der Originalnachricht in die Zeile "References" eingetragen. Diese Angabe wird meist von Mailprogrammen verwendet, um die Nachrichten zu sortieren oder um sie hierarchisch darzustellen.

Reply-To

Reply-To: webmaster@example.tld

Unter "Reply-To" kann jene Adresse eingegeben werden, an die die Antwort gesendet werden soll, fall die Antwortadresse nicht gleich der Sendeadresse (From) ist.

Return-Path

Return-Path: <noname@example.tld>

Die Adresse, an die die E-Mail zurückgesendet wird, wenn eine Zustellung der Nachricht nicht möglich war. Zu der ursprünglichen E-Mail wird vom Mailserver, der die Nachricht nicht zustellen konnte, eine Fehlermeldung angefügt. Der Return-Path kann auch von einem Mailserver auf Grund der Angabe unter "MAIL FROM" nachgetragen werden.

Sender

Sender: <webmaster@example.tld>

Wenn der Autor und der technische Absender unterschiedlich sind, z.B. bei einer Nachricht von einer Mailingliste, steht der technische Absender in der Zeile "Sender".

Subject

Subject: Ein Betreff

Der Betreff einer Nachricht.

To

To: "Webmaster von example.tld" <webmaster@example.tld>, name@domain.tld,
    NoName <noname@example.tld>, mail@adresse.tld (Vorname Nachname)

Der oder die Empfänger. Bei mehreren Adressen müssen diese durch einen Beistrich getrennt sein. Die Reihenfolge der Adressen und Namen kann variieren.

X-Accept-Language

X-Accept-Language: de, en

In dieser Headerzeile sind die vom Versender akzeptierten Sprachen angegeben. Antworten auf diese Nachricht sollten in einer dieser Sprachen verfasst werden.

X-Mailer

X-Mailer: Microsoft Outlook Express 6.00.2800.1106

Der Name und meist auch die Versionsnummer des zum Versenden genutzten Mailprogramms.

X-Priority

X-Priority: 3 (Normal)

Diese Headerzeile gibt die Priorität der Nachricht an. Dieser Wert ist nur für den Empfänger und Absender interessant, hat jedoch keinen Einfluss auf die Geschwindigkeit des Versands. Die möglichen Prioritäten sind üblicherweise 1 (sehr hoch), 2 (hoch), 3 (normal), 4 (niedrig), 5 (sehr niedrig). Manchmal ist nach dem Prioritätswert auch dessen Beschreibung angegeben, z.B. "3 (Normal)".

X-MSMail-Priority

X-MSMail-Priority: Normal

Dies ist ein von Microsoft Mail-Programmen eingefügter Header, der die Priorität der Nachricht angibt. Dieser Wert ist nur für den Empfänger und Absender interessant, hat jedoch keinen Einfluss auf die Geschwindigkeit des Versands.

X-Sender

X-Sender: test@tester.tld

In diese Headerzeile fügen einige Mailserver jene Adresse ein, die im SMTP-Dialog unter "MAIL FROM" angegeben wurde.

Relevante Programme

Die folgenden Programme von Gaijin.at haben einen Bezug zu diesem Thema.

eToolz (Freeware, portabel)
Im Programm eToolz sind die wichtigsten Internet- und Netzwerkprogramme wie z.B. NS Lookup, Ping, TraceRoute und Whois vereint. Es werden auch internationale Domainnamen (IDN) unterstützt!

Beta-Bereich | Webmaster | Sponsor / Werbung | Übersetzer | Unterstützung | Kontakt & Nutzungsbedingungen