Global
A node directive, not a source one. It names the stream through which messages that chose a nonexistent stream will leave — instead of rejecting them at submission.
There are two conditions, and both are required. Here — the name of the fallback stream; in the source — reject-invalid-virtual-mta set to false. The latter defaults to true, so this line alone changes nothing.
It works only at submission. The manual stipulates this separately: the mechanism does not extend to queue rerouting — neither to reroute-to-virtual-mta nor to backoff-reroute-to-virtual-mta. Rerouting to a nonexistent stream is not saved by the fallback.
What to set. The value is the name of an existing stream; it makes sense only together with the refusal turned off. The fallback stream is worth choosing by one rule: it must not be one under warm-up. Messages that land here are messages with an unknown intended destination, and putting them on an address building reputation means risking someone else’s history.
A sensible choice is the common submission pool or a separate stream on a warmed-up address, by which all such messages are easy to find in accounting later.
# both lines are needed together: the fallback stream name and the refusal turned off invalid-virtual-mta-fallback mta-hub-pool <source 10.0.0.0/24> process-x-virtual-mta yes reject-invalid-virtual-mta false </source>
what people get wrong and how it ends3 mistakes▶
§ 3.3.1.55.2
§ 3.3.1.55.2
our experience
2 relations
process-x-virtual-mta<source>Decides what to do with a message if the stream named in the header is not declared on the node. § 3.3.1.55.2backoff-reroute-to-virtual-mta<domain>They compete for the same thing: the node’s fallback address catches messages that named a nonexistent address, while the reroute moves messages of a live queue. Two substitutions in a row make analysis confusing. § 3.3.1.55.2
grep -n "invalid-virtual-mta" /etc/pmta/config
3 articles
◇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.◇Selecting a sending address by message contentRegular expressions are matched against a header, the return address or the recipient and select a sending address or assign a priority; lists can call each other.◇How a message gets into the engineSix described submission methods: extended SMTP, four language bindings and a directory the node watches on disk.