critical
The dangerous half of address management, and the manual describes it precisely. The removal itself is simple: delete or comment out the definition and reload the configuration. The connection overlap is the same as when changing an address.
What matters is something else: what happens to messages that have already chosen this sending address. They bounce. They are not deferred and do not leave through another stream — they bounce, with their own delivery code 5.3.5 (no such virtual MTA).
The manual separately distinguishes this code from a similar one. 5.5.0 specified Virtual MTA ‘…’ does not exist is a refusal at submission, when a message is only being put on the node with a header naming a nonexistent sending address. Two codes, two different moments, and confusing them means looking for the cause on the wrong side.
The bounce originates on our node. It says nothing about the recipient, and the bounce classifier must not add such addresses to any suppression lists.
The recipe has no values — it has steps. Only one thing is decided here: what to do with the rest of the queue.
| Decision | How | Cost |
|---|---|---|
| let it finish | stop submission and wait for the queue to drain | time; the address is still occupied |
| move it by rerouting | reroute-to-virtual-mta to another sending address | messages will leave from a different address than intended |
| change the address instead of removing | the change recipe — the queue is preserved | the sending address name stays in the configuration |
| accept the loss | remove right away | messages bounce; the classifier must not treat this as the recipient’s fault |
# removal is a configuration edit, not a command # <virtual-mta shop-example-com> # smtp-source-host 203.0.113.10 shop.example.com # </virtual-mta>
what people get wrong and how it ends3 mistakes▶
§ 9.5.2
§ 9.5.2
our experience
3 relations
pmta show queues */shop-example-com
3 articles
◇The regular expression dialectConfiguration regular expressions are Perl-compatible, based on the PCRE library: that is how sending address selection, reply rules, bounce categories, address lists and signing headers are written.◇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.◇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.