Odoo Integration
EmBoux provides two Odoo modules for zero-code email management:
Modules
Section titled “Modules”EmBoux Core (emboux_core)
Section titled “EmBoux Core (emboux_core)”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)
EmBoux SaaS (emboux_saas)
Section titled “EmBoux SaaS (emboux_saas)”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
1. Install the modules
Section titled “1. Install the modules”Upload emboux_core and emboux_saas to your Odoo addons path and install them.
Dependencies:
emboux_core:base,mailemboux_saas:emboux_core,portal,sale,whatsapp
2. Configure API connection
Section titled “2. Configure API connection”Go to Settings > EmBoux and set:
| Field | Value |
|---|---|
| API URL | https://api.emboux.com |
| API Token | Your master token |
3. Create plans (SaaS only)
Section titled “3. Create plans (SaaS only)”Pre-built plans are installed with the module:
| Plan | Price | Domains | Mailboxes | Storage | Retention |
|---|---|---|---|---|---|
| Starter | $9.99 | 1 | 1/domain | 1 GB | 30 days |
| Business | $49.99 | 10 | 5/domain | 2 GB | 60 days |
| Enterprise | $199.99 | Unlimited | 20/domain | 5 GB | 90 days |
You can modify these or create new ones at Sales > Products.
How It Works
Section titled “How It Works”Customer Purchase Flow
Section titled “Customer Purchase Flow”- Customer buys an EmBoux plan via Sale Order
- On SO confirmation:
- Quota record created automatically
- API key provisioned on EmBoux
- Limits synced (domains, mailboxes, storage, retention, transfer)
- Welcome email sent
- Customer visits
/my/embouxto manage their domains
Suspension Flow
Section titled “Suspension Flow”- Customer exceeds domain quota (e.g., creates 6 domains on a 5-domain plan)
- State transitions to
exceeded, grace period starts (30 days) - Email reminders sent at days 7, 15, and 22
- After day 30: excess domains are suspended on EmBoux (LIFO order)
- Customer buys upgrade or addon → domains reactivated automatically
Cron Jobs
Section titled “Cron Jobs”The module installs three automated jobs:
| Job | Interval | Purpose |
|---|---|---|
| Grace Period Check | Daily | Advance grace states, apply suspensions |
| Usage Sync | Every 6 hours | Pull usage data from EmBoux |
| Overage Billing | Monthly | Invoice for excess mailboxes/aliases |
Portal Features
Section titled “Portal Features”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
Sending Mail from Odoo via EmBoux
Section titled “Sending Mail from Odoo via EmBoux”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.
Receiving Mail: Catch-All
Section titled “Receiving Mail: Catch-All”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.