Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
Home
Knowledge base
Knowledge base
PMTA knowledge base
›
Theme
Bounces and complaints
entries in this theme: 71
bounce-category-patterns
<domain>
Directive
Puts your own reply parsing ahead of the general one — without changing whether the message bounced.
bounce-upon-5xx-greeting
<domain>
set by the Hub
Directive
The vendor default is yes, and one misconfigured server in the MX list is enough to burn the queue.
bounce-upon-no-mx
<domain>
set by the Hub
Directive
It accepts more than yes and no: an interval gives the domain time during which the node can try the address directly.
deliver-unmatched-email
<feedback-loop-processor>
set by the Hub
Directive
What to do with a message the processor did not recognize; delivers by default, and it is also the condition for forwarding.
deliver-unmatched-email
<bounce-processor>
set by the Hub
Directive
What to do with a message the processor did not recognize; delivers by default, and it is also the condition for forwarding.
forward-unmatched-to
<feedback-loop-processor>
Directive
The address an unrecognized message goes to; the line is repeatable and requires delivery of unrecognized mail to be allowed.
forward-unmatched-to
<bounce-processor>
Directive
The address an unrecognized message goes to; the line is repeatable and requires delivery of unrecognized mail to be allowed.
hashed-address
<address-list>
Directive
The address is lowercased, hashed with SHA256 and encoded as BASE64URL; the engine hashes the address being checked and compares the hashes.
smtp-553-means-invalid-mailbox
<domain>
set by the Hub
Directive
A guess in place of what the receiver left unsaid — and whether the address ends up on the blocklist depends on it.
smtp-pattern-list
<domain>
set by the Hub
Directive
Attaches a named pattern list to connections with the recipient domain; it is used to parse its SMTP responses and assign actions.
suppression-lists
<virtual-mta>
Directive
The same line as in a source, but here there is no choice — the message is always accepted, queued and bounced.
suppression-lists
<source>
Directive
Attaches one or more named address lists; a recipient on a list is rejected at submission or bounced later, depending on how invalid recipients are accepted.
verp-default
<source>
Directive
Enabling on the submission side: it applies to everything submitted through this source.
address
<address-list>
set by the Hub
Directive
Accepts three forms — a full address, a bare local part or a regular expression in slashes.
address-file
<address-list>
Directive
Includes a file where each line holds a full address or a bare local part.
body-pattern-file
<email-patterns>
Directive
A regular expression with named groups that pulls accounting fields out of the body of a non-standard report; the line is repeatable.
bounce-upon-transfer-failure
<domain>
Directive
A choice between the risk of a duplicate at the recipient and the risk of not delivering the message at all.
deliver-matched-email
<feedback-loop-processor>
set by the Hub
Directive
What to do with a recognized message after parsing: deliver it to the recipient or discard it; discard by default.
deliver-matched-email
<bounce-processor>
set by the Hub
Directive
What to do with a recognized message after parsing: deliver it to the recipient or discard it; discard by default.
domain
<address-list>
Directive
One line instead of listing addresses — all recipients of this domain get on the list.
forward-errors-to
<feedback-loop-processor>
Directive
An address for messages the processor could not parse; the line is repeatable.
forward-errors-to
<bounce-processor>
Directive
An address for messages the processor could not parse; the line is repeatable.
hashed-address-file
<address-list>
Directive
Includes a file where each line is the hash of a whole address; there is not a single readable address in the file.
suppress-local-dsn
<source>
set by the Hub
Directive
Turns off bounce, delay and delivery report messages for submission from this source; accounting records are written as usual.
bounce-upon-pix-transfer-failure
<domain>
Directive
A narrow case of the general line: it fires if the receiver’s greeting contains at least ten asterisks.
custom-dsn-from-header
Global
Directive
Sets the report sender as a string without substitutions; a newer line with the same purpose can substitute values from the original message.
dsn-failed-body-template-from
Global
Directive
The path to the report body template file; nine values from the original message are substituted in it — from the node name to the receiver’s reply.
dsn-failed-from-template
Global
Directive
Sets the sender of the generated report with substitutions from the original message; an older line with the same purpose does not support substitutions.
dsn-failed-subject-template
Global
Directive
Sets the subject of the generated report with substitutions from the original message; the set of substitutions is shared with the body template.
dsn-format
<domain>
Directive
The second value returns one part instead of the full report — the delivery status, as plain text — so that the report gets through mail filters that cut attachments.
dsn-return-default
<source>
Directive
The default for the RET parameter, with which the sender asks to return the whole message or only the headers in the report; the plain-text format cancels this line.
notify-of-delay-every
<domain>
Directive
The check interval for delay notifications the submitting side requested at submission; the value never turns them off for this receiver.
replace-smtp-421-service-response
<domain>
Directive
Replaces the text after the 421 code with “service unavailable”, so that addresses from someone else’s reply do not get into the bounce report; pattern-based parsing keeps working.
deliver-email
<feedback-loop-processor>
deprecated
Directive
One line decided the fate of both recognized and unrecognized messages; replaced by two separate ones.
deliver-email
<bounce-processor>
deprecated
Directive
One line decided the fate of both recognized and unrecognized messages; replaced by two separate ones.
deliver-local-dsn
<domain>
deprecated
Directive
Deprecated directive: it turned off report messages by sender domain; replaced by a setting in the source block.
How the node responds to the receiving server's words
critical
Mechanism
Matches SMTP replies against regular expressions and changes the queue mode on a match — the very trigger that all of the backoff mode machinery waits for.
Two attachment points — and two different behaviors
critical
Mechanism
A list attached to a source rejects the recipient at submission or bounces the message later; attached to a sending address or pool, it always accepts and then bounces.
The bounce category in accounting — configurable, not vendor-fixed
critical
Mechanism
The bounceCat string in every accounting record comes from a pattern list that can be extended with your own rules and your own category names.
Parsing bounces that arrive as messages
critical
Mechanism
Bounce reports that arrive as messages are parsed by a separate processor — and it runs before the complaint processor.
Address lists — named and unnamed
Mechanism
A 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.
Two inbound report processors and what to do with them
Mechanism
Bounces 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.
What to do with an accepted message
Mechanism
What the node does with an accepted inbound message: forwards it, writes it to a file, discards it, passes it to a program or parses it as a bounce or complaint.
Reports the engine does not understand by itself
Mechanism
Receivers that send bounces and complaints in a non-standard form are parsed with custom patterns; the extracted fields go into accounting on a par with the usual ones.
Which outcomes produce a report — each recipient decides
Mechanism
For each recipient separately a report on success, failure, delay, any combination of them or nothing is requested; the default is failure only.
What to return in a bounce report
Mechanism
What to enclose in a bounce report: the whole message or only its headers.
A return address with the recipient written into it
Mechanism
The bounce arrives at a unique address, and there is no need to parse its content.
<bounce-processor>
Configuration block
The block enables parsing inbound messages for bounces; it catches them by a nested address list and writes accounting records of type rb.
<feedback-loop-processor>
Configuration block
The block enables parsing inbound messages for complaints; it catches them by a nested address list and writes accounting records of type f.
<smtp-pattern-list>
Configuration block
Patterns matched against receiver responses — the very trigger that backoff mode reacts to.
<address-list>
Configuration block
A named list is attached by its name; an unnamed one lives inside a bounce or complaint processor and selects mail for parsing.
<email-patterns>
Configuration block
A block with pattern files, nested inside a bounce or complaint processor; it has two lines.
Address lists through the configuration API
critical
API endpoint
Creates, reads, extends and deletes address and domain lists — for suppression, for example — without editing files.
The receiver is misconfigured
Error code
The bounce is caused by the remote side’s configuration, not ours.
Connection problem
Error code
The connection to the receiver failed or was broken.
The domain does not exist
Error code
The recipient’s domain was not found or does not exist. The bounce is about the right-hand part of the address, not the left.
The address does not exist
Error code
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.
Held back over content
Error code
Rejected because of what is inside the message: a link, an attachment, markup.
The mailbox is disabled or expired
Error code
The mailbox once existed, but it was closed, frozen or expired. Formally the address exists, practically it is dead.
A problem with the sender domain
Error code
The bounce is caused by our domain’s records: they are missing or wrong.
The bounce deadline has expired
Error code
The message was not delivered within the allotted time and was bounced on deadline.
The host connected and stays silent
Error code
The connection was established, no reply followed.
Other
Error code
A bounce that did not fit any category.
Rejected by the receiver's rules
Error code
The receiver refused by its own rules — not over content and not over the address.
A breach of the conversation order
Error code
A syntax error or a wrong command sequence.
The mailbox is full
Error code
The recipient has run out of space. The mailbox is alive, there is just nowhere to put the message.
The receiver refused to relay
Error code
The remote server refused to accept the message for further relaying.
A route could not be built
Error code
Mail to the recipient’s domain cannot be routed.
Held back as spam
Error code
The message was rejected on spam signals. The bounce is not about the address — it is about us and about the content.
A virus was found
Error code
The receiver considered an attachment or a link malicious.
Bounces according to the service
Monitor screen
The SparkPost Signals report on bounces for a selected period — in SparkPost’s classification, not in the engine’s categories.