Catch-all mit Office 365
Einrichtung der E-Mail-Server in Office und Odoo
10 Februar, 2022 durch
Catch-all mit Office 365
manaTec GmbH, Jan Wiegand


In unseren vergangenen Blogbeiträgen haben wir uns bereits mit der Kommunikation in Odoo sowie der Einrichtung einer Catch-all E-Mail-Adresse beschäftigt. Dabei haben wir bereits erwähnt, dass die Einrichtung eines Catch-all-Postfachs über Office 365 etwas umfangreicher als bei anderen Providern ist. Damit das ERP-System Odoo sicher und mit allen Kommunikationsfunktionen an Office 365 angebunden werden kann, müssen einige Voraussetzungen geschaffen und Einstellungen durchgeführt werden. In unserem heutigen Blog beschäftigen wir uns also mit der Einrichtung eines Catch-all-Postfachs in Office 365 und gehen dabei auf die folgenden Themengebiete ein: allgemeine Voraussetzungen, Einstellungen im Office 365 mit zusätzlicher Zwei-Faktor-Authentifizierung, korrekte SPF- und DKIM-Einträge im DNS sowie die Einrichtung in Odoo.

1. Die allgemeinen Voraussetzungen

Diese Anleitung ist nicht für Odoo-Online geeignet. Es wird davon ausgegangen, dass das Odoo On-Premises betrieben wird. Zusätzlich muss die Odoo-Instanz über eine feste IP nach außen kommunizieren. Für die nachfolgende Konfiguration werden vollständige administrative Berechtigungen in Odoo und in Office 365 benötigt. Zusätzlich muss im Office 365 mindestens ein Konto mit einer "Microsoft 365 Business Basic"-Lizenz existieren, das für die Odoo Catch-all E-Mail-Adresse verwendet wird.

2. Einstellungen im Office 365

Um Odoo mit all seinen internen Funktionen korrekt im Office 365 nutzbar zu machen, muss ein Office 365 Mail-Relay entsprechend konfiguriert zur Verfügung stehen und mittels E-Mail-Fluss-Regeln eine grundlegende Catch-all-Funktionalität dargestellt werden. 

2.1 Einen Mail-Relay vorbereiten

Dazu wird im "Exchange Admin Center" ein neuer Connector erstellt (E-Mail-Fluss → Connectors → Connector hinzufügen).

Die Angabe des E-Mail-Flussszenarios.
Die Angabe des E-Mail-Flussszenarios.

Als E-Mail-Flussszenario wird "E-Mail-Server Ihrer Organisation" ausgewählt. Im nächsten Schritt wird der Name des Connectors festgelegt, zum Beispiel "Odoo Mail-Relay". Der Connector kann auch direkt aktiviert, sowie der Interne Exchange E-Mail-Header beibehalten werden.

Die Angabe des Connectornamens.
Die Angabe des Connectornamens.

Der letzte Schritt legt fest, wie die Odoo-Instanz sich gegenüber dem Office 365 authentifiziert. Da hierbei davon ausgegangen wird, dass Odoo direkt mit dem Relay verbunden wird und kein weiteres Mail-Relay oder ähnliches dazwischen integriert ist, wird die ausgehende IP der Odoo-Instanz hinzugefügt. Dadurch ist es auch wichtig, dass die IP der Odoo-Instanz später auch als SPF-Eintrag existiert.

Die Connector-Authentifizierung.
Die Connector-Authentifizierung.

2.2 Catch-all E-Mail-Adresse konfigurieren

Office 365 hat eigentlich keine typische Catch-all-Funktion. Es ist jedoch möglich eine Regel zu erstellen, die diese Art der Funktionalität bereitstellt.

Für diese Regel wird als Erstes eine dynamische Verteilerliste erstellt. Das kann in den "Exchange Admin Center" Gruppeneinstellungen geschehen (Empfänger → Gruppen → Gruppen hinzufügen). Diese Gruppe wird später als Filter benötigt, um zu definieren, welche E-Mail-Adressen und Verteilergruppen im Office 365 existieren und somit nicht an die Catch-all-Adresse weitergeleitet werden.

Die Auswahl des Gruppentyps.
Die Auswahl des Gruppentyps.

