Back to the blog
smtp relayodootransactionele e-mail
New

Odoo email not arriving: recognising the causes and fixing them

When invoices, quotes or reminders from Odoo do not arrive, it is almost always one of three things: the outgoing mail server is missing or misconfigured and messages sit in the queue, the sender address does not match the authenticated domain, or the server Odoo sends from has no reputation. The fix is usually the same in every case: connect Odoo to an SMTP relay with its own login and get SPF and DKIM in order for your domain.

First see where it stalls

Odoo does not send immediately; it puts messages in a queue that a scheduled job processes periodically. In the technical settings, open the list of outgoing messages. Each message shows a status. Three situations occur:

  • The message is "outgoing" and stays there. The scheduled job is not running, or the mail server refuses the connection. This is a configuration problem.
  • The message is "failed" with an error. Read it: an authentication error, a refused sender address or a connection that cannot be made each point to a different cause.
  • The message is "sent" but the customer has nothing. Odoo handed it over; the problem is in delivery: spam, refusal by the recipient, or a bounce you never saw.

Cause 1: no outgoing mail server, or the wrong one

A self-hosted Odoo has no outgoing server by default, or uses the local mail function of the machine it runs on. That machine has no reputation and usually no correct reverse DNS, so whatever it sends is viewed with suspicion. In the technical settings, configure an outgoing mail server with your relay's details: server name, port 587 with STARTTLS, and the login you created for Odoo. Give Odoo its own login, not the one your webshop uses: then you can revoke it without touching the rest, and the log shows which application sent what.

Cause 2: the sender address does not match the domain

Odoo likes to send from the address of the employee who performed the action. If that employee uses an address on a different domain from the one you set up SPF and DKIM for, authentication fails for that message. Set a fixed sender domain in the settings and, if your version supports it, a filter that determines which addresses this mail server may send from. Messages from other addresses then automatically get an address on your own domain as sender, with the original address as reply-to. Your customer can still simply reply, and authentication passes.

Cause 3: the reputation of the sending server

Even with correct settings, mail from a server that has never sent before arrives poorly. A relay sends from addresses with an established reputation and handles temporary refusals automatically by retrying. That is the difference between an invoice that still arrives an hour later and an invoice that quietly disappears.

Cause 4: bounces nobody sees

Odoo can fetch incoming mail and process bounces, but only if the reply address is set correctly and an incoming mail server is configured. In practice that is often not the case, and bounces vanish into thin air. A relay records what happened to each message and shows it in a dashboard, even when Odoo does not process it itself. How to then handle bounces automatically in your contacts is on the transactional email page.

Odoo Online or self-hosted

With the online version Odoo handles sending itself, and you can usually only set the sender domain and DNS records; follow the guidance in your admin environment. With a self-hosted installation, including one at a hosting company, the outgoing server and authentication are your responsibility. This article is about that second situation.

Test the way your customer sees it

From Odoo, send a quote to a Gmail address and an Outlook address, and check in the message details at the recipient whether SPF, DKIM and DMARC show "PASS". Then check in your relay's log that the message is marked delivered. Do not test on your own mailbox: it already trusts your domain and tells you nothing.

Frequently asked questions

Do I need to change anything in Odoo itself?

Only the outgoing mail server and the sender domain. No module, no code changes.

Can I connect several Odoo databases to one relay?

Yes, with a separate login per database, so you can follow and revoke them individually.

Why does mail reach me but not my customers?

Your own mail server trusts your domain or sits on the same infrastructure. Customers sit behind filters that do check authentication and reputation.

#odoo email not arriving#odoo outgoing mail server#odoo smtp#odoo mail queue#odoo mail failed
Call us
Send an email