The values of the message headers selected in the accounting setup — one column for each.
Only what is named gets written: a header is specified in record-fields as header_NAME; complaint records already have header_From, header_Return-Path, header_X-Job and header_Subject by default. The field set is defined in the accounting block, and fields are worth adding deliberately: there are as many delivery records as delivered recipients, and every extra column is multiplied by that volume.
A way to carry into accounting mailing data the engine does not have: a campaign label, a segment, anything.
Where the field exists and whether the star includes it:
| Record type | In the star |
|---|---|
| d — delivery | no |
| b — bounce | no |
| t — temporary failure | no |
| r — reception | no |
| f — complaint | only From, Return-Path, X-Job, Subject |
In a shared file an empty value comes in two kinds: the line has no data — or the field is not selected for its record type.
<acct-file /var/log/pmta/acct.csv> record-fields d *, header_Message-Id</acct-file>
0 relations
head -1 "$(ls -t /var/log/pmta/acct-*.csv | head -1)" | tr -d '\r' | tr ',' '\n' | grep -n '^header_'