Wie funktioniert E-Mail-Zustellung

Die Frage
Date: Fri, 19 Oct 2015 13:40:43 +0200
From: Hasen-Dienst <jemand@ruhr-uni-bochum.de>
To: Mein Freund <irgendwer@ruhr-uni-bochum.de>
Subject: I missed you

Dear Friend, 
...
Die Erklärung

Dies sieht auf den ersten Blick merkwürdig aus, ist aber ganz normal für ein Mailsystem. Für den Transport und die Zustellung von E-Mail wird eine Technik verwendet, die aus den E-Mail-Headern nicht unmittelbar hervorgeht.

Es gibt einige Anwendungen, bei denen der Zusammenhang so klar ist, dass sich kaum jemand wundert, dass die To:-Adresse nicht stimmt.

Gerade bei Spam (unerwünschte Werbemails bzw. Massensendungen) ist nahezu immer die From:-Adresse gefälscht und es stimmt nur selten die Adresse im To: mit der des Empfängers überein. Hier werden (inbesondere beim Phishing) Angaben verwendet, die dem Empfänger bekannt bzw. vertrauenswürdig erscheinen sollen.

E-Mail ist in vielfacher Hinsicht der Briefpost nachgebildet. Wie beim klassischen Brief besteht auch eine E-Mail aus einem Briefkopf (Header), dem der Inhalt der Nachricht (Body) folgt. Für den Versand wird der Brief in ein Kuvert gesteckt (Envelope), das bis zur endgültigen Zustellung nicht wieder geöffnet bzw. vom E-Mailsystem ausgewertet wird. Wie in der Briefpost ist es auch bei E-Mail kein Problem, auf das Kuvert andere Adressen zu schreiben als im darin enthaltenen Brief.

Für den Transport und die Zustellung von E-Mail ist ausschließlich die Envelope-Information relevant.

Die Nachricht

Für die automatische Verarbeitung ist der Aufbau des Headers genau geregelt (siehe RFC 5322 - Internet Message Format). Jedes Mail-Programm zeigt einige dieser Headerzeilen an:

Der E-Mail-Header dient zur Information des Empfängers und ist Ausdruck der Absichten des ursprünglichen Verfassers. Für den Transport und die Zustellung sind diese Informationen nicht relevant.

Der Versand

Zum Versand wird vom absendenden Mail-Programm zunächst der E-Mail-Server kontaktiert und ihm entsprechend dem Simple Mail Transfer Protocol - SMTP, RFC 5321 mitgeteilt, von wem und an wen die Nachricht geschickt werden soll. Diese Informationen sind der Umschlag(Envelope). Im Anschluß wird die Nachricht, also Header und Body, übertragen und an die in der Envelope angegebenen Adressen weitergeleitet.

Der Dialog zwischen E-Mail-Programm und E-Mail-Server ist einfach, erfolgt im Klartext und sei anhand eines Beispiels illustriert ( <: E-Mail-Server, >: absendendes E-Mail-Programm).

<-  220 mx2.mail.ruhr-uni-bochum.de ESMTP NO UCE C=DE
 -> HELO host.domain.invalid
<-  250 Ok
 -> MAIL FROM:<jemand@ruhr-uni-bochum.de>
<-  250 2.1.0 Ok
 -> RCPT TO:<irgendwer@ruhr-uni-bochum.de>
<-  250 2.1.5 Ok
 -> QUIT
<-  221 2.0.0 Bye
 -> DATA
<-  354 Enter mail, end with "." on a line by itself
 -> Date: Fri, 19 Oct 2015 13:40:43 +0200
 -> From: Hasen-Dienst <jemand@ruhr-uni-bochum.de>
 -> To: Mein Freund <irgendwer@ruhr-uni-bochum.de>
 -> Subject: I missed you
 -> 
 -> Dear Friend, 
 ->   ...
 -> .
<-  250 2.0.0 Ok: queued as 3qwXFm60wbz4w0K
 -> QUIT
<-  221 2.0.0 Bye

Da für die Zustellung der E-Mail ausschließlich die in RCPT TO: angegebene(n) Adresse(n) ausschlaggebend sind, kann

Das bedeutet auch, dass ein Versender von Massenmail in den Mailheadern (To: und From:) irgendwelche Phantasienamen benutzen kann und die Nachricht kommt an, solange bei RCPT TO: die richtigen Empfänger verwendet wurden.