Eingehende E-Mails sind in vielen Odoo-Projekten der unscheinbare Schwachpunkt. Sie funktionieren – meistens. Bis ein Lead zwei Minuten zu spät im CRM landet, ein Ticket erst beim nächsten Cron-Lauf erstellt wird oder eine Mailbox stillschweigend ausfällt und niemand es merkt. Der Standardweg über IMAP-Polling ist robust genug für den Alltag, aber er hat strukturelle Grenzen. Mit Mailgun und einem eingehenden Webhook lässt sich das Mail-Handling deutlich verlässlicher und schneller aufstellen.
Dieser Beitrag beschreibt den Weg von der klassischen IMAP-Abholung hin zu einer ereignisgesteuerten Verarbeitung über Mailgun – inklusive der Stolperfallen, die in der Praxis tatsächlich relevant werden.
Das Problem mit IMAP-Polling
Odoo holt eingehende Mails standardmäßig über einen Cron-Job ab, der die konfigurierten IMAP-Postfächer in einem festen Intervall abfragt. Das Modell ist einfach und hat sich bewährt, bringt aber drei wiederkehrende Probleme mit sich.
Erstens die Latenz. Das Standardintervall liegt oft im Minutenbereich, und in der schlechtesten Konstellation vergeht genau dieses Intervall zwischen Mailzustellung und Verarbeitung in Odoo. Für ein CRM, das schnell reagieren soll, oder für ein Support-Postfach mit SLA-Zusagen ist das spürbar.
Zweitens die Fehleranfälligkeit. Wenn der Cron stockt, das Postfach voll läuft oder die IMAP-Verbindung Authentifizierungsfehler wirft, passiert das oft leise. Mails stapeln sich, ohne dass jemand eine Benachrichtigung erhält. Die Diagnose erfolgt dann meist erst, wenn ein Kunde nachfragt, warum auf seine Nachricht nichts passiert ist.
Drittens die Skalierung. Polling fragt immer das ganze Postfach ab, unabhängig davon, ob neue Nachrichten vorliegen. Bei vielen Postfächern und kurzen Intervallen entsteht unnötige Last, ohne dass die Reaktionszeit dadurch besser wird.
Der Ansatz: eingehende Webhooks von Mailgun
Mailgun kann eingehende Mails über Routes verarbeiten. Eine Route definiert, welche Adressen oder Muster abgefangen werden und was damit geschieht. Statt die Nachricht in einem Postfach abzulegen, das Odoo später abfragt, stößt Mailgun direkt einen HTTP-Request an einen Endpunkt in Odoo an, sobald eine Mail eintrifft.
Der Unterschied ist grundlegend: Aus einem zyklischen Abfragemodell wird ein ereignisgesteuertes Modell. Die Mail wird in dem Moment verarbeitet, in dem sie ankommt, nicht beim nächsten Cron-Lauf. Es gibt kein leerlaufendes Polling mehr, und ein ausgefallener Endpunkt fällt sofort auf, weil Mailgun fehlgeschlagene Zustellungen protokolliert und wiederholt.
In der Praxis bedeutet das einen kleinen, eigenständigen Controller in Odoo, der die Webhook-Aufrufe entgegennimmt, die Nutzlast validiert und die Nachricht an Odoos bestehende Mail-Verarbeitung übergibt. Genau das macht ein dediziertes Modul wie moss_mailgun_inbound – die Logik bleibt gekapselt, der restliche Odoo-Mailflow bleibt unangetastet.
Probleme mit der aktuellen Mail-Lösung?
Oder Interesse an der Umstellung auf Webhooks?
Einfach melden, wir schauen's uns gemeinsam an.
Sicherheit: Signaturen verifizieren statt blind vertrauen
Ein öffentlich erreichbarer Webhook-Endpunkt ist eine Einladung für jeden, der die URL kennt oder errät, gefälschte Mails einzuspeisen. Deshalb ist die Signaturprüfung kein optionales Extra, sondern der Kern einer sauberen Implementierung.
Mailgun signiert jeden eingehenden Webhook mit einem Verfahren auf Basis von HMAC-SHA256. Jeder Request enthält drei Werte: einen Zeitstempel, ein zufälliges Token und eine Signatur. Der Empfänger berechnet die Signatur selbst, indem er Zeitstempel und Token mit dem geteilten Signing-Key über HMAC-SHA256 verknüpft, und vergleicht das Ergebnis mit der mitgelieferten Signatur.
Drei Punkte sind dabei in der Praxis wichtig. Der Vergleich sollte zeitkonstant erfolgen, damit keine Rückschlüsse über die Antwortzeit möglich sind – in Python etwa über hmac.compare_digest statt eines einfachen ==. Der Zeitstempel sollte gegen ein enges Zeitfenster geprüft werden, um abgefangene und später erneut gesendete Requests abzuwehren. Und der Endpunkt sollte bei fehlender oder ungültiger Signatur konsequent mit einem klaren Fehlerstatus antworten, statt die Nachricht trotzdem zu verarbeiten.
Erst wenn die Signatur stimmt, wird die Mail an die weitere Verarbeitung durchgereicht. Alles andere wird verworfen und protokolliert.
Konfiguration auf Odoo-Seite
Damit die eingehende Mail im richtigen Datensatz landet, braucht Odoo eine korrekt eingerichtete Alias-Domain. Der Alias entscheidet, welches Modell und welcher Datensatz für eine eingehende Adresse zuständig ist – etwa ein neues CRM-Lead, ein Helpdesk-Ticket oder eine Antwort, die als Nachricht an einen bestehenden Datensatz angehängt wird.
Drei Bausteine greifen hier ineinander. Die Alias-Domain in den Systemeinstellungen legt fest, unter welcher Domain Odoo eingehende Adressen erwartet. Die einzelnen Aliase auf den Modellen verbinden eine lokale Adresse mit einem Zielmodell. Und die Mailgun-Route muss so gesetzt sein, dass genau die Adressen dieser Domain abgefangen und an den Webhook weitergeleitet werden.
Wenn Domain, Alias und Route konsistent konfiguriert sind, fügt sich der Webhook nahtlos in Odoos vorhandene Mechanik ein. Der Webhook ersetzt nur den Transportweg – die eigentliche Zuordnung und Verarbeitung bleibt die bewährte Odoo-Logik.
Odoo live erleben?
Einfach kostenlosen Demo-Termin buchen – und sehen, wie Odoo im eigenen Unternehmen aussehen könnte.
Was sich in der Praxis verändert
Nach der Umstellung verschwindet die spürbare Verzögerung zwischen Mailzustellung und Reaktion in Odoo nahezu vollständig. Nachrichten erscheinen praktisch in Echtzeit als Lead, Ticket oder Folgenachricht.
Genauso wichtig ist die verbesserte Sichtbarkeit. Schlägt die Zustellung an den Webhook fehl, ist das im Mailgun-Log unmittelbar erkennbar, und Mailgun wiederholt die Zustellung automatisch. Statt eines stillen Ausfalls gibt es eine nachvollziehbare Spur und einen eingebauten Wiederholungsmechanismus.
Und schließlich entfällt das dauerhafte Leerlauf-Polling. Verarbeitet wird nur, was tatsächlich ankommt – das reduziert die Last und macht das Verhalten des Systems berechenbarer.
Fazit
IMAP-Polling ist nicht falsch, aber es ist ein Kompromiss aus einer Zeit, in der Webhooks keine Selbstverständlichkeit waren. Wer Mailgun ohnehin im Einsatz hat oder einsetzen kann, gewinnt mit eingehenden Webhooks an Geschwindigkeit, Verlässlichkeit und Transparenz – bei überschaubarem Aufwand. Der entscheidende Punkt bei der Umsetzung ist die saubere Signaturprüfung: Sie trennt eine professionelle Integration von einem offenen Einfallstor. Ist dieser Teil sorgfältig gelöst, fügt sich der Rest elegant in Odoos bestehende Mail-Verarbeitung ein.
Über den Autor
Gerald Aistleitner ist CTO & CMO bei MULTIOSS und Co-Founder des Unternehmens. Er begleitet KMU im DACH-Raum bei der digitalen Transformation – von der Strategie bis zur technischen Umsetzung. Dieser Beitrag dient der allgemeinen Information und ersetzt keine Rechtsberatung im Einzelfall.