Exchange 2003 – Probleme mit Greylisting

Nach dem ich nun mehrfach gehört habe, dass bei Kunden E-Mails nicht raus gehen und plötzlich nach einem Neustart des Servers, also z.B. nach einem Update, dann doch versendet werden, habe ich gedacht, ich schreibe Mal was ich da gefunden habe.

Problem ist, das die E-Mails im Queue nicht auftauchen und auch nicht mehr zu finden sind. Man kann den Fehler sehr schön sehen, wenn man die Protokolierung des Exchange einschaltet und dann den Exchange-Server, den Virtuellen SMTP – Server, neu startet. Wenn dann im Anwendungsprotokoll plötzlich viele E-Mails versandt worden sind, dann ist dies ein hinweiß, das der Server mit dem Graylisting des Providers nicht zurecht kommt.

Gut ist, es gibt einen Patch von Microsoft:
http://support.microsoft.com/kb/950757/de

Wer es schäut, Patches einzuspielen, die nicht wirklich sicher sind und erst angefordert werden müssen, für den hat Daniel Melanchthon in seinem Blog eine gute Lösung gefunden:

Senden aller ausgehenden Emails über einen Smarthost des Providers.
Tägliches stoppen und starten des SMTP-Dienstes:
net stop smtpsvc && net start smtpsvc
Ändern des Glitch Retry- und Per Message Failures Before Marking As Problem-Verhaltens von Exchange:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesSMTPSVCQueuing

Value name: PerMsgFailuresBeforeMarkingAsProblem
Data type:REG_DWORD
Radix: Decimal
Default: 2

Value name: GlitchRetrySeconds
Data type: REG_DWORD
Radix: Decimal
Default: 60

Letzteres ist der bisher sinnvollste Workaround. Dabei muss (GlitchRetrySeconds * PerMsgFailuresBeforeMarkingAsProblem) > (Greylisting-Timeout) sein. Bei zum Beispiel 10 Minuten Greylisting-Timeout kann man GlitchRetrySeconds auf 200 und PerMsgFailuresBeforeMarkingAsProblem auf 3 setzen (die Standardwerte sind 60 für GlitchRetrySeconds und 2 für PerMsgFailuresBeforeMarkingAsProblem). Standardmäßig existieren die Einträge nicht, daher muss man den Unterordner Queuing auch in der Registry per Hand anlegen.