SMTP Verlust - unerklärbare Mailverluste erklärt
Tag für Tag werden Millionen von Nachrichten über das Internet übertragen. E-Mail hat die klassische Briefpost in vielen Bereichen bereits überflügelt und heute werden sogar geschäftskritische Informationen per SMTP zwischen Firmen übertragen. Da stellt sich natürlich die Fragen, wie sicher das ist und ob da nicht auch mal die ein oder andere Mail "verloren" geht. Diese Seite widmet sich dieser Fragestellung, wie Fehler bei der Übertragung erkannt und behandelt werden und in welchen Fällen eine Mail unbemerkt verloren geht. Interessant könnten auch folgende Seiten sein:
Die eigentliche Übermittlung
Der Anwender übergibt seine Nachricht an seinen lokalen Mailserver, welcher diese dann über die verfügbaren Kommunikationswege an das Zielpostfach zustellt. Hierzu nutzen die Systeme DNS (Domain Name Service) zur Namensauflösung um das Zielsystem zu finden bzw. manuell durch den Administrator konfigurierte Relays (Smarthosts). Die Übertragung erfolgt ähnlich der Briefpost, indem die Nachricht von Station zu Station weiter gereicht wird. Weder der Absender noch der Empfänger kann den genauen Weg, die Zeit und die Geschwindigkeit steuern. Die Mailserver bedienen sich der TCP/IP-Infrastruktur, um die Verbindung herzustellen. Die Nachrichten wird dabei in einzelne kleine Pakete (ca. 1,5KByte) aufgeteilt und über das Internet übertragen. Der empfangende Server setzt die Nachricht wieder zusammen und erst wenn er alle Pakete wieder in der richtigen Reihenfolge komplettiert hat, wird die Nachricht als "Empfangen" betrachtet und der Absender erhält eine Bestätigung darüber "so genannte "250 Accepted für delivery" -Meldung). Auch dies passiert ohne weitere Rückmeldung an den Absender oder Empfänger.
Ein Server, der eine Nachricht angenommen hat, ist in der Folge auch "Verantwortlich" für diese Nachrichten und hat demnach nur zwei mögliche Verhaltensweisen:
- Er leitet die Mail an die nächste Station weiter
- Er kann die Mail nicht weiter geben und muss eine "Unzustellbarkeit" (NDR = Non Delivery Report) erstellen
Auch wenn auf den ersten Blick eine Mail zugestellt wird oder der Absender einen Fehlerbericht erhält, so kann der Fall eintreten, dass auch eben dieser Fehlerbericht (NDR) auch wieder nicht zugestellt werden kann. (z.B.: weil der Absender eine falsche Adresse angegeben hat, dessen Postfach gerade "voll" ist oder der Mailserver die Rückmeldung irrtümlich als "Spam" aussortiert.
Das "Problem" der unzustellbaren NDRs ist um so geringer, je weniger Zwischenstationen enthalten sind. Im Idealfall sendet der Server des Absenders direkt an den Server des Empfängers. Nur wenn "Provider" dazwischen sind, ( z.B. POP3 Sammelkonten, Viren/Spamschutz, Relays, Backup-MX-Server etc.) ist dies wahrscheinlicher.
Kann eine Mail nicht zum nächsten System übertragen werden, z.B. weil die Gegenseite nicht bereit ist, es keine IP-Verbindung gibt oder die Gegenstelle die Verbindung temporär ablehnt, dann versucht es der Server immer wieder (normalerweise 1-3 Tage), ehe er aufgibt und eine unzustellbarkeitsmeldung erstellt.
Nur wenn die Gegenseite aktiv einen "Permanenten Fehler" sendet, z.B. "550 invalid recipient", dann wird sofort eine unzustellbarkeit erstellt. Über diesen Mechanismus werden auch Probleme wie "Mailbox voll", "Empfänger unbekannt", "Domäne nicht erreichbar" etc. abgefangen.
Ursachen für Verluste
Die Übertragung von Nachrichten mittels dem Protokoll SMTP im Internet ist auf fast alle Eventualitäten eingestellt, aber kann dennoch nicht alle Verluste 100% verhindern. So sind folgende Situationen denkbar.
- Absender "vertippt" sich beim Empfänger
Die Mail landet dann beim falschen Server oder dem falschen Benutzer, der diese einfach löscht. Dies passiert auch häufig beim Absender, da Outlook und andere Programm oft eine "Vorschlagfunktion" haben und bei der Eingabe eines Namens schon eine Liste der "wahrscheinlichen Empfänger" anbieten. Sehr schnell ist hier einfach die falsche Person ausgewählt. Als Absender kann ich dies aber später über den Ordner "gesendete Objekte" leicht nachvollziehen. - Virenfilter/Spamfilter
Fast jede Firma "filtert" heute und auch diese Produkten machen "Fehler", d.h. blockieren auch mal erwünschte Nachrichten. Die meisten Produkte informieren darüber eventuell den Empfänger aber nie den Absender, da Spammer für gewöhnlich falsche Adressen verwenden und damit nur eine Störung unbeteiligter auftreten würde. - Dubletten-Erkennung
Einige Mailserver (Auch Exchange) prüfen Mails auf Dubletten. Es kann bei der Übertragung schon passieren, dass eine Mail vom Empfänger als "empfangen" angesehen wird, vom Absenderserver aber als Fehler aufläuft und daher nochmal übertragen wird. Exchange löscht daher Mails, wenn innerhalb einer Stunde die gleiche Message-ID, Datum, Absender und Empfänger übereinstimmen. In diesem Fall kann aber der Empfänger nachschauen. - Mailserver ausfall / Softwarefehler
Trotz Backup und RAID und Qualitätssicherung ist es natürlich möglich, dass Nachrichten "verloren" gehen. So kann ein Ausfall eines Servers mit Datenverlust bedeuten, das alle Mails auf diesem Server nicht mehr weiter zugestellt werden. Auch menschliche Fehler oder Konfigurationsfehler können zu einem "Mail Papierkorb" führen. Diese Fälle sind aber sehr selten und von kurzer Dauer - "inkompatible Anbindungen"
Die Versand und Empfang von Mails über das Internet erfolgt über das Protokoll SMTP. SMTP bedeutet aber, dass der Empfänger rund um die uhr unter einer Netzwerkadresse (IP-Adresse) erreichbar ist, die auch per Namensauflösung (MX-Record) gefunden wird. Gerade kleine Firmen sind aber entweder nicht permanent "online" (nutzen also Wählverbindungen) oder haben wechselnde IP-Adressen (Dynamische DSL-Zugänge), so dass diese nicht einfach per SMTP erreichbar sind. Hier werden dann oft Lösungen entwickelt, die in der Regel auch funktionieren, aber nicht immer zuverlässig sind. Klassische sind dies do genannte POP3-Sammelkonten, in den alle Mails für eine Firma abgelegt und dann von dort abgeholt werden. für das Mailsystem ist diese Mail "zugestellt", wenn diese im Sammelpostfach landet. Dies ist jedoch nicht das Postfach des Anwenders. Es gibt keinen Weg hier eine Sicherung der Zustellung zu erreichen. - - Lokale Regeln, Archivierung, mehrere Systeme, Ansichtenfilter Sehr oft scheint eine Mail auch einfach nicht anzukommen, weil der Empfänger die Nachrichten z.B.: über Regeln automatisch in andere Ordner verschiebt. Auch der Gebraucht mehrerer PCs und besonders Smartphone mit POP3 führt oft dazu, dass eine Mail im Postfach nach kurzer Zeit von einem System "herunter geladen" wird und damit in den anderen Systemen nicht mehr sichtbar ist. Auch selbst definierte Anzeigefilter verbergen manchmal Nachrichten. Als Absender können Sie dies nicht erkennen. Selbst für den Administrator auf der Empfängerseite ist es nicht immer einfach, solch einen Sachverhalt zu erkennen.
Sollte daher der Weg zwischen zwei Firmen "fraglich" sein, dann hilft nur die Nachverfolgung der angeblich verlorenen Nachrichten über die entsprechend vorhandenen Protokolle, die jeder Mailserver mitführt. Speziell wenn keine Zwischenstationen (Relays) genutzt werden, kann der Versender schon in seinem Protokoll nachschauen, welches System die nächste Station war und ob diese die Mail angenommen hat. Auch der Empfänger kann natürlich suchen, ob bei ihm schon etwas eingegangen ist.
Es ist aber nicht unüblich, dass Mails auch erst nach einigen Tagen oder sogar Wochen zugestellt werden. Speziell wenn Relays großer Provider aufgrund von Angriffen (Viren, Spam etc.) überlastet sind und Tage brauchen, um die aufgestauten Nachrichten zu verteilen.
Einschreiben kann helfen
Als Versender kann ich jedoch eine Mail "mit Einschreiben" versenden. Gemäß der Definition muss der Mailserver, welcher die Mail dem Postfach zustellt, dann eine "zugestellt"-Quittung an den Absender übermitteln. Allerdings gibt es hier schon Firmen, die unter Missachtung der RFCs dieses Verhalten unterbinden um eben keine Rückschlüssel auf interne Strukturen zu erlauben.
Weitere Links
- SMTP Grundlagen
- SMTP und die Sicherheit
- Unzustellbarkeiten
- NDR Spamming
-
Wikipedia - Simple Mail Transfer Protocol
http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol