Global
The line sets the domain the engine appends to an address whose domain consists of a single part — user@host instead of user@host.example.com.
Completion applies to addresses from the SMTP conversation — MAIL FROM and RCPT TO — and works only when completion itself is enabled: auto-qualify-domain. Its default is true.
The suffix has no default. If it is not set, completion uses the machine’s own name: on the node mail.foo.com the address user@host becomes user@host.foo.com.
The second half is worse: completion is enabled by default, and with it the typo user@gmail stops being an error. It turns into an existing address — of your domain or the provider’s — and the message goes to the wrong place. No bounce, no log entry.
Hence the rule: either set the suffix deliberately, or turn completion off altogether.
What to set. What needs deciding is not the suffix but whether completion is needed:
| Value | When |
|---|---|
| turn completion off | the submitting side always gives a full address — our case |
| your own suffix | local old-style scripts submit, and addresses without a domain are legitimate |
| do not write it with completion on | the worst option: the suffix is taken from the machine name chosen by the hosting provider |
The third row is not a recommendation: that is how it was for us until Aug 29, 2026, when completion was turned off.
# either set the suffix deliberately, or turn completion off domain-suffix bounce.example.com <source 0/0> auto-qualify-domain true </source>
what people get wrong and how it ends2 mistakes▶
§ 3.3.1.34
our experience
1 relation
grep -n '^domain-suffix\|auto-qualify-domain\|^host-name' /etc/pmta/config /etc/pmta/virtualhost.txt hostname -f
3 articles
◇How a message gets into the engineSix described submission methods: extended SMTP, four language bindings and a directory the node watches on disk.◇Who is allowed to submit mail and for whom to accept itOut of the box, the node accepts submission only from the machine itself; two different questions — “who can send through us” and “for whose addresses we accept mail” — are answered by different directives.◇Headers the sender uses to control deliverySix control headers let the submitting side choose a stream, tag a message with a job, set signing options and the key, the envelope identifier and the schedule; each is allowed separately and per source.