back to

Problem sending emails with attachments


I have a problem and I do not know if it will be the last verification 3.3.8 and that is when I send a campaign with attachments to the fifth mail it stops and as I have the cron programmed every 10 minutes then it sends again the mail to the first 5 returning to stand. So if I do not stop the campaign, it is continuously sending the mail to the first 5 contacts on the list. I do not know if it is an error of the version or something that I have badly configured or that was not updated well in the last update that I made using the new automatic updater.
The cron instruction that I use is:

Thank you very much and greetings.


Can you share your config.php?


Thanks Angel. This is my config.php

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

// what is the name of the database we are using
$database_name = ‘databasedb’;

// what user has access to this database
$database_user = database

// and what is the password to login to control the database
$database_password = ‘xxxxxxxxx’;

// 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’, ‘’);
$phpmailer_smtpuser = ‘’;
$phpmailer_smtppassword = ‘xxxxxxxx’;

$phpmailer_smtpoptions = array(
‘ssl’ => array(
‘verify_peer’ => false,
‘verify_peer_name’ => false,
‘allow_self_signed’ => true

// 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);



  • 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 = ‘localhost’;
$bounce_mailbox_user = ‘’;
$bounce_mailbox_password = ‘xxxxxxxxx’;

// 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’);

// define the amount of emails you want to send per period. If 0, batch processing
// is disabled and messages are sent out as fast as possible
define(‘MAILQUEUE_BATCH_SIZE’, 300);

// define the length of one batch processing period, in seconds (3600 is an hour)

// to avoid overloading the server that sends your email, you can add a little delay
// between messages that will spread the load of sending
// you will need to find a good value for your own server
// value is in seconds, and you can use fractions, eg “0.5” is half a second
// (or you can play with the autothrottle below)

// if you use login, how many lists can be created per administrator
define(‘MAXLIST’, 100);


$default_system_language = “es”;

$language_module = “”;


$attachment_repository = ‘/var/www/vhosts/’;

$pageroot = ‘’;

// if you activate the check above, you can add domain names in this array for those domains
// that you trust and that can be allowed as well
// only mention the domain for each.
// for example: $allowed_referrers = array(‘’,‘’,‘’,‘’);
$allowed_referrers = array(‘’);

# test emails
# if you send a test email, phplist will by default send you two emails, one in HTML format
# and the other in Text format. If you set this to 1, you can override this behaviour
# and only have a test email sent to you that matches the user record of the user that the
# test emails are sent to
define('SEND_ONE_TESTMAIL', 0);


Maybe the server is blocking the emails with attachments? What server are you using? It is possible for you to use a workaround like Dropbox or Google Drives links?