Knowledge base

The address does not exist

bad-mailbox
Hard — remove the address from the database

The receiver said it has no such recipient. The most unambiguous of bounces: it is about the address, not about the message, not about us and not about the network.

Response codes — 5.X.X. The category is assigned by a pattern on the receiver’s reply text, not by the code itself: the pattern list can be extended with your own patterns and your own names (bounce-category-patterns).

The only category on which removing the address is safe almost always. It is exactly the one worth distinguishing more precisely than the others — a mistake here costs a live contact.

A category is an interpretation, not a fact. It was chosen by a pattern that matched the reply text against an expression. The same reply from another receiver may land in another category, and our own pattern would override it altogether. A decision about an address should be built on the receiver’s words, with the category read as a hint.
What the Hub does. It counts this category as hard — among those that mean “the address does not exist”. On hard bounces the address goes to the blocklist.
Recommended values

What to do with this bounce: remove the address from the database.

Question Answer
what the bounce is about the address
our axis hard
will a retry help no

Look at the reply text, not just the category — the cause is in it, while the category only sorts bounces onto shelves.

The assignment to our axis and the recommended action are ours. From the manual come the category’s definition and its response codes.
Example configuration
# the receiver's reply the category is assigned by
550 5.1.1 <user@example.com>: Recipient address rejected: User unknown
The reply the category is assigned by: the receiver says plainly that the recipient does not exist.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
▲

Common mistakes and problems

what people get wrong and how it ends3 mistakes▶

Removing an address without checking the category against the reply text

§ 12

What it costsThe category was assigned by a pattern on the text. An error in the pattern means a live address removed, and there is nowhere to get it back from: it is already on the blocklist.
How to spot itThe address database shrinks faster than real bounces explain.
How to do it rightCheck the reply text against the category, at least selectively. Your own patterns are more precise than the vendor’s where it matters.

Treating the category as final

§ 12

What it costsThe same reply from another receiver will land in another category: the patterns are shared by everyone, the receivers’ wording is not.
How to spot itA bounce with the same meaning ends up in different categories for different receivers.
How to do it rightBuild the decision on the receiver’s words, and read the category as a hint.

Not telling a bounce about the address from a bounce about the domain

§ 12

What it costsNo domain is not the same as no recipient: in the first case the whole right-hand part is wrong, in the second only the left. Writing them off the same way means losing the addresses of a domain that had a temporary problem with its records.
How to spot itAll addresses of one domain drop off at once.
How to do it rightLook at how many addresses of the domain dropped off at once: the mass scale is the sign of a domain problem, not an address problem.
Compatibility
PowerMTA 6.0
described in the manual of this version · platform: any
The vendor does not state the first version for every directive — there is no note here. The name also appears in the 5.0 edition of the manual.
How to check on the node
Where this bounce shows up:
pmta show queues --errors example.com
pmtastats bounce-categories --bounceCat bad-mailbox /var/log/pmta/acct-*.csv
The first prints the queue’s recent errors — the receiver’s words are there. The second counts how many bounces fell into this category over the accounting period.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Bounce classification