Odoo eingehende Mailserver mit Office 365 OAuth2 Authentifizierung

Einrichtung des eingehenden Mailservers in Odoo und Office 365
20. Dezember 2022 durch
Odoo eingehende Mailserver mit Office 365 OAuth2 Authentifizierung
manaTec GmbH, Laura Schoeder
 


In vergangenen Blogbeiträgen berichteten wir bereits über die Kommunikation in Odoo und über die Einrichtung Catch-all-E-Mail. In diesem Artikel soll es speziell um die Einrichtung einer IMAP Verbindung gehen, indem auch eine Zwei-Faktor-Authentifizierung berücksichtigt wird. Nur so ist es möglich, E-Mails über IMAP abzuholen. 

Damit Odoo Mails von Office 365 via OAuth2 abholen kann, ist es notwendig, die dafür bereitgestellte App zu installieren. Wir gehen dazu in die App-Übersicht von Odoo und löschen als erstes das Suchwort "Apps" aus der Suche. Stattdessen wird nach Fetchmail gesucht.

Fetchmal Outlook App installieren

Nun müssen Sie die App "Fetchmail Outlook" installieren.

Hat die Installation funktioniert, wird eine neuer Bereich “Outlook Anmeldedaten” in den Allgemeinen Einstellungen unter Benutzerdefinierte E-Mailserver angezeigt.

Fetchmail Outlook

Die Daten für die zwei neuen Datenfelder Client ID und Client Secret bekommen wir, indem wir im Azure Active Directory Center eine App für den Odoo-Client registrieren.

Appregistrierung für den Odoo Client.
App-Registrierung für den Odoo Client

App-Registrierung im Azure Active Directory Admin Center

Um Odoo die Möglichkeit zu geben, E-Mails via IMAP und OAuth2 abzuholen, gibt es mehrere Wege. Es ist auch möglich, E-Mails von einer “Shared Mailbox” oder ohne zusätzliche Freigabe von dem Postfach abzuholen. Die hier beschriebene Methode verwendet die delegierte Berechtigung, bei der keine Zustimmung eines Administrators nötig ist. Es genügt das Anmelden an das zu verwendende Outlook Konto, wodurch die Berechtigung gewährt wird.

Im Menü des “Azure Active Directory Admin Center” wählen wir “Azure Active Directory” und im neu erscheinenden Menü wählen wir “App-Registrierung”. Hier finden Sie oben links die Möglichkeit, eine neue App zu registrieren. Zum Beispiel:

Appregistrierung.
App-Registrierung

Nun wählen wir den Kontotyp “Konto in einem beliebigen Organisationsverzeichnis" und setzen eine Umleitungs-URL vom Typ Web, die sich aus ihrer Odoo Domain gefolgt von /microsoft_outlook/confirm zusammensetzt. Dabei ist zu beachten, dass diese über ein gültiges Zertifikat verfügt. Ohne ein Zertifikat ist nur http://localhost als möglicher Wert für die Domain erlaubt und kann damit nicht auf einem externen Server verwendet werden. Nachdem wir diese mit dem Button "Registrieren" angelegt haben, befinden wir uns als Erstes in der Übersicht der neuen Anwendung (App). Hier finden wir bereits die neu erstellte Anwendungs-ID (Client-ID)

Wahl des Kontentyps.

Diese wird dann für die Outlook Anmeldedaten “Client ID” in Odoo benötigt. Auch ist es möglich, direkt in der Übersicht auf die Clientanmeldeinformationen zu klicken, um ein Geheimnis für die Anmeldung zu erstellen. Die gleiche Option wird gegeben, wenn wir im linken Menü auf “Zertifikate & Geheimnisse” klicken.

Dort erstellen wir einen neuen geheimen Clientschlüssel und geben dessen Laufzeit an. Dazu gibt es einen vorgegebenen Zeitraum z. B. sechs Monate oder wir erstellen manuell einen eigenen Zeitraum der Gültigkeit. Wichtig ist, das Ende des Zeitraums im Blick zu behalten. Mehr dazu am Ende in den allgemeinen Informationen.

Wenn wir auf Hinzufügen geklickt haben, wird uns der Clientschlüssel angezeigt. Dabei ist es wichtig, jetzt den “Wert” des Client-Schlüssels zu kopieren. Dazu finden wir neben dem Wert das Kopiersymbol zum Anklicken.

Wert des Client-Schlüssels kopieren.
Wert des Client-Schlüssels kopieren

Verlassen Sie diese Übersicht ohne Kopieren des Schlüssels, ist dies anschließend nicht mehr möglich und Sie müssen den Clientschlüssel erneut erstellen. Dieser “Wert” wird dann im Odoo für die “Outlook Anmeldedaten” als “Client-Secret” benötigt.

