Envelope und Header
Diese Seite beschreibt die Feinheiten der Adressen auf dem "Briefumschlag" einer Mail und dem Anschreiben im Briefumschlag.
Beachte dazu auch die Seite SMTP P1/P2-Felder und SMTP-Header
Was ist der richtige Absender?
Vielleicht landet auch in ihrem Postfach ab und an eine Mail, die sie eigentlich gar nicht hätten erhalten dürfen. Sie stehen nämlich gar nicht in der Liste der Empfänger drin. Meist handelt es sich dabei um Werbemails (Spam und UCE), die Sie damit verwirren wollen, wie man hier erkennen kann.
Nicht immer ist auch wirklich etwas falsch gelaufen, sondern der Absender hat einen anderen Namen nur mit ihrer Mailadresse verbunden, wie dies in diesem Fall ist: (Doppelklick auf den Empfänger)
Um das Prinzip und Problem zu verstehen, müssen wir etwas tiefer in die Übermittlung eines Briefes einsteigen:
Die Bestandteile eines Mail
Für die Übertragung einer Mail im Internet sind drei wichtige Bausteine erforderlich:
- Envelope
Dies sind Steuerungsdaten für die Mailserver, um die Nachricht korrekt zu übermitteln. Als Anwender sehen Sie diese Daten in der Regel nie, da der Mailserver beim Ablegen der Mail in ihrem Postfach diese Daten löscht. - Header
Das sind Informationen, die auch Outlook anzeigt, z.B. Datum, Betreff, Wichtigkeit aber auch Absender und Empfänger - Body
Der Inhalt der Mail. Früher was das wirklich nur ein Text. Anlagen, Bilder und andere Dinge zählen zum Body, und werden im Body selbst codiert abgelegt (MIME, UUENCODE), so dass ihre Anwendung dies versteht und für den Anwender entsprechende Anlagen anzeigt.
Wenn Sie aber genau aufgepasst haben, dann ist eine gewisse Information doppelt: Sowohl im Header als auch im Envelope sind Daten über den Absender und Empfänger enthalten. Wenn Sie nun glauben, dass dies "doppelt" ist, dann irren Sie, denn es gibt hierfür einen Gründe: Die Informationen im Envelope dienen den Mailservern (SMTP-Server) dazu, die Nachrichten zu routen. Die Informationen im Header dienen der Anzeige beim Anwender.
Anzeigenamen, Verteiler und BCC
Warum diese Trennung sinnvoll ist, erkennen wir an der Art, wie Mailadressen genutzt werden:
- Anzeigename
Eine Mail an Username@firma.tld kommt anhand der Mailadresse an, aber Anwender nutzen lieber "schöne" Namen wie "Nachname, Vorname". Mit solche einer Adresse kann ein Mailserver natürlich nichts anfangen. - Verteiler
So einfach ein Anwender eine Mail an eine Gruppe senden kann, aber spätestens, wenn die Empfänger einer Gruppe in verschiedenen Domänen sind, muss die Mail irgendwann aufgeteilt werden. Es ist natürlich sinnvoll, die Mail erst dort aufzuteilen, wo die Wege sich trennen. Es wäre sehr unpraktisch, wenn Sie eine Mail an 10 Empfänger senden und ihr Mailserver die gleiche Mail zehnmal über die gleiche Leitung zum nächsten Server überträgt. - BCC
Blindkopien erlauben den Versand einer Kopie an einen Empfänger, der nicht in der Liste der Empfänger auftaucht. Würde diese Adresse nun in der "TO"-Zeile stehen, könnte jeder Anwender dies erkennen. Aber die Mailserver müssen diese natürlich schon wissen, damit eine Mail auch zugestellt wird
An diesem vereinfachten Beispiel möchte ich daher die unterschiede zwischen RCPT TO und TO aufzeichnen:
- Eine Mail wird von einem Anwender auf dem Server S1 an die vier Postfächer P1, P2, P3 und P4 gesendet.
- Empfänger P1, P2, P3 sind normale Empfänger auf drei verschiedenen Servern.
- Empfänger P4 ist ein BCC Empfänger (Blindkopie)
Die Mail durchläuft folgende Stationen:
- Einstellen der Mail
Der Absender erstellt eine Mail mit den Empfängern P1, P2 und P3 und einer BCC an P4.
Der Mailserver holt sich diese Informationen aus der Mail und erstellt die RCPT-TO Information. Die BCC-Information verschwindet aus der Mail selbst, da sie für die weitere Verarbeitung nicht erforderlich ist. - S1 nach S2
Anhand der RCPT-TO-Zeile sendet S1 die Mail komplett als eine Mail über die Leitung zu S2 - S2 Verarbeitung
S2 erkennt, dass ein Empfänger lokal ist und stellt die Mail zu. Weiterhin erkennt der Server, dass er nun die Mail aufteilen muss, da P2 auf S3 und P3, P4 auf S4 liegen. - S2 nach S3
S2 sendet eine Instanz der Mail mit RCPT TO:P2 an den S2. In der To-Zeile stehen weiterhin alle drei sichtbaren Empfänger - S3 Verarbeitung
Die Mail wird lokal zugestellt - S2 nach S4
Hier stehen in der RCPT-TO-Zeile die beiden Empfänger P3 und P4. Auch hier wird nur eine Mail übertragen, obwohl zwei Empfänger vorhanden sind. - S4 Verarbeitung
Die Mails werden lokal zugestellt
An diesem Beispiel haben wir die Funktion von BCC und den Versand an mehrere Personen demonstriert. für die Übermittlung der Nachrichten zwischen den Servern ist nur die Information im Envelope einer Mail relevant. Dieser Envelope wird vom ersten Mailserver erstellt und bei der Zustellung in ein Postfach vom jeweiligen Mailserver wieder entfernt. Diese Daten sind daher nicht Bestandteil der Mail. Es gibt auch keinen Standard für die Speicherung dieser Informationen. Die meisten Mailserver speichern die Daten als Bestandteil der Mail in der Queue als so genannte Metadaten mit ab.
Outlook selbst kann auf diese Daten aber niemals zugreifen, da in einem Postfach diese Daten nicht mehr vorhanden sind. Das ist übrigens auch eines der Probleme vieler POP3 Sammelprogramme, die entsprechend Kniffe eingebaut haben, um aus den Daten des Headers wieder ein RCPT-TO zur Weiterleitung an einen nach geschalteten Mailserver erstellen. (Siehe auch POP3 abholen) Einige Mailserver unterstützen diese Funktion, indem Sie die RCPT-TO in den Header übernehmen. Dann muss ihr Programm diese Informationen dort auch suchen, extrahieren und natürlich entfernen. Ansonsten ist eine BCC nicht mehr länger verborgen.
RCPT-TO, TO und Spammer
Jetzt wissen Sie aber auch, warum RCPT-TO und TO zweierlei Dinge sind und wie Spammer sie vielleicht in die Irre führen können.
Ein Spammer sendet nämlich einfach eine Mail an ihr Postfach, wobei er ihre Mailadresse nur im Envelope (RCPT TO) nutzt aber im Header etwas ganz anderes hinein schreibt. Auf den ersten Blick könnten sie daher denken, dass hier eine Mail falsch zugestellt worden ist oder sogar ein Fehler in Exchange vorliegt.
Leider können Sie das nicht einmal klar nachweise, da Sie in Outlook nur den Header sehen und dort steht sowieso nur das drin, was Outlook auch schon in der Mail anzeigt, nämlich die TO und FROM-Zeilen, das Datum und der Betreff. All diese Dinge können natürlich gefälscht sein. (Siehe auch Gefälschter Absender).
Sie können das ganz einfach selbst testen, indem Sie einmal mit einem einfachen TELNET auf ihren Mailserver port 25 folgende Zeichen eingeben:
Ihre Eingabe | Bedeutung |
---|---|
HELO Test |
Sie melden Sich beim Mailserver mit HELO. Der Server wird ihnen antworten mit 250 OK oder etwas ähnlichem |
MAIL FROM:User@firma.tld |
Nun geben Sie vor, dass sie der User User@firma.tld wären. Das ist natürlich einfach zu fälschen. Nehmen Sie z.B. ihre Mailadresse. Sie wissen ja, dass diese Informationen vom Postfachserver sowieso nach der Zustellung der Mail gelöscht werden. Der Server muss mit einer 200er Meldung bestätigen. |
RCPT TO:mailadresse |
Hier müssen sie nun die gültige Mailadresse angeben, in die die folgende Mail zugestellt werden soll. Diese Information wird vom Mailserver genutzt. Der Server wird auch das mit einer 200er Meldung bestätigen |
DATA |
Nun sagen wir dem Mailserver, dass der Envelope abgeschlossen ist und wir die Nutzdaten senden möchten. Der Server wird auch das mit einer 200er Meldung bestätigen |
To: TestUser1 |
Nun senden wir die Testmail und geben vor, dass die
Fromadresse und To-Adresse einfach TestUser1 und TestUser2 sind. Der
Betreff ist wahlfrei. Zwischen dem Header und dem Body muss eine leere
Zeile sein, d.h. Sie drücken dazu einfach zweimal die Eingabetaste. nach dem Body muss in einer neuen Zeile einfach nur ein Punkt "." stehen. Der Server sollte die Mail angenommen haben. |
QUIT |
Wir beenden die Verbindung höflich |
Das ganze sieht in etwa so aus:
Was sie dann in Outlook sehen ist, dass im Postfach eine Mail liegt, mit TestUser1 als Empfänger und TestUser2 als angeblichen Absender.
Sie können bei der Mail nicht erkennen, was im Envelope gestanden hat und Sie können nicht antworten, da Outlook aus den To und FROM-Zeilen keine SMTP-Mailadresse generieren kann.
Nun wissen Sie, wie es kommt, dass eine Mail in ihrem Postfach landet, die anscheinend gar nicht zu ihnen gesendet wurde. Es ist eher unwahrscheinlich, dass es ein Exchange Fehler ist, sondern eher, dass ein Spammer Sie mit diesem Trick etwas verwirren will oder dass Sie als Blindkopie-Empfänger der Nachricht eingesetzt wurden.