Im nächsten Schritt wird ein Name vergeben, zum Beispiel "Catch-all-Ausnahmen".

Das Einrichten der Grundlagen.
Das Einrichten der Grundlagen.

Dynamische Verteilerlisten sind, wie der Name schon sagt, dynamisch organisiert und es muss entsprechend festgelegt werden, welche Adressen zu dieser Gruppe gehören.

Die Zuweisung von Benutzern.
Die Zuweisung von Benutzern.

Diese Gruppe benötigt keinen Besitzer, nur die Empfängertypen müssen festgelegt werden. Im nächsten Schritt wird dieser Liste noch eine Gruppen-E-Mail-Adresse zugewiesen. Dabei wird darauf hingewiesen, dass diese Gruppe nicht in Echtzeit funktioniert. Dieses muss dann zum Beispiel im Onboarding oder beim Anlegen neuer Ressourcen, bei den entsprechenden Prozessen beachtet werden.

Die E-Mail-Adresse der Gruppe.
Die E-Mail-Adresse der Gruppe.

Nachdem die Gruppe angelegt ist, sollte diese in der globalen Adressliste ausgeblendet werden. Dazu wird noch einmal auf den Gruppennamen geklickt und die entsprechende Einstellung aktiviert.

Das Ausblenden der Gruppe in der globalen Adressliste.
Das Ausblenden der Gruppe in der globalen Adressliste.

Als Nächstes wird die E-Mail-Fluss-Regel im "Exchange Admin Center" erstellt (E-Mail-Fluss → Regeln). Falls hier bereits Regeln bestehen, müssen diese entsprechend beachtet werden. Daher sollte diese Regel die einzige oder die erste in der Regel-Abfolge sein. Grundsätzlich wird mit dieser Regel angegeben, dass alle dem Office 365 nicht bekannten E-Mail-Empfänger der eigenen Domain an das für Odoo bereitgestellte Postfach weitergeleitet werden.

Die Catch-all-Regeln.
Die Catch-all-Regeln.

Konfiguriert wird, dass diese Regel auf alle Nachrichten angewendet und diese an das Odoo Catch-all-Postfach weitergeleitet werden. Es sei denn, die Empfänger befinden sich außerhalb der eigenen Organisation. Das ist wichtig, damit diese Regel nicht für ausgehende E-Mails gilt. Zusätzlich auch nicht, wenn der Empfänger sich in der vorher erstellten dynamischen Verteilerliste befindet, damit eine Zustellung von E-Mails weiterhin an existierende Postfächer funktioniert. Da das in diesem Beispiel gerade die einzige Regel ist, erhält sie die Priorität "0" und damit sie immer angewendet wird, den Schweregrad "Hoch". Da anschließend keine weitere Regel angewendet werden soll, wird dieses mit aktiviert.

Diese Regel allein funktioniert so aber nicht, da Office 365 immer noch prüft, ob eine E-Mail-Adresse im Office 365 existiert und wenn nicht, diese via Bounce-Nachricht zurückweist. Um dieses Verhalten abzustellen, muss Office 365 noch wissen, dass weitere E-Mail-Adressen existieren können, ohne dass diese im Office 365 konfiguriert sind (E-Mail-Fluss → Akzeptierte Domänen). Durch das Auswählen einer oder mehrerer Domänen kann das in den jeweiligen Einstellungen zu “Internes Relay” umgestellt werden.

Die Einstellung der Domäne.
Die Einstellung der Domäne.

2.3 Zwei-Faktor-Authentifizierung

Wenn Office 365 neu eingerichtet wird, ist bereits die Zwei-Faktor-Authentifizierung aktiviert, was die Sicherheit vor unberechtigten Zugriffen auf die Daten des Unternehmens erhöht. Dies soll natürlich bestehen bleiben, aber Odoo kann sich zum aktuellen Zeitpunkt nicht via IMAP in Verbindung mit OAuth2 an Office 365 anmelden, um E-Mails aus dem Catch-all-Postfach abzuholen. Damit das funktioniert, muss für das Odoo Catch-all E-Mail-Konto ein App-Kennwort generiert werden. Dafür sind je nach bisheriger Konfiguration mehrere Schritte notwendig. Bei einem frisch eingerichtet Office 365 sind das folgende Schritte.

