Debuggen von „Verbindung zum Sendmail-Server nicht möglich“

Debuggen von „Verbindung zum Sendmail-Server nicht möglich“

In einer Unternehmensumgebung haben wir einen Mailserver, für den nur die Ports 25/TCP und 587/TCP verfügbar sind.

Wenn wir Perl-Skripte (mit HTML::Mail) verwenden, um Hunderte legitimer E-Mails zu senden, schlägt dies gelegentlich mit der Meldung „Verbindung zum Mailserver fehlgeschlagen“ fehl.

Wir sind der Meinung, dass die hohe Belastung des Sendmail-Servers dazu führt, dass dieser die Verbindung ablehnt oder möglicherweise nicht einmal auf die ursprüngliche Anfrage reagiert.

Nun zeigt sich das Team, dem der Mailserver gehört, nicht kooperativ und verlangt einen Nachweis dafür, dass der Server die Verbindung abgelehnt hat.

Frage: Welche Informationen können im Fehlerfall clientseitig gesammelt werden, vorausgesetzt, das Problem liegt serverseitig vor? Wie kann nachgewiesen werden, dass das Problem serverseitig liegt, sofern dies tatsächlich der Fall ist?

[[Ich bin nicht sicher, ob diese Frage hier berechtigt ist. Ich kann nicht um Hilfe bei der Lösung des Problems bitten, wenn das Problem selbst nicht klar ist. Ich bitte um eine kurze Liste mit Tipps und Tricks zur Fehlerbehebung. Ich wäre sogar für Vorschläge zu Problemumgehungen offen.]]

Antwort1

Die Lösung besteht darin, dass das Sendmail-Team sich die Datei „/etc/mail/sendmail.mc“ ansieht:

dnl #
dnl # The following limits the number of processes sendmail can fork to accept 
dnl # incoming messages or process its message queues to 20.) sendmail refuses 
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead 
dnl # incurred due to forking new sendmail processes. May be useful against 
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address 
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl

(Treat "dnl" as a comment leadin string.)

Wenn Sie die E-Mails einfach nur verschicken, sollten Sie sie wahrscheinlich drosseln.

Antwort2

Protokollieren Sie Fehlermeldungen und den GENAUEN Zeitpunkt des Auftretens von Problemen. Dies sollte Sendmail-Administratoren dabei helfen, Probleme in den Protokolldateien zu lokalisieren.

Beim Massenversand sollten Sie:
a) die SMTP-Verbindung wiederverwenden, um viele E-Mails zu versenden (z. B. 50)
b) die Anzahl der pro Sekunde übermittelten Nachrichten begrenzen (z. B. 20-50)

Andere Maßnahmen, die ich vorschlagen könnte, wären Sendmail-spezifisch und würden die Zusammenarbeit von Sendmail-Administratoren erfordern.

verwandte Informationen