larger smaller normal text version of this page
Documentation » Configuration »

Réglage de la vitesse d'envoi de messages



Beaucoup de personnes qui utilisent phpList sont hébergées sur des serveurs qui ne leur appartiennent pas ou qu'ils ne gèrent pas. Ces serveurs sont généralement partagés : un ordinateur fonctionne comme serveur pour plusieurs sites. Cela signifie que si un site web tente de dominer le CPU ou fait une demande démésurée sur les ressources du serveur, tous les autres sites sont très ralentis. C'est pourquoi les fournisseurs d'hébergement limitent le nombre d'e-mails qu'un site puisse envoyer, soit par heure, soit par jour. C'est leur travail d'assurer que l'utilisation d'un site n'a pas d'impact négatif sur le fonctionnement des autres sites qui partagent le même serveur.

Une autre raison pour laquelle les fournisseurs limitent le nombre d'e-mails que peut envoyer un site est de ne pas attirer les spammeurs. Alors, qu'est-ce que cela signifie pour vous, un non-spammeur? Avant votre premier envoi, vous devez vérifier auprès de votre fournisseur d'hébergement s'il existe un nombre maximum de messages que vous pouvez envoyer par heure ou par jour. Si ceci est le cas, utilisez ces paramètres dans le fichier config.php pour que phpList fonctionne en accord avec les limites imposés par l'hébergeur.


Ce bloc dans config.php
# 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);



Limiter la vitesse d'envoi


phpList est capable d'envoyer 3000 messages personnalisés à l'heure et 5000 messages non-personnalisés. Étant donné que la plupart des fournisseurs d'hébergement ne permet pas d'envoyer un grand volume de messages, et impose un nombre maximum par heure ou par jour, phpList offre deux méthodes pour faire face à ces limites d'envoi: Traitement par lot (batch processing) de la file d'attente et Vitesse de traitement de la file d'attente (mailqueue throttling). Le choix entre ces deux méthodes est essentiellement une question de préférence personnelle, bien que "mailqueue throttling" est peut-être mieux adapté aux serveurs qui fonctionent avec PHP-cgi (voir The three interfaces of PHP).

Traitement par lot de la file d'attente (batch processing)

Avec le traitement par lots, il-y a deux principaux paramètres qui travaillent ensemble pour dire: N'envoyez pas plus de N e-mails tous les T secondes, Où:
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.

Ainsi, si vous avez par exemple une limite horaire de 400 emails. Faut-il définir la taille du lot à 400 emails ? Non ! Pourquoi ?
Il y aura peut-être d'autres e-mails à envoyer, tels que des confirmations d'inscription, des messages-système, ou des courriels envoyés par d'autres applications de votre site. Il est donc utile de se laisser une marge : pour une petite installation, une marge de 20-40 à partir de votre limite horaire devrait être suffisante.

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 votre serveur fonctionne sous PHP-cgi, il peut se produire des 'timeouts' (voir The three interfaces op PHP). Dans ce cas, essayez une période plus courte, par exemple de 10 minutes (600 secondes).

Exemple:
# Envoyer un lot de 60 messages par période :
define("MAILQUEUE_BATCH_SIZE",60);

# Durée de la Période : 600 secondes (= 10 minutes):
define("MAILQUEUE_BATCH_PERIOD",600);

# Pause entre les messages (en secondes) pour éviter de surcharger le serveur:
define('MAILQUEUE_THROTTLE',1);



Ralentissement de la vitesse d'envoi (mailqueue throttle)

L'option MAILQUEUE_THROTTLE insère une petite pause entre chaque e-mail. Ceci aidera à ralentir et à mieux répartir la charge de l'envoi. Bien que vous pouvez utiliser ce paramètre pour éviter de surcharger le serveur avec trop de messages, vous pouvez aussi l'utiliser comme alternative au traitement par lots. Par exemple, si vous imposez une pause de 10 secondes entre les messages, vous limiterez en fait l'envoi à 360 messages à l'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);



Paramètres Experimentaux: auto throttle et domain throttle


# Mailqueue autothrottle. Cette fonction modifie automatiquement le délai entre les messages pour
# assurer que le lot défini dans MAILQUEUE_BATCH_SIZE (ci-dessus) soit réparti de manière uniforme sur le
# MAILQUEUE_BATCH_PERIOD, au lieu d'envoyer le lot dans les premières minutes de la période et
# attendre ensuite la période suivante. Cela ne fonctionne qu'avec mailqueue_throttle off
# Cette option a encore besoin d'ajustements, et vous êtes donc prié d'envoyer vos commentaires à
# mantis.tincan.co.uk si vous ayez des problèmes.
define('MAILQUEUE_AUTOTHROTTLE',0);

# Domain Throttling
# Vous pouvez activer 'domain throttling' en mettant USE_DOMAIN_THROTTLE à 1
# Ceci vous permettra de définir le nombre maximum d'e-mails envoyés à un même domaine, et pendant combien de secondes.
# De cette façon vous pourrez vous assurez de ne pas envoyer trop d'e-mails à un même domaine, et éviter ainsi
# d'être inclus dans une liste noire. Les grand ISP en particulier sont difficiles à ce sujet.
# Cependant, ceci peut causer une augmentation dramatique de la quantité de temps nécessaire pour envoyer un
# lot, suivant le nombre d'utilisateurs que avez dans le même domaine (par exemple, hotmail.com).
# S'il se produit un nombre trop élevé de défaillances de la régulation, le processus d'envoi ajoutera automatiquement un délai supplémentaire pour essayer d'améliorer cela.
# Cet exemple envoie 1 message toutes les 2 minutes.
define('USE_DOMAIN_THROTTLE',0);
define('DOMAIN_BATCH_SIZE',1);
define('DOMAIN_BATCH_PERIOD',120);



Astuces du forum




Pages connexes


CategoryDocumentation
Page was generated in 0.3238 seconds