Global
The default is true: a mail merge variable for which no value was passed expands to an empty string. The message goes out with a hole in its place.
With the value false an insert like [foo] stays in the message as is — with the brackets and the variable name.
A choice between two ways of showing an error: quiet and loud. The quiet one lets a message through with the client’s name missing; the loud one shows the recipient square brackets.
The value false is louder, but not better: brackets in a message read as a technical malfunction, and that affects the sender’s reputation worse than an omission.
The right way out is a third one, and it is not in this line: check data completeness on the submitting side. Both settings merely choose how an error that has already happened looks.
There are no recipient variables in the Hub’s messages, so there is nothing to omit: the warm-up template expands only spintax {a|b}, and unclosed brackets are checked when the message is saved.
What to set. Both settings are bad, and you choose the lesser of two evils:
| Value | When |
|---|---|
| true (default) | a person reads the message, and an omission is less noticeable than brackets |
| false | messages are checked by eye before sending, and the bracket is needed as a signal |
The second makes sense on a test mailing: there a bracket is a find, not a disgrace. On a production one the default is better.
# on a test mailing a bracket is a find, not a disgrace mailmerge-expands-undefined-variables false
what people get wrong and how it ends2 mistakes▶
our experience
§ 3.3.1.39
1 relation
grep -n 'mailmerge-expands-undefined-variables\|allow-mailmerge' /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.