<source>
The default is false, that is, remove. The header has done its job — chosen the stream — and the recipient does not need it after that.
The line acts only as part of a pair. It makes sense only where process-x-virtual-mta is yes and the header is present in the message. Without processing the header stays in the message anyway, but for a different reason — it simply was not read.
Why keep it at all. The only practical reason is an investigation using a copy of the message taken somewhere further along the path: the stream name is visible right in the source. The price is that the recipient sees it too.
What to set. Practically always the default:
| Value | When |
|---|---|
| no (default) | always, unless there is a reason otherwise |
| yes | temporarily, during an investigation, when a copy of the message with the stream name is needed |
There is no point keeping yes permanently: the same name is in accounting, and it is easier to search there.
# for the duration of an investigation: the message will arrive with the stream name in the header <source 10.0.0.0/24> process-x-virtual-mta yes retain-x-virtual-mta yes</source>
what people get wrong and how it ends2 mistakes▶
§ 3.3.7.53
§ 3.3.7.52
2 relations
grep -n -B5 retain-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.