<source>criticalset by the Hub
The default is false, and the manual’s advice is direct: enable it for the sources you submit mail from if you want the header to select the stream.
Without the permission the miss is twofold. The selection does not work — the message leaves through whatever is assigned lower on the ladder. And the header itself stays in the message and reaches the recipient, showing them the fleet’s internal names. Stripping the header is part of the processing, not a separate action.
The permission is granted to the source as a whole. The engine cannot restrict the set of streams this sender is allowed to name.
What to set. The answer depends on exactly one thing — whether you trust the source:
| Value | When |
|---|---|
| yes | submission comes from us: the scheduler, a platform under our control |
| no (default) | someone else’s submission that must not be given the choice of address |
There is no middle option. If an outside sender does need a choice, give it with a pattern rule in <pattern-list>, where you, not they, define the “sender → stream” mapping.
# the permission is granted to the source the submission address falls under <source 10.0.0.0/24> process-x-virtual-mta yes always-allow-relaying yes </source>
what people get wrong and how it ends3 mistakes▶
§ 3.3.7.52
§ 9.4.1
§ 3.3.1.55.2
4 relations
invalid-virtual-mta-fallbackGlobalDecides what to do with a message if the stream named in the header is not declared on the node. § 3.3.1.55.2allow-empty-x-virtual-mta<source>Answers the neighboring question: whether an empty header value counts as acceptable. § 3.3.7.67
retain-x-virtual-mta<source>Acts only where the header is processed at all and present in the message. § 3.3.7.53reject-invalid-virtual-mta<source>A wrong name usually arrives in a header — which means the question arises where the header is allowed. § 3.3.7.34Selecting a sending address by message contentA step above: the message header is stronger than a pattern rule. § 3.3.7.52The stream is named by a header, if the source is allowed to do soThe permission without which the header does not work: it will not select a stream and will stay in the message. § 9.4.1
grep -n -B5 process-x-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.