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

Réglage de la vitesse d'envoi de messages



Un nombre de personnes qui utilisent phpList sont hébergé sur des serveurs qui ne leur appartiennent pas ou qu'ils ne gerent pas. Ces boîtes sont généralement partagées: un ordinateur fonctionne comme serveur pour un nombre de 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, tout le monde souffre. Pour cette raison, la plupart des fournisseurs d'hébergement limite le nombre d'e-mails qu'un site puisse envoyer, soit par heure, soit par jour. C'est leur travail de faire en sorte que l'utilisation par une personne n'ai pas un impacte sur le fonctionnement des autres sites qui partagent le même serveur.

Une autre raison pour laquelle les fournisseurs limitent le nombre d'emails qu'on puisse envoyer, 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 les paramètres suivants 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


À pleine vitesse phpList est capable d'envoyer des messages personnalisés à 3000 par heure ou plus, et des messages non-personnalisés à 5000 par heure ou plus. É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 d'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 faut considerer d'autres e-mails à envoyer, telles que les emails de la confirmation de l'insciption, les messages du système, ou les courriels envoyés par d'autres applications sur votre site. Il est necessaire de vous donner 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 de duration de lot:
define("MAILQUEUE_BATCH_SIZE",360);

# periode de duration de lot defini à 3600 secondes (3600 sec. = 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 fontionne sous PHP-cgi, vous pouvez avoir des 'timeouts' (voir The three interfaces op PHP). Dans ce cas, vous pourriez essayer une période de lot plus courte, par exemple de 10 minutes (600 secondes).

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

# Période de chagque lot est fixé à 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 a ralentir et répartir la charge de l'envoi. Bien que vous pouvez utiliser ce paramètre pour éviter de surcharger le serveur avec un sursaut de messages, vous pouvez également l'utiliser comme une alternative au traitement par lots. Par exemple, si vous imposer une pause de 10 secondes entre les messages, vous limiterez en fait l'envoi à 360 messages par heure.

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

# Periode de lot sans relevance quand 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 par heure.:
define('MAILQUEUE_THROTTLE',10);



Paramètres Experimentaux: auto throttle et domain throttle


# Mailqueue autothrottle. Ceci va essayer de changer automatiquement le delai entre les messages pour
# assurer que le lot defini dans MAILQUEUE_BATCH_SIZE (ci-dessus) soit réparti de forme équitative sur le
# MAILQUEUE_BATCH_PERIOD, au d'envoyer le lot dans les premières minutes de la période et ensuite
# attendre la période suivante. Cela fonctionne uniquement avec mailqueue_throttle off
# Cette option a encore besoin d'ajustements, et vous êtes donc prier d'envoyer vos commantaires à
# 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 de e-mails que vous souhaitez autoriser pour l'envoi à
# n'importe quel domaine et le nombre de secondes pour ce montant.
# De cette façon vous pourrez vous assurez de ne pas envoyer trop d'e-mails à un même domaine, et ainsi eviter
# 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écèssaire pour envoyer un
# message, selon le nombre d'utilisateurs que avez avec le même domaine (par exemple, hotmail.com).
# S'il se produit un nombre trop élevé de défaillances de la régulationuit, le processus d'envoi ajoutera automatiquement un delai additionel 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.1251 seconds