Sicherheitsrichtlinien deaktivieren:

In einem neu eingerichteten Office 365 sind die sogenannten Sicherheitsstandards aktiviert. Diese verhindern aber, dass ein E-Mail-Konto App-Kennwörter einrichten kann. Deaktiviert werden diese im "Azure Active Directory Admin Center". Die Einstellung befindet sich unter Azure Active Directory → Eigenschaften → Sicherheitsstandards verwalten. Jetzt muss darauf geachtet werden, dass die Multi-Faktor-Authentifizierung bei jedem Konto konfiguriert ist.

Multi-Faktor-Authentifizierung einstellen:

Die zusätzliche Sicherheit für die Konten ist so zu konfigurieren, dass bei dem Konto, das Odoo zum Empfangen von E-Mails verwendet, die Multi-Faktor-Authentifizierung erzwungen ist (Benutzer → Alle Benutzer (Vorschau) → MFA pro Benutzer). Hier öffnet sich die Konfigurationsseite der mehrstufigen Authentifizierung, in dem beim Odoo Catch-all E-Mail-Konto der Multi-Factor-Authentication-Status auf "erzwungen" gesetzt wird. Zusätzlich werden in diesem Fenster die App-Passwörter erlaubt.

Die mehrstufige Authentifizierung.
Die mehrstufige Authentifizierung.

App-Passwort setzen:

Dieses wird direkt im E-Mail-Konto gesetzt. Nachdem sich mit dem E-Mail-Konto, das für Odoo verwendet werden soll, mit dem Webbrowser angemeldet wurde, kann die Seite https://mysignins.microsoft.com/security-info aufgerufen werden. Hier wird dem Konto die neue Standard-Anmeldemethode "App-Kennwort" hinzugefügt. Das Kennwort selbst wird von Office 365 vorgegeben. Sollte die Methode nicht existieren, muss noch einmal überprüft werden, ob die Sicherheitsrichtlinien deaktiviert und die Multi-Faktor-Authentifizierung bei dem Konto erzwungen sowie in deren Diensteinstellungen erlaubt ist.

3. DKIM und SPF

Damit E-Mails aus Odoo heraus später eine hohe Vertrauenswürdigkeit bei anderen E-Mail-Servern erlangen, empfiehlt es sich, DKIM im Office 365 zu aktivieren. Außerdem muss die IP der Odoo-Instanz zusätzlich in den SPF-Eintrag der verwendeten Domain hinzugefügt und via DMARC-Eintrag eine Empfehlung ausgesprochen werden.

3.1 DKIM

DKIM fügt jeder aus dem Office 365 versendeten E-Mail eine private DKIM-Signatur hinzu. Diese können dann von den empfangenden E-Mail-Servern anhand des öffentlichen DKIM-Schlüssels überprüft werden. In Office 365 wird dazu ein entsprechender CNAME-Eintrag zu der eigenen Domain als Subdomain hinzugefügt. Ist man bereits im Office 365 mit Administratorrechten angemeldet, kann die Webseite https://security.microsoft.com/kimv2 zum Erstellen der DKIM-Einträge genutzt werden. Die dadurch vorgegeben DNS-Einträge werden dann entsprechend gesetzt.

3.2 SPF

Mit dem Sender Police Framework-Eintrag muss die Odoo-Instanz und natürlich auch Office 365 als berechtigte Sender angeben werden. Dieser wird der eigenen Domain als TXT-Eintrag hinzugefügt, zum Beispiel: "v=spf1 include:spf.protection.outlook.com ip4:IP_ODOO -all". Das berechtigt Office 365 und die Odoo-Instanz als Sender und verhindert alle anderen.

3.3 DMARC

Der DMARC-Eintrag ist die Empfehlung, wie der empfangende E-Mail-Server mit E-Mails umgehen soll, bei denen die DKIM-Signatur fehlt oder inkorrekt ist beziehungsweise die von einer im SPF-Eintrag hinterlegten Adresse stammt. Eine einfache Variante ist zum Beispiel "v=DMARC1; p=quarantine; rua=mailto:example@example.org" und wird als TXT-Eintrag unter der Subdomain "_dmarc" gesetzt. Wichtig ist, dass dieser erst gesetzt wird, wenn sichergestellt ist, dass SPF und DMARC stimmen.

