Skip to Content

Inbound email in Odoo through Postmark, with no IMAP and no open SMTP port

Mail arrives over HTTPS and goes straight to Odoo's own mail router, so your existing aliases keep working. For Odoo 18 and 19.

Odoo can turn incoming email into tickets, tasks and leads. Getting the email into Odoo in the first place is where it usually goes wrong: your host blocks port 25, or the IMAP fetch quietly stops, or the mailbox fills up and nobody notices for a week.

Postmark Inbound takes a different route, and it is now on the Odoo Apps store, free and LGPL-3, for both Odoo 18 and Odoo 19.

Mail arrives over HTTPS

Point the MX record of your domain at a Postmark inbound stream. Postmark accepts the message and posts it to Odoo over HTTPS. No mailbox is polled, no mail server runs next to Odoo, and no SMTP port has to be open.

If your outgoing mail already leaves through Postmark, incoming mail can now take the same path, with the same domain and one place to read the logs.

Odoo does the routing, not the module

This is the important part. The module does not know what a helpdesk ticket or a project task is. It hands every message to Odoo's own mail router, so whatever your aliases already do keeps working:

  • Aliases are resolved by Odoo, including the fallback to the Delivered-To header when the visible recipient is a forwarding address.
  • Replies stay on the record they answer. The original headers are preserved, so the References chain still points at the ticket instead of opening a duplicate.
  • Attachments arrive on the message, whether the stream sends raw MIME or Postmark's parsed JSON.

Closed until you configure it

The webhook is protected by a shared secret held in one Odoo system parameter, compared in constant time. While that parameter is unset the route refuses every request with 403 and writes the reason to the log. An installed but unconfigured module is never an open endpoint.

Messages that match no alias, or that answer a record which no longer exists, are answered with HTTP 200 and a short reason, so Postmark stops retrying something that would fail the same way every time.

What you need

Odoo 18 or 19, Community or Enterprise, and a Postmark account. The only Odoo dependency is Discuss, which every database already has.

Get it

The module is on the Odoo Apps store at apps.odoo.com/apps/modules/19.0/postmark_inbound, with a matching 18.0 branch. Questions and customisations: hello@wolfinne.com.

Inbound email in Odoo through Postmark, with no IMAP and no open SMTP port
Bojan Nišević July 27, 2026
SHARE THIS POST
Tags