Blue planet | Mass mailling

A lot of customer are sharing the same server for hosting their Website. When someone wants to do a mass mailing, it may interfered with the proper operation of the server as well as other sites hosted in it, if everything is not executed properly. That’s why a sending mail limit (number / hour) is set to prevent any slowdown or even complete shutdown of the server. To avoid an incorrect action which may affect websites hosted onto the whole server, there’s an application called PHPList. It can be installed on any Linux hosting as long as a database is available. PHPList also allows you to fill your needs to send a mass amount of emails while respecting the established rules and ensuring the proper functionning of all the sites sharing the same server.

Reasons why a limit was set for sending email per hour

  • Prevent grabbing a spammers atentions;
  • Avoid the entire server to be penalized with anti-spam services;
  • Don’t slowdown in the delivery of legitimate emails;

It is important to check with your host the conditions laid down for sending mass email. Otherwise, your mail may not reach its destination and can be perceived as a spam.

PHPList application

The PHPList application has the ability to send personalized messages, up to 3000 per hour or 5000 non-personalized messages per hours. However, the limits set by your provider are generally lower. Inquire in advance! PHPList offers you two methods to send mass mailing without violating the limits imposed by your host:

  • Batch processing of the queue, “Batch processing”;
  • Slowing the speed of transmission: “MailQueue throttling”;

Here is the block set in the “config.php” file of the PHPList application.

Example :

# define("MAILQUEUE_BATCH_SIZE",10);
# define("MAILQUEUE_BATCH_PERIOD",1);

# define("MAILQUEUE_BATCH_SIZE",300);
# define("MAILQUEUE_BATCH_PERIOD",3600);
define("MAILQUEUE_BATCH_SIZE",0);
define('MAILQUEUE_THROTTLE',0);

Batch processing queue “Batch processing”

With this method, PHPList allows you to create two sending parameters. Both will work together jointly. This allows you to send “N” emails to every “T” seconds.

  • The amount of email to send (N = Number)
  • Sending frequency (T = Time)

Here is an example:

N est MAILQUEUE_BATCH_SIZE
T est MAILQUEUE_BATCH_PERIOD

These settings force PHPList to limit and avoid sending all messages at once.

Example :

# Send a batch of 360 messages per batch period:
define("MAILQUEUE_BATCH_SIZE",360);

# batch period is set to 3600 seconds (=1 hour):
define("MAILQUEUE_BATCH_PERIOD",3600);

# Pause between messages (in seconds) to avoid overloading the server:
define('MAILQUEUE_THROTTLE',1);

If you fix the “N” to 50 emails and the “T” every 300 seconds for a total of 1000 emails sent, the system is gonna take 60 minutes to send all emails.

If the restriction is set to 500 emails per hour, should you program a mass mailing for 500 emails within one hour? The answer is no, and here’s why: It is recommended to keep a gap between the “per hour” limit and what you send with PHPList. You will probably send individual emails during the course of your normal activities. If you send a mass email to 500 peoples in an hour, how will you respond to an email that someone writes you? Your limit will be exceeded. So you won’t be able to communicate with anyone during the next hour. It is therefore recommended to fix the mass mailing limit to 450 emails. Thus, you’ll still have 50 mails available within this hour in order to fill your needs while respecting the limits of email per hour imposed by your host.

Slowerupload speed”MailQueue throttling”

This option allows you to insert a pause between each email. This will slow down and better distribute the load of your shipment.

For example: If you choose to put a pause of 10 seconds between each message to be sent, you can set the number of e-mail to send to 360 per hour. Thus, the transmission of your messages won’t clutter the server, you’ll stay within the limit of emails per hour that you’re allowed and you’ll keep the flexibility of sending additional unplanned messages. (40 messages left, if we’re assuming that your sending limit is 400 messages per hour).

Example :

# batch processing disabled:
define("MAILQUEUE_BATCH_SIZE",0);

# Batch_period is not effective when batch processing is disabled:
define("MAILQUEUE_BATCH_PERIOD",3600);

# Pause between messages (in seconds) to send no more than 360 messages per hour:
define('MAILQUEUE_THROTTLE',10);

If you use PHPList as suggested in this document, all your emails will be sent smoothly and shall not be considered as a spam.

However, you must comply with any other anti-spam rules already established.