<source>set by the Hub
The value is a comma-separated list of names, not a single name: the line is not repeated, it is extended.
Headers are removed at delivery, not when the message is queued — the manual says so directly. That is, in the spool the message is stored intact, and the removed headers can be seen until it goes out.
An empty string (“”) erases the list inherited from a broader block. This is the only way to cancel inheritance: listing names does not cancel it, it only adds.
The directive also works on the recipient side. The manual says it can be written in <source> or in <domain>, and it does not have to be defined in both. The chapter 15 index knows only the source position — but the recipient settings output (§ 6.3.16) prints remove-header “” among the others, which confirms that the recipient form exists, it is just undocumented.
Check this with a message to your own mailbox, not by reasoning: a broken signature looks worse to the receiver than an extra service header.
These are sending platform headers: from them the recipient (and the receiver) can tell exactly which product assembled the message, and X-Priority is also considered a sign of bulk mail.
The Hub removes the reception mark not with this line but with add-received-header false — it turns adding off entirely, so there is nothing to clean out through the list.
What to set. The list is assembled from whatever reveals your infrastructure:
| Value | When |
|---|---|
| do not write it | the submitting platform sets no headers of its own |
| a comma-separated list of names | the usual case: clean out the traces of the sending platform |
| “” | cancel the list inherited from a broad block |
It is not worth putting headers covered by the signature into the list — and especially not the ones the engine always signs.
# this is how the Hub writes the configuration — sending platform headers <source 0/0> remove-header X-PreviewEmail,X-Mailer,X-Mailer-RecptId,X-Mailer-Sent-By,X-Priority</source>
what people get wrong and how it ends3 mistakes▶
§ 3.3.10.26
§ 3.3.7.9
§ 3.3.7.9
1 relation
grep -n 'remove-header' /etc/pmta/config /etc/pmta/virtualhost.txt
3 articles
◇A license for a fleet, not for a serverThe license is not bound to a server: it is installed on as many machines as the instance limit allows, and the nodes send volume statistics to the vendor every hour.◇How the node selects a source and combines its settingsA connection falls under all source blocks whose addresses cover it, and they act merged — the narrow one overrides the wide one; named blocks are attached only by direct reference.◇Address lists — named and unnamedA list of addresses, domains, patterns or hashes; a named one is attached by directives such as suppression, an unnamed one lives inside an inbound mail processor.