Exchange 2013: CatchAll-Weiterleitung

Hallo Freunde der Sonne,

interessante Frage – wie richtet man unter Exchange ein CatchAll ein?
Und los gehts:

Exchange 2013: CatchAll-Weiterleitung

Quelle: https://github.com/Pro/exchange-catchall

Download: https://jenswatch.de/wp-content/uploads/2015/05/exchange-catchall-master.zip

HINWEIS: In diesem Artikel wird nicht der Umgang mit NDR’s (Unzustellbarkeitsbenachrichtigungen) beschrieben sondern mit den originalen Mails.

Installation des Transport-Agents in Exchange:
In diesem Beispiel wurde die ZIP unter „C:\Catchall\.“ entpackt.

Set-ExecutionPolicy Unrestricted
cd C:\Catchall
./install.ps1
Set-ExecutionPolicy RemoteSigned

Alternativ kann die Skript-Ausführung auch wieder komplett deakiviert werden.
Bei installiertem NSCP muss das Sicherheitslevel jedoch auf Remote-Ausführung gesetzt werden.

Set-ExecutionPolicy Restricted

Bevor der Catch-All inbetrieb genommen werden kann muss er eine höhere Priorität erhalten, dies lässt scih wie folgt erledigen. Danach den Transport-Dienst neustarten.

Set-TransportAgent -Identity "Exchange CatchAll" -Priority 3
restart-service MSExchangeTransport

Anpassen der Konfigurationsdatei für das Catchall:
Der CatchAll-Transport-Dienst wurde in folgendes Verzeichnis installiert, am besten gleich die Konfigurationsdatei öffnen:

notepad "C:\Program Files\Exchange CatchAll\ExchangeCatchAll.dll.config"

Nun sollte diese den eigenen Wünschen angepasst werden.
Hier die finale, verkürze Version mit den entsprechenden Stellen eingefärbt:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
      <section name="domainSection" type="ConfigurationSettings.DomainSection, ExchangeCatchAll"/>
      <sectionGroup name="customSection">
        <section name="database" type="ConfigurationSettings.Database, ExchangeCatchAll" allowLocation="true" allowDefinition="Everywhere"/>
        <section name="general" type="ConfigurationSettings.General, ExchangeCatchAll" allowLocation="true" allowDefinition="Everywhere"/>
      </sectionGroup>
    </configSections>
    <domainSection>
      <Domains>
        <Domain name="testerei.local" regex="false" address="administrator@testerei.local"/>
      </Domains>
    </domainSection>
    <customSection>
      <general LogLevel="2" AddOrigToHeader="true" RejectIfBlocked="false"/>

      <database enabled="false" type="mysql" connectionstrings="SERVER=localhost;PORT=3306;UID=catchall;PWD=catchall;DATABASE=catchall;"/>
    </customSection>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

Die grünen Zeilen sind an den dunkelroten Stellen anzupassen!
In der originalen Datei sind alle Optionen per Kommentaren umfangreich erklärt – daher die Kurzform für einfaches CatchAll oben.

Nun wieder den Transport-Dienst neustarten und der CatchAll funktioniert.

restart-service MSExchangeTransport

Weitere Transport-Regeln innerhalb Exchange sind nicht erforderlich, die Nachrichten werden nun vor dem eigentlichen NDR abgefangen.