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).
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.
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.
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.
Im nächsten Schritt wird ein Name vergeben, zum Beispiel "Catch-all-Ausnahmen".
Dynamische Verteilerlisten sind, wie der Name schon sagt, dynamisch organisiert und es muss entsprechend festgelegt werden, welche Adressen zu dieser Gruppe gehören.
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.
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.
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.
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.
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 und ist auch sehr wichtig. In Office 365 ist es jedoch nur möglich E-Mails via IMAP abzuholen, wenn zur Authentifizierung die oAuth2-Methode verwendet wird. Wie man die IMAP Verbindung richtig einrichtet finden Sie einem zusätzlichen Blogbeitrag.
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.
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.
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.
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.
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.
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.
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/
Catch-all mit Office 365