Jump to content

Email unzustellbar nach Postfachmigration auf neuen Server


Go to solution Solved by Hirnilein0815,

Recommended Posts

vor 43 Minuten schrieb Hirnilein0815:

Es war mein selbst entwickelter Spamfilter.

Dann mal schnell weiter entwickeln. Interne Mails zwischen Exchangeservern sind immer authentifiziert und sollte deswegen auch whitelisted werden. ;) Alternativ einfach ein Produkt nehmen, das sowas alles kann, anstatt das Rad neu erfinden zu müssen. :)

Link to post

Naja, den Spamchecker habe ich schon vor 12 Jahren entwickelt. Damals gab es kaum Produkte, die Greylisting beherrschten (machen wir inzwischen nicht mehr), die halbwegs bedienbar waren und die alles sauber mitprotokollieren. Wir haben immer noch ein Feature, Auto-Whitelisting, auf das ich nicht verzichten möchte. Alle von uns angeschriebenen Empfänger werden automatisch auf eine interne Whitelist gesetzt, so dass deren Antworten garantiert wieder bei uns ankommen.

Link to post

Ich führe nochmals genauer aus, was das Problem mit dem Spamfilter war. Meine obige Erklärung war etwas ungenau:


 

        public void OnRcptCommandHandler(ReceiveCommandEventSource source, RcptCommandEventArgs rcptArgs)
        {
            try
            {
                // Beide Parameter müssen gültig sein
                if (source == null || rcptArgs == null)
                {
                    CTrace.TraceWarning("SpaminusSmtpAgent.OnRcptCommandHandler(): " + Resources.IDS_SKIPPING_ALL_TESTS);
                    return;
                }

                // Nur Emails, die von aussen kommen, werden geprüft
                if (rcptArgs.SmtpSession.IsExternalConnection)
                {
                    MailObject mailObject = new MailObject(m_spamCheckerSettings.SmtpServerName, MailObject.eOperation.eSmtpReceive, rcptArgs);

                    HandleRcptCommand(mailObject);

                    if (mailObject.RejectCommand.HasValue)
                    {
                        source.RejectCommand(mailObject.RejectCommand.Value);
                    }
                }
                else // Interne bzw. ausgehende Verbindung
                {
                    if (m_spamCheckerSettings.EnableAutoWhitelist)
                    {
                        MailObject mailObject = new MailObject(m_spamCheckerSettings.SmtpServerName, MailObject.eOperation.eAutoWhitelist, rcptArgs);
                        SpamChecker.AutoWhitelist(mailObject, m_spamCheckerSettings);
                    }
                }
            }
            catch (Exception exception)
            {
                CTrace.TraceException(exception);
            }
        }

 

Die entscheidende Stelle ist

   if (rcptArgs.SmtpSession.IsExternalConnection)

 

Diese Bedingung war nach der Servermigration immer true, wodurch der Spamfilter auch bei ausgehenden Emails aktiv wurde und die Recipient Validation die Mail blockierte, weil der vermeintlich interne Empfänger in Wirklichkeit ein externer Empfänger war und deshalb logischerweise im Active Directory nicht gefunden wurde.

 

Das Property SmtpSession.IsExternalConnection wird von Exchange beim Aufruf des Agents aufgrund der TransportConfig-Einstellung -InternalSMTPServers gesetzt. Mit Get-TransportConfig | Format-List InternalSMTPServers findet man heraus, welche Server dort eingetragen sind. In meinem Fall hat die IP-Adresse des neuen Servers gefehlt. Mit

 

Set-TransportConfig -InternalSMTPServers 192.168.xxx.xxx

 

konnte ich das Problem lösen. Der neue Mailserver wird nun korrekt als interner Server ausgewiesen und der Spamfilter greift wie erwartet nur noch bei eingehenden Emails.

  • Like 1
Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...