PHPList is an open-source email newsletter manager. If your PHPList installation is sending emails too slowly or messages are getting stuck in the queue, you need to adjust the throttling settings to match our server's sending limits.
Adjust these in PHPList's config.php
The main throttling controls are MAILQUEUE_THROTTLE (seconds between messages), MAILQUEUE_BATCH_SIZE (messages per batch), and MAILQUEUE_BATCH_PERIOD (seconds between batches). Set these to stay within the server's hourly sending limit.
01. Why PHPList Throttles Emails
PHPList includes built-in throttling to prevent you from overwhelming your mail server or getting your IP blacklisted for sending too many emails too quickly. On shared hosting, this is especially important because the server has per-account limits on outgoing email.
02. Throttling Settings to Adjust
Open your PHPList config/config.php file and look for these settings:
# Seconds to wait between sending each message
define('MAILQUEUE_THROTTLE', 1);
# Number of messages to send per batch
define('MAILQUEUE_BATCH_SIZE', 100);
# Seconds to wait between batches
define('MAILQUEUE_BATCH_PERIOD', 3600);
With these settings, PHPList sends 100 emails per hour with a 1-second pause between each message. This is a safe configuration for shared hosting.
For Ultra Web Hosting shared accounts, we recommend: MAILQUEUE_THROTTLE = 1, MAILQUEUE_BATCH_SIZE = 100, MAILQUEUE_BATCH_PERIOD = 3600. This keeps you well within sending limits while maintaining reasonable throughput for newsletters.
03. Ultra Web Hosting Sending Limits
Shared hosting accounts have a limit on the number of outgoing emails per hour. This prevents any single account from being used to send spam and protects the server's IP reputation for all users.
If you need to send to a large mailing list (thousands of subscribers), consider:
- Breaking sends into smaller batches over multiple hours using the settings above
- Using a dedicated email marketing service like Mailchimp, SendGrid, or Amazon SES for bulk email. These services are designed for high-volume sending and have much higher throughput than shared hosting.
- Upgrading to a VPS where sending limits can be adjusted based on your needs
04. Use SMTP for Better Deliverability
By default, PHPList uses PHP's mail() function. For better deliverability, configure PHPList to send via SMTP with authentication. In config.php:
define('PHPMAILERHOST', 'mail.yourdomain.com');
define('PHPMAILERPORT', 465);
define('PHPMAILERSECURE', 'ssl');
define('PHPMAILERUSERNAME', 'newsletter@yourdomain.com');
define('PHPMAILERPASSWORD', 'your-email-password');
Create a dedicated email account in cPanel for your newsletter sending (like newsletter@yourdomain.com) rather than using your personal email.
For more on SMTP configuration and email deliverability, see Understanding Email Authentication.
Need Help With PHPList?
If your newsletter queue is stuck or emails are not delivering, open a ticket with details about your PHPList configuration.
Open a Support TicketQuick Recap
- Set MAILQUEUE_THROTTLE to 1 second between messages
- Set MAILQUEUE_BATCH_SIZE to 100 messages per batch
- Set MAILQUEUE_BATCH_PERIOD to 3600 seconds between batches
- Configure SMTP instead of PHP mail() for better deliverability
- For large lists, consider a dedicated email marketing service
Email newsletter configuration · Last updated March 2026 · Browse all PHP Scripts articles
