<acct-file>
The line replaces the local part of the address — everything before the at sign — in all records of this file, in receiver responses and in VERP-form sender addresses. The default is retain, that is, change nothing.
There are five methods, and they fall into two kinds:
| Value | What it does | Can records be matched |
|---|---|---|
| retain (default) | nothing | — |
| redact “X” | replaces with a placeholder, … by default | no |
| siphash “key” | a fast keyed hash | yes |
| siphash-hexkey | the same, hexadecimal key | yes |
| hmac-sha256 “key” | a cryptographically strong keyed hash | yes |
| hmac-sha256-hexkey | the same, hexadecimal key | yes |
The difference between a placeholder and a hash is fundamental. A placeholder erases the address for good: two records about the same recipient become indistinguishable. A hash preserves sameness — it shows that this is the same person — and makes it possible to find their records by computing the hash of a known address with the pmta digest command.
The key requirements differ. A SipHash key is no longer than 16 bytes, and the engine pads a short one with zeros. For HMAC-SHA256 at least 32 bytes are recommended: with a shorter one the engine will warn but accept it.
The line will be needed where a node serves other people’s mailings and personal data requirements are stricter than ours. Then the right choice is hmac-sha256 with a long key: counting analytics is preserved, while finding a specific address requires knowing both the key and the address itself.
The choice depends on whether matching will be needed later:
| Value | When |
|---|---|
| retain (default) | your own mailings, access to the node is restricted |
| hmac-sha256 “long key” | personal data requirements, matching is needed |
| siphash “key” | the same, but the accounting volume is large and speed matters |
| redact | accounting is handed outside and matching is not needed at all |
The key is stored where other secrets are, and it is not changed without a reason.
# accounting without addresses, but with matching: a hash with a long key <acct-file /var/log/pmta/acct.csv> records d, b privacy-policy hmac-sha256 "KEY-32-BYTES-OR-LONGER"</acct-file>
what people get wrong and how it ends3 mistakes▶
our experience
our experience
§ 3.3.11.16
3 relations
head -3 "$(ls -t /var/log/pmta/acct-*.csv | head -1)"
3 articles
◇The vendor's analytics — and what leaves the node for itA paid service that receives the node’s accounting data and returns analytics, a health score and a spam trap report; it is enabled by scope and stays off until its block exists.◇Exposing metrics over SNMPThe node can expose its metrics over SNMP — a second way of monitoring besides the web monitor.◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.