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.