Mail-Routing

aus dem Wiki des Entropia e.V., CCC Karlsruhe

Wie kommt eine E-Mail von mir zum Empfänger?

von Thomas Hochstein [1]

Die Frage lautete:

> Nehmen wir an, wir haben Mail-Anbieter aaa.com und Mail-Anbieter bbb.
> de. Jetzt möchte jemand vom ersten eine eMail zu einem Member vom 
> zweiten Provider senden.
>
> Logisch, Person eins sendet über smtp.aaa.com und Person 2 holt über 
> pop.bbb.de ab.
> Aber was passiert dazwischen mit der Mail? Wohin sendet smtp.aaa.com 
> die eMail und woher weiss er überhaupt den genauen Host? (er hat ja 
> eigentlich nur das "@bbb.de") ??

Meine Antwort:

smtp.aaa.com bekommt die E-Mail von Person 1.

(1) smtp.aaa.com prüft jetzt zunächst, ob er die E-Mail annehmen darf.
Er darf das dann, wenn er entweder der (bzw. ein) für die Domain
"bbb.de" zuständige(r) Mail-Empfangs-Server (Mail eXchanger, kurz
"MX") ist, oder der Absender zu den befugten Nutzern gehört. Letzteres
prüft er anhand der IP-Nummer des Absenders oder durch
Authentifzierungsmaßnahmen wie SMTP-Auth oder SMTP-after-POP. Sinn der
ganzen Aktion ist es, offenes Relaying zu vermeiden, d.h. dass
smtp.aaa.com Mail von jedermann an jedermann annimmt (Missbrauch durch
Spammer).

(2) Wenn smtp.aaa.com die Mail hat, prüft er, ob er selbst für
"bbb.de" zuständig ist oder die Mail weiterleiten muß. Im letzteren
Falle macht er eine DNS-Abfrage (DNS= Domain Name Server / Domain Name
System) nach den Mail eXchangern für bbb.de. Wenn er eine Antwort
bekommt, sucht er sich den MX mit der kleinsten Priorität heraus (bei
mehreren mit gleicher Priorität einen beliebigen davon) und macht eine
erneute DNS-Abfrage, um die IP-Nummer des MX zu bekommen.

	  (2a) Wenn kein MX zu finden ist, wird ggf. noch nach einem
	  A-Record (also einem Eintrag mit der IP-Adresse des Rechners
	  mit dem Namen "bbb.de") gesucht und Mailzustellung nach dort
	  versucht. Wenn beides scheitert, geht die Mail als
	  unzustellbar an den Absender zurück, meist mit einem
	  Kommentar wie "no route to host", idR erst nach bis zu vier
	  Tagen probieren (falls der Eintrag nur kurzfristig fehlt).

(3) smtp.aaa.com verbindet sich mittels der IP-Nummer mit dem MX von
bbb.de, vielleicht ist das smtp.bbb.de oder auch mx.bbb.de. Er beginnt
eine SMTP-Sitzung (HELO/EHLO etc. pp.) [1] und will die Mail
ausliefern. smtp.bbb.de prüft jetzt, ob er für die Mail zuständig ist
bzw. sie annehmen darf. Wenn smtp.bbb.de weiß, daß er MX für bbb.de
ist, also korrekt konfiguriert wurde, nimmt er die Mail an.

	  (3a) Wenn smtp.bbb.de nicht erreichbar ist, versucht
	  smtp.aaa.com es mit dem nächsten MX-Record mit höherer
	  Priorität. Falls es keinen mit höherer Priorität mehr gibt,
	  markiert er die Mail als "zeitweise unzustellbar" und
	  versucht es später nochmal, in der Regel bis zu vier Tage
	  lang.

	  (3b) Wenn smtp.bbb.de erreichbar ist, aber die Mail nicht
	  annimmt, kommt es auf den Fehlercode an: bei einem
	  temporären Fehler (Überlast, Datenbank nicht verfügbar ...)
	  wird ebenfalls die Zustellung mehrfach erneut versucht. Bei
	  einem endgültigen Fehler ("Relaying nicht erlaubt", wenn
	  smtp.bbb.de gar nicht weiß, daß er als MX für bbb.de
	  eingetragen ist, oder "user unknown") geht die Mail als
	  unzustellbar zurück.

(4) smtp.bbb.de weiß, daß er selbst für Mail an bbb.de zuständig ist
und liefert sie konfigurationgemäß aus, d.h. vermutlich in die Mailbox
(oder das Maildir oder was auch immer) von Person 2. Wenn pop.bbb.de
ein anderer Rechner als smpt.bbb.de sein sollte, ist da dann ggf. noch
eine interne Weiterleitung dabei.

Soweit in aller Kürze als Überblick.

Einzelheiten des geschilderten Vorgehens sind in der Regel
implementations- oder konfigurationsabhängig - oder zwar theoretisch
standardisiert, aber praktisch teilweise anders gehandhabt. Für einen
etwas laienhaften Überblick sollte es aber taugen.

[1] Mehr dazu in RFC 2821 und ganz kurz auch am Anfang der [http://www.th-h.de/faq/headrfaq.html Header-FAQ].

Weiterführende Links