A complaint report was received and parsed by the configured processor.
The record type letter is f. It comes first in the line, and that is how the parser tells one type from another.
We do have such records: the complaint processor on the node catches fbl@fbl.<domain>, and the records go via webhook to the Hub together with the Feedback-ID header.
In the Hub they end up in the fleet panels, in the health score and in the warm-up counters.
The conditions outside the node: an MX record for fbl.<domain> pointing to the node and a feedback loop with the provider registered for this address. Without them there will be no records, even though the processor is configured.
Which question this record answers:
| Question | Is it this record |
|---|---|
| the recipient complained | yes |
| how many messages in total | only together with the other types |
| why it happened | look at the reply text, not at the record type |
Record types are enabled and disabled in the accounting block. A disabled type does not disappear from a report — it disappears from the data, and the absence of events becomes indistinguishable from there genuinely being none.
# the first letter of the line is the record type f,2019-02-08 21:53:41+0000,...
2 relations
grep -c "^f," /var/log/pmta/acct-*.csv cut -d, -f1 /var/log/pmta/acct-*.csv | sort | uniq -c
3 articles
◇Complaints parsed by the node — and they are parsed secondMail that arrives at an address from the configured list is parsed as a complaint report; the parsing order matters — the complaint processor runs after the bounce processor.◇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.◇The watchdog that restarts the engineKeeps an eye on the engine and brings it back up after a crash by itself, sending a crash report to the postmaster address.