Blogue

Comment effectuer un envoi massif efficacement.

Comment effectuer un envoi massif efficacement.

De nombreux clients partagent le même serveur pour leur hébergement. Lorsqu’un client désire faire des envois massifs de courriers électroniques, ceux-ci peuvent nuire au bon fonctionnement du serveur ainsi qu’aux autres sites hébergés si  le tout n’est pas exécuté correctement. Voilà pourquoi une limite d’envoi de courriel (nombre/heure) est fixée afin de prévenir tout  ralentissement voir même l’arrêt complet du serveur. Pour éviter qu’une action incorrecte nuise au bon fonctionnement des sites hébergés le serveur, il existe une application nommé PHPList. Celle-ci peut être installée dans tout hébergement Linux disposant d’une base de données libre.  PHPList vous permettra de répondre à vos besoins concernant l’envoi de courriels de masse, tout en respectant les règles préétablies et en assurant le bon fonctionnement des sites partageant le même serveur.

Voici les raisons principales pour lesquelles une limite d’envoi de courriel par heure a été fixée:

  • Ne pas attirer l’attention des spammeurs;
  • Éviter que le serveur entier soit pénalisé auprès des services anti-spam;
  • Empêcher un ralentissement dans la livraison de courriels légitimes;

Il est important de vérifier auprès de votre hébergeur les conditions fixées pour l’envoi de courriel de masse. Sinon, vos envois pourraient ne pas se rendre à destination et être perçus comme des pourriels.

L’application PHPList a la capacité d’envoyer 3000 messages personnalisés à l’heure ou 5000 messages non-personnalisés. Cependant, les limites établies par votre hébergeur sont généralement plus basses. Renseignez-vous au préalable! PHPList offre deux méthodes vous permettant d’envoyer massivement sans enfreindre les limites imposées par votre hébergeur :

  • Traitement par lot de la file d’attente : « Batch processing »;
  • Ralentissement de la vitesse d’envoi : « Mailqueue throttling »;

Voici le bloc à configurer dans le fichier « config.php » de l’application PHPList.

Exemple :
# Traitement par lot (batch processing).
# Si vous êtes sur un hébergement mutualisé, il sera probablement apprécié si vous n’envoyez pas
# un grand nombre d’e-mails en une seule fois. Pour réaliser ceci vous pouvez configurer le traitement par lot.
# Notez, que les valeurs des deux paramètres suivants peuvent être surpassé par votre hébergeur, en utilisant
# une configuration globale du serveur. Donc, peut être le cas si vous remarquez que ces valeurs sont
# différentes en réalité,

# Définiez le nombre d’e-mails que vous souhaitez envoyer par période. Si cette valeur est 0, le traitement par lot
# est désactivé et les messages seront donc envoyé aussi rapidement que possible.
define(« MAILQUEUE_BATCH_SIZE »,0);

# Définiez la longueur de temps d’une periode de traitement par lot, en secondes (3600 est une heure)
define(« MAILQUEUE_BATCH_PERIOD »,3600);

# Pour éviter de surcharger le serveur qui envoie vos e-mails, vous pouvez inserer une petite pause
# entre l’envoi de chaque e-mail. Ceci aidera a répartir la charge de l’envoi.
# Vous devrez trouver une bonne valeur pour votre propre serveur.
# La valeur de ce paramètre est en secondes. (ou vous pouvez jouer avec le paramètre ‘autothrottle’ ci-dessous)
define(‘MAILQUEUE_THROTTLE’,0);

Traitement par lot de la file d’attente « Batch processing »

Avec cette méthode, PHPList vous permet de créer deux paramètres d’envois qui effectuent le travail conjointement. Cela permet d’envoyer « N » courriels à toutes les « T » secondes.

  • La quantité de courriel à envoyer (N = Nombre)
  • La fréquence des envois (T = Temps)

En voici un exemple :

N est MAILQUEUE_BATCH_SIZE
T est MAILQUEUE_BATCH_PERIOD
Ces paramètres forcent PHPList de se limiter et évitent l’envoi de tous les messages en une seule fois.

Exemple :
# Envoyer un lot de 360 messages par période :
define(« MAILQUEUE_BATCH_SIZE »,360);

# Durée de la période (ici, 3600 secondes, c’est à dire 1 heure):
define(« MAILQUEUE_BATCH_PERIOD »,3600);

# Pause entre les messages (en secondes) afin d’éviter de surcharger le serveur:
define(‘MAILQUEUE_THROTTLE’,1);

Si on fixe le « N » à 50 courriels et le « T » à toutes les 300 secondes, pour un envoi totalisant 1000 courriels, le système prendra 60 minutes pour envoyer la totalité des courriels.

Si la restriction d’envoi est de  500 courriels par heure, doit-on effectuer un envoi massif totalisant 500 courriels en une seule heure? La réponse est non, et voici pourquoi : Il est recommandé de conserver un jeu entre la limite par heure et ce que vous envoyez avec PHPList. Vous aurez sans doute à envoyer des courriels individuels durant le cours de vos activités normales. Si vous envoyez un courriel de masse à 500 personnes en une heure, comment ferez-vous pour répondre à un courriel si quelqu’un vous écrit? Votre limite sera dépassée. Vous ne serez donc plus en mesure de communiquer avec qui que ce soit durant la prochaine heure. Il est donc recommandé de fixer l’envoi de masse à 450 courriels. Ainsi, il vous restera 50 envois de courriels disponibles durant cette même heure afin de répondre à vos besoins normaux tout en respectant les conditions d’envois par heure imposés par votre hébergeur.

Ralentissement de la vitesse d’envoi  « Mailqueue throttling »

Cette option vous permet d’insérer une petite pause entre chaque courriel. Cela aura pour effet de ralentir et ainsi mieux répartir la charge de votre envoi.

Par exemple : Si vous choisissez de mettre une pause de 10 secondes entre chaque message à envoyer, vous pourrez fixer le nombre de courriel  à transmettre à 360 par heure. Ainsi, la transmission de vos messages n’encombreront pas le serveur, cela respectera grandement la limite de courriels par heure et il vous restera une marge de manœuvre afin d’envoyer des messages additionnels non planifiés. (40 exactement si nous supposons que votre limite d’envoi par heure est de 400 messages par heure)

Exemple :
# Traitement par lot désactivé:
define(« MAILQUEUE_BATCH_SIZE »,0);

# Durée de la période trop longue si le traitement par lot est désactivé :
define(« MAILQUEUE_BATCH_PERIOD »,3600);

# Pause de 10 secondes entre les messages, pour limiter la vitesse d’envoi à 360 messages à l’heure :
define(‘MAILQUEUE_THROTTLE’,10);,

Si vous utilisez PHPList de la façon suggérée dans ce document, tous vos courriels seront envoyés sans heurt et ne seront pas interprétés comme étant des pourriels.
***Vous devez cependant vous conformer aux autres règles anti-pourriels en vigueur.Haut du formulaire