Globalset by the Hub
The line names a recipient address for which mail is accepted regardless of who submits it. The value can be either a specific address or a regular expression. The directive is repeated — one line per rule.
This is an acceptance mechanism. Like the neighboring relay-domain, it is about the right to deliver a message to you, not the right to send through you. The manual says the same: it is useful mainly where the node handles inbound mail.
This is exactly how bounces, complaints and service mail reach the node, to be parsed by processors later.
The difference from accepting by domain is precision: a domain accepts mail for any address within it, a pattern only for matching ones.
The practical conclusion: make service addresses unguessable, and patterns narrow. A rule like /^bounce@/ opens bounce@ in all your domains at once; /^bounce@bounce\./ only in the service subdomain.
/^fbl@fbl\./ — accepting ARF complaints at an address in the service subdomain. /^bounce@bounce\./ — accepting asynchronous bounces where return address rewriting directs them. /^(dmarc|postmaster|abuse)@/ — role addresses.
The third rule did not appear right away, and the template has an explanation next to it: without it, anti-relay bounced DMARC aggregate reports with a 550 relaying denied response, and along with them service messages to abuse@ and everything written to postmaster@.
The patterns of the first two rules are narrow: they open the address only in the service subdomain, not in all of the node’s domains.
What to set. The value is an address or a pattern; what you have to choose is the width:
| Value | When |
|---|---|
| a specific address | there is one address and it will not change |
| a narrow pattern | the same address in the service subdomain of each domain |
| a broad pattern | role addresses that must work in all domains |
The third is acceptable only for addresses that must be open by standard: postmaster@, abuse@, the address for DMARC reports. Narrow everything else.
# this is how the Hub writes the base configuration — narrow patterns plus role addresses relay-address /^fbl@fbl\./ relay-address /^bounce@bounce\./relay-address /^(dmarc|postmaster|abuse)@/
what people get wrong and how it ends3 mistakes▶
our experience
our experience
§ 3.3.1.54.3
2 relations
grep -n 'relay-address' /etc/pmta/config printf 'HELO test\r\nMAIL FROM:<a@example.com>\r\nRCPT TO:<postmaster@your.domain>\r\nQUIT\r\n' | nc <node-address> 25
3 articles
◇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.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Address lists — named and unnamedA list of addresses, domains, patterns or hashes; a named one is attached by directives such as suppression, an unnamed one lives inside an inbound mail processor.