Knowledge base

The mailbox is disabled or expired

inactive-mailbox
Hard — remove the address, but with caution

The mailbox once existed, but it was closed, frozen or expired. Formally the address exists, practically it is dead.

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).

It differs from the previous one in that the mailbox may come back to life: corporate addresses get restored, personal ones almost never. We count this category as hard.

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, but with caution.

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.2.1 The email account that you tried to reach is disabled
The mailbox exists but is disabled — the receiver names this separately from “no such user”.
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 inactive-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