Odoo beschleunigen mittels Postfix
Integration eines lokalen Postfix-Servers für schnellere und zuverlässigere Nachrichtenübermittlung
8 Juni, 2023 durch
Odoo beschleunigen mittels Postfix
manaTec GmbH, Jan Wiegand
 


Wenn das E-Mail-System eines Unternehmens, das die Software Odoo einsetzt, entweder auf Office365 oder Google Workspace basiert, empfiehlt es sich oft, die entsprechenden SMTP-Relays dieser Anbieter direkt zu verwenden. Durch diese Vorgehensweise wird gewährleistet, dass die volle E-Mail-Funktionalität von Odoo optimal genutzt werden kann.

Darüber hinaus wird der DKIM-Header der Domain korrekt gesetzt und somit ist die Wahrscheinlichkeit geringer, dass E-Mails im Spam-Ordner landen. Dies ist aufgrund des höheren Vertrauens, das die SMTP-Server von Microsoft und Google im Vergleich zu anderen E-Mail-Providern genießen, der Fall. Ein Pluspunkt besteht darin, dass keine zusätzliche Wartung oder Konfiguration erforderlich ist. Dies ermöglicht den meisten Unternehmen eine reibungslose Integration und Anwendung.

Bei Unternehmen, die eine intensive Nutzung von ausgehenden E-Mail-Nachrichten, wie beispielsweise projektorientierten Kontexten, verzeichnen, kann diese Konfiguration als unzureichend empfunden werden. Dies ist nicht auf eine tatsächliche Langsamkeit des Odoo-Servers zurückzuführen, sondern auf die Art und Weise, wie Odoo den Versand von E-Mails handhabt.

Wie versendet Odoo E-Mails?

Odoo bietet zwei verschiedene Möglichkeiten, den Umgang mit ausgehenden E-Mails zu handhaben. Die erste Variante besteht darin, dass Odoo die ausgehenden E-Mails sammelt und sie dann im Durchlauf über seinen Cron-Thread abarbeitet. Dies geschieht ohne direkte Beteiligung des Endnutzers, wodurch dieser nichts davon mitbekommt. Diese Methode eignet sich gut für den allgemeinen E-Mail-Verkehr. Die zweite Variante ist besonders interessant für die Nutzererfahrung, insbesondere bei der Kommunikation in Projekten, Tickets oder anderen Nachrichten, die an einen Kontakt gesendet werden. In diesen Fällen werden die E-Mails direkt verschickt, ohne dass sie zuvor gesammelt und im Hintergrund verarbeitet werden. Dies gewährleistet eine sofortige Zustellung der Nachrichten.

Jedoch kann es in Situationen, in denen beispielsweise in einem Projekt viele Follower vorhanden sind und jeder von ihnen die betreffende Nachricht per E-Mail erhält, zu einer spürbaren Verzögerung für den Odoo-Nutzer kommen.

Wo liegt nun das Problem?

Der Eindruck, dass das Odoo-System langsam ist, entsteht hauptsächlich aufgrund einer Designentscheidung im Framework. Beim Versenden von Nachrichten wird die Benutzeroberfläche durch einen Fortschrittskreis blockiert und erst nach Abschluss des gesamten Versandvorgangs wieder freigegeben. Dies liegt daran, dass das Framework so konzipiert ist, dass die Nachrichten nacheinander gesendet werden. Um diese Wahrnehmung zu ändern, müssten grundlegende Designänderungen im Framework vorgenommen werden. Eine mögliche Lösung wäre beispielsweise, den Versand in einem separaten Thread laufen zu lassen und dem Benutzer lediglich eine Benachrichtigung anzuzeigen, ob der Versand erfolgreich war oder nicht. Die Implementierung einer solchen Änderung wäre jedoch äußerst aufwendig und kostspielig.

Doch wie lange sind die Wartezeiten und lohnt sich das? Bei einem Test mit neun E-Mail-Nachrichten wurden Zeiten zwischen 2,5 und 3,5 Sekunden gemessen, wobei auch Ausreißer von über 10 Sekunden zu verzeichnen waren. Diese Zeiten variieren je nach E-Mail-Anbieter.

Grundsätzlich verwendet Odoo die Standard-SMTP-Python-Bibliothek, um eine SMTP-Sitzung mit dem SMTP-Relay zu öffnen und die einzelnen E-Mail-Nachrichten innerhalb dieser Sitzung an die jeweiligen Empfänger zu senden. Dies ist bereits der schnellste Weg, E-Mails direkt über Python zu versenden. Da Odoo dies jedoch nicht in einem separaten Thread ausführt, treten immer Wartezeiten auf, es sei denn, es wird nachgeholfen.

