Before you can View Bounces, you must Process Bounces.
Email messages can bounce for several reasons:
- mailbox full: the user needs to clear their email inbox. You may be able to deliver messages in a later stage.
- user/alias doesn't exist/not found: probably misspelled name in the email address, or deleted user
- mail server temporarily not available: server probably down
- mail server permanently not available: server down for a long time, or not communicating with YOUR server
- domain/tld unresolved / doesn't exist: probably misspelled domain name in the email address.
When any of these events occur, an email is usually sent to the email address defined in PHPlist by $message_envelope = "email@example.com"; in the config.php file. All these emails come from different servers, different mail programs, and in different formats and layouts: PHPlist cannot tell them apart, i.e., it can't distinguish a 'Mailbox full message' from a 'domain/tld unresolved / doesn't exist' message. That's why it uses a
bounce threshhold ($bounce_unsubscribe_treshold = 5;) in the config.php file.
When an email is received at the bounce address and is processed in PHPlist, PHPlist tries to find the email address that the bounce message refers to, and counts a 'bounce' for that user's address. When the number of consecutive counts for a given email address reaches the threshhold, PHPlist unconfirms the user. It doesn't delete or blacklist the user. By unconfirming the user, PHPlist will refuse to send it another message (unless the email address becomes confirmed again).
If you need more granularity, and want to distinguish between different types of bounces and determine what to do with them, you can enable "advanced bounce handling".
The View bounces pages will display a listing of bounces received. In most cases they will be identified for a user and a message. If you run a live system, do not delete the bounces, because the system would not be able to identify the consecutive bounces, once more bounces come back. However, with larger lists you may need to clean up the database from time to time, and delete some of the oldest bounces to save some space.
The view bounces page provides a number of options to maintain the bounces database. Most options speak for themselves:
- Delete all unidentified (> 2 months old): will delete all unidentified bounces older than 2 months.
- Delete all processed (> 2 months old): will delete all processed bounces older than 2 months.
- Delete all: this will delete all bounced messages in the database.
- Reset bounces: this will reset the bounce count to zero for all users.