<domain>
The substitutions the node expands in the command line and in the file-destination path are lowercased by default. This line cancels the lowercasing — but only for two of them.
$to and $from — yes, their case can be preserved. These are the full envelope addresses, and in rare cases the receiving side is case-sensitive.
$user and $domain — no, they are always lowercased. The manual explains why: they are used to make directory and file names, and on case-sensitive file systems Example.com and example.com are two different directories.
The default is almost always right. Lowercase is what both the file system and address comparison need.
Enable it only for a specific requirement. A handler that needs the original case of the envelope address is rare, and it is usually better to teach it to compare case-insensitively.
It will not affect directory names. $user and $domain are lowercased with any value.
# the handler needs the original case of the envelope address <domain bounces.example.com> type pipe command "/opt/bounce/parse --to \"$to\" \"$user\"" macro-variables-preserve-case true</domain>
what people get wrong and how it ends2 mistakes▶
§ 3.3.10.111.2
our experience
1 relation
pmta show settings bounces.example.com/vmta1 | grep -i macro-variables
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.