Der Performance Boost mit Postfix

Eine effektive Lösung, um die Kommunikation erheblich zu beschleunigen, besteht darin, einen lokalen Postfix-Server zusätzlich zwischen Odoo und den Relay-Server zu integrieren. Durch diese Konfigurationsänderung wird die Wartezeit bei unseren Tests auf etwa 0,03 Sekunden reduziert, was einen sofort spürbaren Unterschied ausmacht. Der Einsatz eines lokalen Postfix-Servers stellt jedoch eine zusätzliche Komponente dar, die in die Konfiguration eingebunden werden muss, und erfordert auch eine gewisse Wartung.

Indem Unternehmen, die mit der Geschwindigkeit von Odoo unzufrieden sind, diese zusätzliche Investition tätigen, können sie von erheblichen Verbesserungen profitieren. Die Integration eines lokalen Postfix-Servers zwischen Odoo und den Relay-Servern verkürzt nicht nur die Wartezeiten, sondern optimiert auch den E-Mail-Versandprozess insgesamt.

Konfiguration zum Testen

Um Postfix für einen eigenen Test zu konfigurieren, können die folgenden Schritte befolgt werden: Es ist jedoch wichtig zu beachten, dass diese Konfiguration nur die grundlegendste Funktionalität beinhaltet. Weitere Einstellungen, wie Sicherheit, Authentifizierung oder Filterung, sollten entsprechend den individuellen Anforderungen hinzugefügt werden.

Vorausgesetzt, die SMTP-Relay-Konfiguration für den Odoo-Server ist bereits bei Microsoft Office 365 oder Google Workspace voreingestellt, beispielsweise durch die Verwendung von IP-Adressen und StartTLS für eine korrekte Authentifizierung. In unserem Blogbeitrag zum Thema Catch-all mit Office 365 wird diese Einrichtung ausführlich beschrieben. In diesem Fall ist es ausreichend, Postfix auf dem Odoo-Server zu installieren und die folgenden Zeilen in die Datei /etc/postfix/main.cf hinzuzufügen oder anzupassen.

Beispiel google smtp-relay

relayhost = smtp-relay.gmail.com:587
smtp_tls_security_level=may
inet_interfaces = loopback-only

Die Konfiguration für Microsoft Office 365 weist einige Ähnlichkeiten auf. Der Relayhost-Eintrag setzt sich aus dem MX-Record der Domain und dem Port 25 zusammen. Zusätzlich ist es wichtig, den Parameter "smtp_tls_security_level" auf "may" zu setzen, um eine sichere Kommunikation zu ermöglichen. Da der Microsoft Relay-Dienst ebenfalls StartTLS unterstützt, wird diese Verschlüsselungsoption automatisch genutzt. Durch die Verwendung des MX-Records als Relayhost wird sichergestellt, dass die ausgehenden E-Mails über den richtigen Pfad zu den Office 365-Servern geleitet werden. Um den lokalen Postfix SMTP-Server in der Odoo-Konfiguration zu integrieren, wird in der Konfigurationsoberfläche von Odoo der Ausgangsserver auf "localhost" mit Port 25 eingestellt. Dabei erfolgt die Kommunikation ohne Verschlüsselung und es wird kein spezifischer Benutzer angegeben. Bestimmte Einstellungen wie "From Filter", "Alias-Domain" und "Default From" sollten dennoch entsprechend der eigenen Domain und individuellen Anforderungen angepasst werden. Diese Einstellungen sind essenziell, um sicherzustellen, dass die ausgehenden E-Mails korrekt verarbeitet werden und keine potenziellen Fehler oder E-Mail-Spoofing-Situationen auftreten.

In der vorliegenden Testkonfiguration übernimmt Postfix diese spezifischen Einstellungen nicht automatisch für Odoo. Daher ist es von großer Bedeutung, dass die entsprechenden Einstellungen in der Odoo-Konfigurationsoberfläche sorgfältig vorgenommen werden. Dies gewährleistet, dass die E-Mails korrekt mit den angegebenen Absenderinformationen versehen werden und keine Sicherheitslücken oder Fälschungen entstehen.

Kontaktieren Sie uns jetzt, um mehr über die Integration eines lokalen Postfix-Servers zu erfahren und eine schnellere sowie zuverlässige Nachrichtenübermittlung in Odoo zu erreichen!

 
Open-Source ERP-Systeme
Revolutionierung der Unternehmensführung mit dem ERP-System Odoo