critical
Some bounces arrive not in the conversation with the receiving server but later, as a separate message. The <bounce-processor> processor recognizes such messages at the addresses on its list and writes rb accounting records — a bounce — and rs — other status reports.
A parsed message can be discarded or delivered onward: deliver-matched-email and deliver-unmatched-email decide the fate of recognized and unrecognized messages. Changing the list requires a service restart.
Order matters: this processor handles mail before the complaint processor. If an address matches both and unrecognized mail is not delivered, the complaint never reaches <feedback-loop-processor> — the address lists are better kept disjoint.
Processor settings:
| Setting | What it decides |
|---|---|
| address list | which messages to parse as reports |
| deliver-matched-email | whether to deliver recognized ones; no by default |
| deliver-unmatched-email | whether to deliver unrecognized ones; yes by default |
For precise accounting the manual advises a unique return address per message rather than a shared bounce@.
<bounce-processor> deliver-matched-email no deliver-unmatched-email no <address-list> address /^bounce@bounce\./ </address-list> </bounce-processor>
3 relations
grep -h '^rb,' /var/log/pmta/acct*.csv | tail -5
3 articles
◇The bounce category in accounting — configurable, not vendor-fixedThe bounceCat string in every accounting record comes from a pattern list that can be extended with your own rules and your own category names.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Address lists — named and unnamedA list of addresses, domains, patterns or hashes; a named one is attached by directives such as suppression, an unnamed one lives inside an inbound mail processor.