difuzio receives mail from your mail server, applies each list's policy, fans the message out to its subscribers, then processes the bounces and complaints that come back so your sender reputation stays intact. It is designed as a modern successor to Sympa: multi-domain and multi-tenant from the first line, so a single deployment hosts as many domains, lists, owners and moderators as you need, isolated from one another.
What difuzio does
- Lists and subscriptions Subscribe by mail or from the web, double confirmation, moderation of requests and of first posts, CSV import, public or members-only archives, periodic digests.
- Deliverability A per-subscriber VERP return path, fine-grained scoring of hard and soft bounces over a sliding window, ARF feedback-loop complaints, RFC 8058 one-click unsubscribe.
- Reputation protected A per-list kill switch suspends delivery automatically when the complaint or hard-bounce rate goes off the rails. Bringing the list back is a human decision, never an automatic one.
- Respect for the author When nothing needs rewriting, the message is passed through byte for byte and the author's DKIM signature survives. Otherwise the pipeline rewrites cleanly and handles DMARC alignment.
- Console and API A web administration console, a REST API described in OpenAPI 3.1, signed webhooks, and the very same business layer behind both.
- Serious operations Health probes, Prometheus metrics, systemd units, Debian packages, an audit log, and a GDPR erasure that really does walk every table.
Two ways to deploy it
- Light - SQLite and a mailbox you already have One binary, one database file, one mailbox at your hosting provider. difuzio polls that mailbox over IMAP and sends through the authenticated submission port: no database server to administer, no administrative access to a mail server, no MX record to change. SPF and DKIM are aligned by the provider, which signs on your behalf. This is the profile for a club of a few dozen members, and it goes up in an evening.
- Full - MariaDB and your own Postfix Postfix receives the mail and hands it to difuzio over LMTP, MariaDB takes the volume and allows several hosts. This profile unlocks the whole engine: mail commands, VERP return paths, automatic bounce processing, feedback-loop complaints, the reputation kill switch, throughput sized by your own sending pools. This is the profile for a hosting provider, a local authority or a federation.
| Light | Full | |
|---|---|---|
| Database | SQLite, a single file | MariaDB 10.6 or newer |
| Inbound | IMAP polling, one mailbox per list | LMTP from Postfix |
| Outbound | Authenticated submission at the provider | Local relay |
| Subscription | Web and one-click unsubscribe | Web and mail commands |
| Bounces and complaints | Dead addresses removed by hand | VERP, FBL and automatic kill switch |
| Throughput | Your mailbox quota | Your own sending pools |
| Number of hosts | One | As many as needed |
| What you must have | A mailbox and its credentials | An MTA, the DNS and the rights that go with it |
These two profiles are the proven combinations, not a constraint: the database backend and the mail path remain two independent settings, and the second one is decided list by list. A single deployment can therefore poll an external mailbox for one list and receive over LMTP for another. The core of the product - pipeline, authorisations, transformations, fan-out - is identical either way, so you start light and switch when volume demands it.
Built to last
A single binary with sub-commands, a database as the only source of truth, no message broker to operate, no dependency on an online service. The same business code runs on top of both backends.
Message bodies are written to the filesystem rather than into the database, so backups stay usable and replication does not haul your attachments around.
Getting started
- Download difuzio - signed Debian package repository, or a build from source.
- Install difuzio - prerequisites, first run, first domain.
- Features - what the engine actually does, in detail.
- Documentation - subscriber guide and operator manual (in French).
- Source code - public repository, issues and contributions.