back to

Bounces not arriving in pop mailbox


I have successfully set up phplist on a shared host (transip) and everything seems to be working fine except for bounces.

I’ve created a test subscriber with an email address known to bounce (

When I send a test campaign I do see it arriving at another test subscriber which I do have access to.

When I check the pop mailbox for bounces, I do not see any. When I email the above address for testing bounces directly I do get a bounce reply.

Below is my config file. Any suggestions for what I might try to fix this?



* ==============================================================================================================
* The minimum requirements to get phpList working are in this file.
* If you are interested in tweaking more options, check out the config_extended.php file
* or visit
* ** NOTE: To use options from config_extended.php, you need to copy them to this file **


// what is your Mysql database server hostname
$database_host = 'localhost';

// what is the name of the database we are using
$database_name = 'mydomain_com_phplist';

// what user has access to this database
$database_user = 'mydomain_com_phplist';

// and what is the password to login to control the database
$database_password = 'mypassword';

// if you have an SMTP server, set it here. Otherwise it will use the normal php mail() function
//# if your SMTP server is called "" you enter this below like this:
//#     define("PHPMAILERHOST",'');

define('PHPMAILERHOST', '');

// if TEST is set to 1 (not 0) it will not actually send ANY messages, but display what it would have sent
// this is here, to make sure you edited the config file and mails are not sent "accidentally"
// on unmanaged systems

define('TEST', 0);

// if you change the path to the phpList system, make the change here as well
// path should be relative to the root directory of your webserver (document root)
// Warning: Do not change this after installation. You can only change this before you
// install and initialise phpList.
$pageroot = '';


* Settings for handling bounces
* This section is OPTIONAL, and not necessary to send out mailings, but it is highly recommended to correctly
* set up bounce processing. Without processing of bounces your system will end up sending large amounts of
* unnecessary messages, which overloads your own server, the receiving servers and internet traffic as a whole


// Message envelope.

// This is the address that most bounces will be delivered to
// Your should make this an address that no PERSON reads
// but a mailbox that phpList can empty every so often, to process the bounces

$message_envelope = '';

// Handling bounces. Check README.bounces for more info
// This can be 'pop' or 'mbox'
$bounce_protocol = 'pop';

// set this to 0, if you set up a cron to download bounces regularly by using the
// commandline option. If this is 0, users cannot run the page from the web
// frontend. Read README.commandline to find out how to set it up on the
// commandline

// when the protocol is pop, specify these three
$bounce_mailbox_host = '';
$bounce_mailbox_user = '';
$bounce_mailbox_password = 'mypassword';

// the "port" is the remote port of the connection to retrieve the emails
// the default should be fine but if it doesn't work, you can try the second
// one. To do that, add a # before the first line and take off the one before the
// second line
// $bounce_mailbox_port = '110/pop3/notls';
// $bounce_mailbox_port = "110/pop3";

// it's getting more common to have secure connections, in which case you probably want to use
$bounce_mailbox_port = "995/pop3/ssl/novalidate-cert";

// when the protocol is mbox specify this one
// it needs to be a local file in mbox format, accessible to your webserver user
// $bounce_mailbox = '/var/mail/listbounces';

// set this to 0 if you want to keep your messages in the mailbox. this is potentially
// a problem, because bounces will be counted multiple times, so only do this if you are
// testing things.
$bounce_mailbox_purge = 1;

// set this to 0 if you want to keep unprocessed messages in the mailbox. Unprocessed
// messages are messages that could not be matched with a user in the system
// messages are still downloaded into phpList, so it is safe to delete them from
// the mailbox and view them in phpList
$bounce_mailbox_purge_unprocessed = 1;

// how many bounces in a row need to have occurred for a user to be marked unconfirmed
$bounce_unsubscribe_threshold = 5;

// choose the hash method for password
// check the extended config for more info
// in most cases, it is fine to leave this as it is
define('HASH_ALGO', 'sha256');


I solved this by configuring a custom smtp account for sending messages as described in config_extended.php.

Edit: Not quite solved—the bounces arrive in the mailbox for the address I’m sending from ( in stead of the address configured for receiving bounces (

I do see the bounce address listed in the full header of the email sent out. But apparently it isn’t used by whomever is receiving the message.

I guess I can solve this by using the same address for both sending newsletters and receiving bounces. But I would say this is a bug of some sort?


You might need to use the listbounces@ address for the smtp connection.You can still use the lists@ address as the phplist From address though.


So that’s the ‘from’ address in the admin settings screen, right? Default for 'From:' in a campaign under campaign settings?

I just decided to try that, it doesn’t work. The bounces don’t arrive in the correct mailbox in that case. So I guess the ‘from’ address needs to be the ‘bounces’ address as well. Weird, but workable.