Skip to content

Odoo Integration

EmBoux provides two Odoo modules for zero-code email management:

The universal connector. Install it on any Odoo 19 instance to manage domains, mailboxes, and aliases directly from the Odoo backend.

  • Works with both master and client tokens
  • Automatic API sync on create/delete
  • Split-brain resolution (handles duplicates gracefully)

The commercial layer for SaaS platforms. Extends Core with:

  • Product plans — Starter, Business, Enterprise with configurable limits
  • Customer quotas — Automatic quota management from subscriptions
  • Grace periods — 30-day window with email reminders before suspension
  • Auto-suspension — Excess domains frozen automatically after grace
  • Auto-reactivation — Domains restored when customer pays
  • Portal — Customer self-service at /my/emboux
  • API Key provisioning — Automatic key generation on first purchase
  • Overage billing — Monthly invoice for excess mailboxes/aliases

Upload emboux_core and emboux_saas to your Odoo addons path and install them.

Dependencies:

  • emboux_core: base, mail
  • emboux_saas: emboux_core, portal, sale, whatsapp

Go to Settings > EmBoux and set:

FieldValue
API URLhttps://api.emboux.com
API TokenYour master token

Pre-built plans are installed with the module:

PlanPriceDomainsMailboxesStorageRetention
Starter$9.9911/domain1 GB30 days
Business$49.99105/domain2 GB60 days
Enterprise$199.99Unlimited20/domain5 GB90 days

You can modify these or create new ones at Sales > Products.

  1. Customer buys an EmBoux plan via Sale Order
  2. On SO confirmation:
    • Quota record created automatically
    • API key provisioned on EmBoux
    • Limits synced (domains, mailboxes, storage, retention, transfer)
    • Welcome email sent
  3. Customer visits /my/emboux to manage their domains
  1. Customer exceeds domain quota (e.g., creates 6 domains on a 5-domain plan)
  2. State transitions to exceeded, grace period starts (30 days)
  3. Email reminders sent at days 7, 15, and 22
  4. After day 30: excess domains are suspended on EmBoux (LIFO order)
  5. Customer buys upgrade or addon → domains reactivated automatically

The module installs three automated jobs:

JobIntervalPurpose
Grace Period CheckDailyAdvance grace states, apply suspensions
Usage SyncEvery 6 hoursPull usage data from EmBoux
Overage BillingMonthlyInvoice for excess mailboxes/aliases

Customers can self-manage at /my/emboux:

  • View quota status (OK, Grace Period, Suspended)
  • Add/delete domains
  • Add/delete mailboxes (with password reveal on creation)
  • Add/delete aliases
  • View and manage API keys
  • See usage statistics

Any mailbox you create in emboux_core can be used as an Odoo Outgoing Mail Server. The mailbox detail view lists the ready-to-paste SMTP settings under Outgoing Mail Server (SMTP). Two options are offered:

  • Option 1 — STARTTLS on port 587.
  • Option 2 — SSL/TLS on port 465. Recommended for Odoo and for any client that has trouble with the STARTTLS handshake.

Align mail.catchall.domain with the mailbox

Section titled “Align mail.catchall.domain with the mailbox”

Odoo builds the envelope-from of every outbound message from the system parameter mail.catchall.domain, not from the authenticated SMTP user. If that domain does not match the mailbox domain registered in EmBoux, the sender cannot be authorised at the provider and messages bounce with 550 5.7.1 Relaying denied.

Open Settings > Technical > System Parameters and set mail.catchall.domain to the domain of the EmBoux mailbox you are authenticating with. For example, if your outgoing server authenticates as [email protected], set mail.catchall.domain to tenant.example.com.

On a multi-tenant SaaS, each tenant database should set this parameter to match its own subdomain so bounces, notifications, and replies all align with the tenant’s mailbox.

A mailbox marked Catch-All receives every message addressed to its domain that does not match another mailbox or alias. Only one mailbox per domain can be the catch-all.

You can enable Catch-All either by ticking the toggle on the creation form (the alias is installed at the same time as the mailbox) or by flipping it later on an existing mailbox. Removing the flag or deleting the mailbox also removes the catch-all alias automatically.