Wir betreiben einen E-Mail-Server für einige Kunden und sind kürzlich auf ein Rätsel gestoßen.
Wir hatten einen Benutzer, der eine E-Mail an eine falsche E-Mail-Adresse gesendet hat. Die falsch angegebene Domain war leider vorhanden. Es gab keine MX-Einträge, und der A-Eintrag der Domäne ging an einen Server, der kein SMTP sprach. Daher hat der E-Mail-Server die Zustellung versucht und war nicht erfolgreich, da kein E-Mail-Server ausgeführt wurde.
Aus diesem Grund versuchte unser E-Mail-Server, vollständig in Übereinstimmung mit dem SMTP-RFC, innerhalb von fünf Tagen eine erneute Zustellung und gab schließlich auf und schickte nach fünf Tagen erfolgloser Zustellung eine Benachrichtigung an den Absender.
In Abschnitt 4.5.4.1 von RFC5321 (Simple Mail Transfer Protocol) heißt es:
Die Wiederholungen werden fortgesetzt, bis die Nachricht gesendet wird oder der Absender aufgibt. Die Abgabezeit muss in der Regel mindestens 4-5 Tage betragen.
Daher hat der Mailserver in seiner Standardkonfiguration in diesem Fall gemäß dem RFC gearbeitet, was bedeutet, dass ein Benutzer, der in diesem Fall die falsche E-Mail-Adresse angibt, erst fünf Tage später darüber informiert wird.
Zu diesem Zeitpunkt hat mein Chef gefragt, ob es möglich wäre, die Abgabezeit auf etwas kürzeres zu reduzieren, beispielsweise 1 Tag. Seine Argumentation ist, dass es besser ist, den Benutzer früher über die Nichtzustellung zu informieren und dass der Benutzer versuchen kann, die Zustellung zu einem späteren Zeitpunkt oder die Zustellung über einen alternativen Kanal erneut durchzuführen. Es klingt nach einer vernünftigen Sache, aber im Allgemeinen bin ich vorsichtig, wenn ich Konfigurationsänderungen vornehme, die im Widerspruch zum Inhalt des RFC stehen.
Gibt es einen nicht offensichtlichen Grund, warum es eine schlechte Idee wäre, die Abgabezeit auf 24 Stunden zu reduzieren, außer nur zu sagen "der RFC sagt etwas anderes"?
Was machen die größeren E-Mail-Anbieter (Googles, Microsoft, AOLs und Yahoos) in diesem Szenario?
sendmail
Zum Beispiel wird auch eine Warnung gesendet, dass die Zustellung an (glaube ich) nach vier Stunden noch nicht erfolgreich war. Da diese auch sagen, von wem und von wem es ist, sollte der Benutzer gewarnt werden, dass etwas weit vor der fünftägigen Fehlermarke läuft. Wenn Ihr MTA nicht diese Warnungen generieren, dann Wahl von MTA wahrscheinlich ist ein Faktor.Antworten:
Warum sollten Sie die Zustellung von E-Mails nicht nach einem Tag aufgeben? Ein guter Grund sind die Wochenenden .
E-Mail ist jetzt nicht und war nie besonders zuverlässig . In den frühen Tagen des Internets, in den 1980er Jahren, war es durchaus möglich, dass E-Mails einige Tage brauchten, um ihr Ziel zu erreichen. Einige Netzwerkverbindungen waren nicht rund um die Uhr verfügbar, und zwar über teure Ferngespräche (damals kostete es pro Minute , um zwei Städte entfernt anzurufen, ohne Rücksicht auf die Kosten eines Anrufs von Sydney nach Los Angeles) oder sogar über Amateurfunk. Infolgedessen konnte die Zustellung von E-Mails eine Weile dauern, und die Protokolle mussten mit unzuverlässigen und Teilzeitverbindungen fertig werden. Sie machen das sehr gut, aber selbst dann kann die Post verzögert werden oder verloren gehen.
E-Mails haben heutzutage sicherlich die Illusion von Zuverlässigkeit, schon allein deshalb, weil die zugrunde liegenden Transporte zuverlässiger sind und viele nicht informierte Personen (wie die meisten unserer Benutzer) die Erwartung haben, dass sie zuverlässig sind, aber diese Erwartung nicht der Realität entspricht. Ohne eine wesentliche Änderung der E-Mail-Zustellungsprotokolle, die wahrscheinlich niemals stattfinden wird, wird E-Mail, wie alles, was von Menschen erstellt wurde, immer zu weniger als 100% perfekt sein.
Manchmal nutzen wir Systemadministratoren dies aus.
Zum Beispiel kann ich in einem Büro, in dem jeder nur von Montag bis Freitag da ist, bei Bedarf einen E-Mail-Ausfall haben, der das ganze Wochenende dauert. Natürlich ist es praktisch nie notwendig, so lange unterwegs zu sein, aber in seltenen Fällen musste ich über 24 Stunden lang E-Mails versenden.
Wenn Sie in einem solchen Fall nach 24 Stunden aufgeben, erreicht die am Freitagnachmittag gesendete E-Mail möglicherweise nicht den Empfänger. Der Absender wird es erst am Montagmorgen herausfinden, aber wenn Sie es weiter versucht hätten, hätte der Empfänger es bis Montagmorgen gehabt.
Darüber hinaus ist es sehr wichtig, die Benutzererwartungen angemessen festzulegen. Die Tatsache, dass Internet-E-Mails nicht 100% zuverlässig sind und niemals zuverlässig sein werden, muss klar verstanden werden, auch wenn wir dies gerne glauben.
Der RFC sagt, Sie sollten es weiter versuchen, gerade weil etwas schief geht, und es ist beabsichtigt, dass die Post, wenn möglich, irgendwann zugestellt wird, aber irgendwann müssen Sie aufgeben. Es kann in Ordnung sein, dies auf drei Tage zu reduzieren . Ich habe immer gedacht, dass fünf Tage zu lang sind, um auf die Zustellung der meisten Nachrichten im Internet rund um die Uhr zu warten.
Wie für Ihren angegebenen Mailserver:
Postfix kann Absender benachrichtigen, wenn sich eine E-Mail-Nachricht verzögert hat. Diese Funktion ist jedoch standardmäßig deaktiviert. Diese Warnung sollte ausreichen, um Ihre Benutzer darüber zu informieren, dass möglicherweise ein Fehler aufgetreten ist, z. B. eine falsch eingegebene E-Mail-Adresse, und sie wird viel früher als die von Ihrem Chef vorgeschlagenen 24 Stunden eintreffen.
Stellen Sie zum Aktivieren
delayed_warning_time
den gewünschten Wert in einmain.cf
.Ab Version 3.0 kann Postfix dieselben Absender auch benachrichtigen, wenn verspätete Nachrichten endgültig zugestellt werden. Dies ist standardmäßig ebenfalls deaktiviert, da dies zu vielen Benachrichtigungen führen kann. Wenn Sie dies möchten, aktivieren Sie
confirm_delay_cleared
inmain.cf
.quelle
Ich werde die andere Seite davon als die meisten Antworten hier nehmen.
Der ISP, für den ich arbeite, bedient ungefähr 3000 Kunden und verwendet Qmail als MTA für die Postfächer dieser Kunden.
Wir haben unser System fast 2 Jahre lang mit einer Warteschlangenlebensdauer von 2 Tagen betrieben und weder Beschwerden erhalten noch Probleme mit der Zustellung von E-Mails. Es hat die Warteschlangengröße verringert, was es viel einfacher gemacht hat, gefährdete Konten zu erkennen (selten, aber sie treten auf) und sie zu bereinigen.
Warteschlangenlebensdauern über einen Tag sind nur die Verwaltung des Cargo Cult-Systems und ein Überbleibsel aus der Zeit, als das Internet viel weniger "immer an" war. Gute Systemadministratoren folgen "Best Practices", aber noch bessere verstehen, warum dies Best Practice war, und ändern die "Best Practice" in eine bessere Praxis, wenn sich die Situation von der unterscheidet, in der die vorherige "Best Practice" entwickelt wurde.
quelle
Ich empfehle, die Abgabezeit nicht zu ändern. Angenommen, das Büro des Empfängers (mit E-Mail vor Ort) wurde am Wochenende durch ein \ tornado | Erdbeben | Feuer \ ausgelöscht. Wenn das Unternehmen Offsite-Bandsicherungen für seinen DR-Plan verwendet, sollten Sie besser glauben, dass es länger als 24 Stunden dauern wird, bis der Tornado wieder E-Mails akzeptiert. 5 Tage wären in diesem Szenario zu lang, aber das ist nicht die Wurzel des Problems.
Unabhängig davon, ob es sich um 5 Tage, 48 Stunden oder 24 Stunden handelt, sind alle diese Zeiträume zu lang, um über nicht gesendete E-Mails informiert zu werden, und alle sind zu kurz, um alle möglichen Gründe für einen Serverausfall zu berücksichtigen. Wenn Sie sendmail nicht verwenden, schauen Sie sich vielleicht sendmail an, wie MadHatter vorgeschlagen hat. Zumindest sollten Sie einige Warnungen für sich selbst (und / oder andere) konfigurieren, wenn sich etwas länger als einige Stunden in der Warteschlange befindet.
quelle