Als nächstes müssen noch die Berechtigungen für unsere neue App hinzugefügt werden. Gehen Sie dazu im linken Menü auf “API-Berechtigungen”. Wenn hier bereits voreingestellte Berechtigungen zugewiesen sind, löschen Sie diese zuerst heraus. Danach können durch den Button "Berechtigung hinzufügen" die benötigten Rechte hinzugefügt werden.

Berechtigungen hinzufügen.
Berechtigung hinzufügen
Anforderung API Berechtigung.
Anforderung API-Berechtigung

Wir gehen dazu auf den Reiter “Von meiner Organisation verwendende APIs" und suchen nach “Office 365 Exchange”. Wenn wir dann “Office 365 Exchange Online” auswählen, werden wir aufgefordert, die Art der Berechtigung zu wählen.  

Mail.ReadWrite
Mail.ReadWrite

Wir wählen hier die Art “Delegierte Berechtigung” und suchen dann nach “Mail.ReadWrite”. Wenn wir die gefundene Berechtigung “Mail” sehen, klappen wir diese auf und setzen den Haken bei dem Recht “Mail.ReadWrite”. Wenn wir das Recht hinzugefügt haben, sollte das Ergebnis folgendermaßen aussehen. Das Schreibrecht benötigt Odoo, damit dieses bereits abgeholte E-Mails auf den Status “gelesen” setzen kann. Ein einfaches Leserecht genügt nicht.

Konfigurierte Berechtigungen.
Konfigurierte Berechtigungen

Odoo IMAP Server Konfiguration

Wir tragen die vorher erstellten “Client ID” und “Client Secret” Informationen in die Outlook-Anmeldeinformationen ein und speichern diese, wenn dies nicht bereits geschehen ist.

Danach können wir “Eingehender Mail-Server” anlegen und konfigurieren.

Konfiguration des "Eingehende Mail Server".

Dazu setzen wir als Erstes bei den Serverinformationen einen Haken bei Outlook. Die Werte wie Servername, Port und SSL/TLS werden dadurch bereits automatisch gesetzt.  Wir fügen nur den “Namen” der Einstellung und den “Benutzernamen” des E-Mail-Kontos hinzu, von dem die E-Mails abgeholt werden sollen. Das Passwortfeld kann bei dieser Konfigurationsart leer bleiben. Wir klicken stattdessen auf “Verknüpfen Sie Ihr Outlook-Konto” unter dem Feld “Benutzername”. Dadurch werden wir auf die Office 365 Anmeldeseite weitergeleitet, bei der wir uns als das zu verwendende E-Mail-Konto anmelden und die Berechtigung für das Abholen der E-Mails final erteilen. Hat das funktioniert, sollte "Eingehender E-Mailserver" unter dem Benutzernamen in der Odookonfiguration stehen.

Status Outlook Token.
Status Outlook Token

​Um die Konfiguration abzuschließen, klicken wir nun auf “Testen & Bestätigen”.

Wenn alles richtig funktioniert hat, sollte rechts der Status auf "Bestätigt" wechseln. Damit ist nun Odoo befähigt, die OAuth2 Authentifizierung von Office 365 zu verwenden, um E-Mails via IMAP abzuholen.

Status - Bestätigt.

Allgemeine Informationen

Wenn der geheime Clientschlüssel abgelaufen ist, wird Odoo keine E-Mails abholen können. Dies der Fall ist, steht nur in den Odoo Server Logs. Ein einfacher Weg herauszubekommen, ob der Clientschlüssel abgelaufen ist, wenn keine E-Mails im Odoo ankommen, ist es, in den Einstellungen des eingehenden Mail-Servers die Bestätigung zurückzusetzen und wieder versuchen, diesen zu bestätigen. Dadurch wird die genaue Fehlermeldung, wenn etwas nicht funktioniert , z.B. der Client-Schlüssel nicht mehr gültig ist, als Popup in der Odoo-GUI angezeigt. Wenn der Client Schlüssel abgelaufen ist, muss dieses “Geheimnis” im Azure-Active-Directory-Admin-Center neu angelegt werden und der neue Clientsecret in den Allgemeinen E-Mail Einstellungen neu hinterlegt werden. Danach können wir das E-Mail-Konto in den Einstellungen des ausgehenden Mail-Servers via “Testen und Bestätigen” wieder bestätigen.

Sie benötigen Hilfe beim Einrichten des Office-365-Client in Odoo, oder haben weitere Fragen zu dem Thema, dann kontaktieren Sie uns gerne, wir helfen Ihnen schnellstmöglich weiter!

 
Odoo 16
Wir stellen die Features der neuen Version vor.