phpList is sending very slowly for some reason. I don’t have any throttle settings in my config.php and in the past, e-mails are sent quite quickly. Below is the message the queue is showing between each e-mail:
It took 10.2256600000 seconds to send
I’m also receiving a bunch of e-mail like this:
The following events occured while processing the message queue:
[Mon 3 Jul 2023 17:22] [172.56.93.57] This batch will be 998 emails,
because in the last 30 seconds 2 emails were sent
[Mon 3 Jul 2023 17:22] [172.56.93.57] select id from phplist_message
where status not in ("draft", "sent", "prepared", "suspended") and
embargo <= now() order by entered limit 5 [Mon 3 Jul 2023 17:22] [172.56.93.57]
User select query select distinct [u.id](http://u.id/) from phplist_listuser
as listuser inner join phplist_user_user as u ON [u.id](http://u.id/) = listuser.userid inner join phplist_listmessage as listmessage ON listuser.listid = listmessage.listid
left join phplist_usermessage as um ON (um.messageid = 18 and
um.userid = listuser.userid) where listmessage.messageid = 18 and
listmessage.listid = listuser.listid and [u.id](http://u.id/) = listuser.userid and um.userid
IS NULL and u.confirmed and !u.blacklisted and !u.disabled
[Mon 3 Jul 2023 17:22] [172.56.93.57]
Here is a copy of my config.php:
<?php
/*
* ==============================================================================================================
*
*
* 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 http://resources.phplist.com/system/config
*
* ** NOTE: To use options from config_extended.php, you need to copy them to this file **
*
==============================================================================================================
*/
//error logging
define('VERBOSE', true);
// what is your Mysql database server hostname
$database_host = '127.0.0.1:3306';
// what is the name of the database we are using
$database_name = 'bitnami_phplist';
// what user has access to this database
$database_user = '* removed *';
// and what is the password to login to control the database
$database_password = '* removed *';
// if you have an SMTP server, set it here. Otherwise it will use the normal php mail() function
//# if your SMTP server is called "smtp.mydomain.com" you enter this below like this:
//#
//# define("PHPMAILERHOST",'smtp.mydomain.com');
//define('PHPMAILERHOST', 'localhost');
//define('PHPMAILERPORT',2500);
//define('PHPMAILER_SECURE',false);
define("PHPMAILERHOST",'smtp.sendgrid.net');
$phpmailer_smtpuser = '* removed *';
$phpmailer_smtppassword = '* removed *';
define('PHPMAILERPORT','465');
define('PHPMAILER_SECURE','ssl');
// 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 = 'listbounces@yourdomain';
// 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
define('MANUALLY_PROCESS_BOUNCES', 1);
// when the protocol is pop, specify these three
$bounce_mailbox_host = 'localhost';
$bounce_mailbox_user = '* removed *';
$bounce_mailbox_password = '* removed *';
// 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');
$pageroot = '/';
// SMTP settings
// $phpmailer_smtpuser = '';
// $phpmailer_smtppassword = '';
// define('PHPMAILERPORT', '25');
// define('PHPMAILER_SECURE', '');