
Email marketing in Dolibarr: how far the EMailing module goes and how to go further
If you use Dolibarr, your customers, prospects and each company's contacts live in one place, organized by categories. It's natural to want to use that base for email campaigns: news for customers, an invitation for prospects in a given region, a notice for everyone who bought a certain product.
Dolibarr has its own module for this, EMailing. It handles small, occasional sends well. As volume grows, though, limits appear, and they come not from the ERP but from the way bulk email works today. This article covers both sides.
What the EMailing module does well
- It lives inside the ERP: you create the email under Tools → EMailings, with no extra system.
- It uses the data you already have: recipients come from ready-made lists such as third-party contacts, members and users, plus files and manually entered addresses.
- It personalizes: variables such as
__FIRSTNAME__,__LASTNAME__and__OTHER1__to__OTHER5__go into the text. - It has a validation flow: the person in charge reviews the content, sends a test to themselves and only then validates the send.
- It shows results per recipient: who received it and who got an error.
To tell a handful of customers that you've moved, it's enough.
Where the difficulties begin
Sending in batches
From the web interface, Dolibarr sends one batch at a time, usually 50 emails (the limit is the MAILING_LIMIT_SENDBYWEB parameter), and you have to repeat the command for the next batch. For larger lists, the recommendation is the command-line script mailing-send.php, scheduled on the server, which already calls for someone technical.
Delivery depends on your mail server
EMailing sends through the server configured in Dolibarr: your company mailbox or an SMTP service you pay for. That's where the biggest risk lies. Company email providers usually have hourly or daily sending limits and weren't built for campaigns. If the list has many non-existent addresses or people who report spam, your domain pays the price, including for everyday emails such as quotes and invoices.
No list cleaning and no per-provider pacing
An ERP database piles up years of records: mistyped emails, contacts who left the company, domains that no longer exist. The module sends to all of them. It also doesn't pace sends per destination, and Gmail and Outlook are suspicious of sudden spikes. We explain these effects in Why do my emails go to spam.
New provider requirements
Since 2024, bulk senders to Gmail and Yahoo need full domain authentication (SPF, DKIM and DMARC), one-click unsubscribe in the message header and a low complaint rate, and Microsoft followed suit in 2025. All of this can be built around Dolibarr, but it takes configuration on the mail server and in DNS. Our guide SPF, DKIM and DMARC made simple shows what's needed.
Segmentation and tracking
Building an audience like "customers in São Paulo in the Manufacturing category, minus anyone who got the previous campaign" and then seeing who opened and clicked takes effort inside the module, so the temptation is to export a spreadsheet to another tool. That creates two databases: someone who unsubscribes in the tool is still "allowed" in Dolibarr, and the next send from the ERP may ignore their request, which is also a data protection problem.
How to go further without leaving Dolibarr
The answer isn't to abandon the ERP, but to connect Dolibarr to an email tool that reads contacts straight from it, through the REST API Dolibarr already provides. That way:
- Dolibarr stays the official record: no more exporting and importing spreadsheets;
- the tool handles the hard part: authentication, list cleaning, sending pace, unsubscribes and reports;
- what happens in the campaign flows back to Dolibarr.
When choosing, check whether the tool uses Dolibarr categories in its filters, writes unsubscribes back to the contact and respects people who already asked not to receive emails.
How Hermod does it
Hermod was built with Dolibarr in mind. You enable the REST API in Dolibarr, generate a key for an integration user and connect in a few minutes (step by step in Contact sources). In each campaign, you build the audience with the ERP's own filters: company and contact categories (to include or exclude), customers, prospects, company type, city, country and creation date. Before every send, Hermod removes problem addresses and anyone who has unsubscribed.
Emails go out signed with your domain, at the pace each provider accepts, without going through your everyday mail server. And the return path closes the loop: anyone who unsubscribes is flagged in Dolibarr as "do not email", and you can log sends, clicks and unsubscribes in the agenda of each contact's record. Your sales team sees everything without leaving the ERP.