4. Einrichtung in Odoo

Das Odoo ERP wird nun so eingerichtet, dass es über den SMTP-Relay von der eigenen Office 365-Instanz E-Mails versendet und mittels IMAP von dem Catch-all-Konto E-Mails abholt. Außerdem soll Odoo E-Mails, die nicht zur eigenen Domain gehören, mit einer festgelegten E-Mail-Adresse versenden.

4.1 Allgemeine Einstellungen

Das Odoo ERP muss wissen, unter welcher Domain die eigenen E-Mail-Adressen geführt werden. Dazu wird als Administrator in den allgemeinen Einstellungen von Odoo die Alias-Domain festgelegt.

Die Angabe der Alias-Domain.
Die Angabe der Alias-Domain.

Zusätzlich wird mit dem Systemparameter (mail.dynamic.smtp.from) festgelegt, welche E-Mail-Adresse Odoo verwendet, wenn es im Namen eines anderen E-Mails verschicken möchte.

Die Odoo-Systemparameter.
Die Odoo-Systemparameter.

Das ist zum einen wichtig, da der Office 365 SMTP-Relay nur das Versenden mit Adressen erlaubt, die zur eigenen Domain gehören und zum anderen würde das als E-Mail-Spoofing angesehen werden und somit oft im Spam landen.

4.1.1 Änderungen ab Odoo 15

Ab Odoo Version 15 wird dieser Systemparameter nicht mehr verwendet und das erwünschte Verhalten kann in den Einstellungen des Ausgangsservers konfiguriert werden. Dazu wird die Domain, die zulässig ist, im "From Filter" festgelegt.

Die Odoo-Systemparameter in Version 15.
Die Odoo-Systemparameter in Version 15.

Zusätzlich kann mit dem Systemparameter (mail.default.from) die zu verwendende Absenderadresse angepasst werden. Die Adresse setzt sich dann aus dem angegeben Wert und der eingestellten "Alias Domain" zusammen.

Die Odoo-Systemparameter in Version 15.
Die Odoo-Systemparameter in Version 15.

4.2 SMTP-Einstellungen (Ausgehender E-Mail-Server)

Der ausgehende E-Mail-Server ist nun unser Office 365 SMTP-Relay. Die Adresse entspricht dem MX-Eintrag, der eigenen Domain, die im Office 365 verwendet wird.

Der Ausgehende E-Mail-Server.
Der Ausgehende E-Mail-Server.

Dabei wird der Port "25" verwendet und die Verbindungssicherheit "TLS (STARTTLS)" gewählt. Benutzernamen oder Passwort wird nicht angeben, da Odoo sich anhand der ausgehen IP-Adresse bei Office 365 authentifiziert.

4.3 IMAP-Einstellungen (Eingehender E-Mail-Server)

Bei den Einstellungen des eingehenden E-Mail-Servers wird die im Office 365 erstellte Catch-all E-Mail-Adresse in Verbindung mit dem App-Kennwort verwendet.

Der Eingehende E-Mail-Server.
Der Eingehende E-Mail-Server.

Der Servername lautet "outlook.Office365.com", der Port ist "993" und SSL/TLS ist aktiviert.

5. Anmerkung

Da nun auch E-Mail-Adressen in Odoo ankommen, die nicht existieren, werden weitere Module benötigt, zum Beispiel um diese manuell zuzuordnen oder eine Ablehnungs-E-Mail zu versenden.

Sie sind auf der Suche nach einem ERP-System, mit dem Sie Ihre komplette Unternehmenskommunikation abbilden können oder benötigen Support bei der Einrichtung einer Catch-all in Office 365 für Odoo? Kein Problem! Kontaktieren Sie uns jetzt und wir stehen Ihnen als erfahrener Odoo-Partner und IT-Support zur Seite!


Quellen: https://ventor.tech/


DIN 5008-Layouts in Odoo
Definition, Ursprung und Nutzung in Odoo