Skip to content
Facteur
FRGet started

An inbox does not have one address, it has infinitely many

Local-part subaddressing, what it makes possible in tests, and what the ingester refuses.

An inbox does not receive on one address: it receives on a whole domain.

anything@<inbox-identifier>.inbox.facteur.eu

Everything before the at sign is yours. qa@, customer-42@, signup+3f9a@, signup-2026-08-07@: all four land in the same inbox, and every message keeps the exact address it was sent to, in its to field.

Why this is the property that matters

A test suite running in parallel has a problem before it has a tool: two concurrent runs sign two accounts up, and both confirmation emails land in the same place. You then have to guess which one is yours — by subject, by timestamp, by a sleep.

With a unique local part per run, the question disappears:

signup+<run-id>@ab12cd34.inbox.facteur.eu

Each test reads its own message by filtering on to, with no ordering, no arbitrary wait, and no inbox to create and tear down every time.

What the ingester accepts, and what it refuses

CaseAnswer
Known inbox, quota availableAccepted, stored, parsed
Unknown inboxSMTP 550 — no inbox is ever created on the fly
Monthly quota exceededSMTP 5.7.x, and the message is neither stored nor parsed
Recipient outside the inbox domainRefused: we relay nothing

We are not a relay. A server that accepts mail for a recipient it does not know ends up on blocklists, and takes every customer’s reception down with it. The refusal is therefore blunt and immediate.

The inbox domain is separate from the product domain

Inboxes live under inbox.facteur.eu, never under the site’s domain. This is deliberate: the sender reputation of a domain that receives test mail has nothing to do with the one that sends our own email, and mixing them would make each depend on the other.

How many inboxes

That is a plan limit, counted per organization rather than per workspace — see quotas-et-retention. Subaddressing exists precisely so that this limit rarely gets in the way: one inbox per test suite is almost always enough, and runs are told apart by the local part.