<source>
The default is false. With true the engine replaces the existing Message-Id with its own. If the message has no such header, the line does nothing — adding one is a different directive, add-message-id-header.
The uniqueness of the new value across servers rests on the same host-id as when adding.
This does not surface at once — only at the moment a complaint arrives and someone tries to find the message by it.
What to set. The case for true is narrow:
| Value | When |
|---|---|
| false (default) | almost always: the sender’s identifier is its thread to the message |
| true | the submitting platform sets identifiers that repeat or contain too much about your infrastructure |
The second happens with old platforms that put the internal server name into the identifier. But even there it is more honest to reach an agreement with the platform than to cut the link between its database and the delivered message.
# replacement makes sense only together with an explicit node number host-id 7 <source 10.0.0.0/24> replace-message-id-header true</source>
what people get wrong and how it ends2 mistakes▶
our experience
§ 3.3.7.5
1 relation
grep -n 'replace-message-id-header\|^host-id' /etc/pmta/config /etc/pmta/virtualhost.txt
3 articles
◇How a message gets into the engineSix described submission methods: extended SMTP, four language bindings and a directory the node watches on disk.◇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.◇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.