It is available for submission via the API, for batch submission from a directory and over SMTP wherever merging is enabled. It sits at the top of the precedence order — which means it is the only selection method that cannot be overridden by a node setting.
And at the same time the least noticeable of the six. A header is visible in the message, an API call in the submission log, a rule in the configuration. A merge variable lies in the content data, where people look last when investigating an incident.
Its granularity is its own. A header and a method call act on the whole merge job; a variable acts per recipient, because merge data is recipient data.
The mechanism has no values of its own: the value is a stream or pool name in the merge data. On the node side only one thing is configured — whether merging is allowed for this source at all (allow-mailmerge). There are no intermediate modes: you cannot allow merging and forbid stream selection through it.
# merging is allowed — and with it the sender gets the top rung <source 10.0.0.0/24> allow-mailmerge yes process-x-virtual-mta yes default-virtual-mta mta-hub-pool </source>
what people get wrong and how it ends2 mistakes▶
§ 9.4
§ 9.4
1 relation
pmtaacctfind --output csv[vmta,jobId,rcpt] /var/log/pmta/acct-*.csv
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.