Annonce

#1 2009-03-28 19:38:39

-=crevette=-
Membre
Inscription : 2005-03-14
Messages : 58

Re : [TUTO] envoi de grand nombre de mail avec CRON

Envoi programmé des newsletters par tâche CRON


Préambule pour les non-initiés : La plupart des personnes qui utilisent ce script sont des personnes qui gèrent de "petite" communauté de plusieurs centaines ou quelques milliers de membre. La communauté se retrouve sur un site hébergé sur un serveur mutualisé. Pour éviter les abus, les hébergeurs imposent quelques contraintes comme le nombre de mail envoyé par heure.
l'envoi d'un mail a sa communauté devient parfois un peu complexe : par exemple, réaliser les envois par flot de 200 et ensuite cliquer toutes les heures sur le lien pour envoyer manuellement le flot suivant. Sympa mais cela devient un peu agaçant à la longue.
La solution : la tâche CRON (ou tâche programmé). Avant assez rare chez les hébergeurs, cette fonctionnalité est maintenant de plus en plus souvent disponible. Wanewsletter peut être utilisé avec CRON et la FAQ donne quelques éléments pour mettre en place ce type de fonctionnalité.
Je vous propose ci-dessous un tuto un peu plus complet pour cet outil finalement pas si complexe pour les non-initiés (comme moi).

Info :
- wanewsletter doit être installé et fonctionnel pour pouvoir suivre ce tuto.
- avant de mettre en place une tâche CRON, je vous conseille de créer une liste de diffusion de test avec quelques mails uniquement. Cela évitera des erreurs et des envois intempestifs.


-----------------------------------------------

1/ Réaliser la Newsletter :
a- Allez dans wanewsletter et tapez votre newsletter,
b- Cliquez sur le bouton "envoyer". Wanewsletter vous indique que la newsletter est prête à être envoyé.
c- Refermez le wanewsletter en ayant pris soin de noter le numéro de votre liste de diffusion (ID de la liste disponible en cliquant sur "Listes" dans le menu).

Le reste du travail se réalisera sans passer par l'interface de wanewsletter mais en allant sur l'interface de votre hébergeur.



2/ Programmer l'envoi :
Je vais ici présenter le tuto pour deux types d'hébergement : OVH et pour les hébergeurs utilisant l'interface d'administration CPanel.

Tuto OVH
a- Allez sur l'administration de l'hébergement. ,
b- Recherchez la rubrique "planificateur de tâche" (menu "hébergement"),
rubriqueOVH.png
c- Cliquez sur "Création" pour créer une nouvelle tâche
d- Complétez la rubrique "Détails" :
OVHdetails.png
~ Script à exécuter : Il s'agit du chemin pour aller jusqu'au script CRON de wanewsletter. Il faut mettre la ligne ci-dessous. Le détails et les modifications possible dans cette ligne (selon vos besoins) sont expliqués en bas de ce tuto.

www/wanewsletter/contrib/wanewsletter --process-send=1 --delay=10 --packet=100 --limit=200

~ Language du script : je pense que cela ne change pas grand chose ici mais mettre plutôt php5 qui est maintenant la version la plus utilisée.
~ Description de la tâche : mettre un nom qui vous permettra de retrouver facilement la tâche. Il peut être utile d'y ajouter une date pour la retrouver plus facilement.
~ Logs par email : indiquer un mail sur le quel vous recevrez le résultat de la tâche à chaque fois qu'elle s'exécutera. OVH permet de sélectionner directement le mails du gestionnaire de l'hébergement. Vous pouvez également mettre le mails que vous souhaitez.

e- Programmez l'envoi :
Le but est ici d'indiquer quel jour vous souhaitez faire l'envoi et combien de fois il devra être exécuter pour envoyer la newsletter à toute votre liste de mail. Par exemple, ici, le mail sera envoyé le "10" du mois et la tâche sera lancé cinq fois (2, 3, 4, 5 et 6 heures du matin). A chaque fois que la tâche sera lancé un flot de mail sera envoyé (le nombre de mail envoyé par tâche est déterminé par la ligne de commande ci-dessus)
OVHprogramme.png

f- Cliquez sur le bouton "Valider"
g- Vérification de l'exécution de la tâche :
Dès que la tâche est exécutée, un mail est envoyé à l'adresse que vous avez indiqué. Un mail sera envoyé à chaque lancement de la tâche (ici 5 fois) :
MailResultat.png


Tuto CPanel
a- Allez sur l'administration de l'hébergement. ,
b- Recherchez la rubrique "tâches cron"
rubriqueCPanel.png
c- Cliquez sur le bouton "standard",
d- Saisissez une adresse mail dans le premier champ. Vous y recevrez le résultat de la tâche à chaque fois qu'elle s'exécutera.
e- Commande à exécuter : Il s'agit du chemin pour aller jusqu'au script CRON de wanewsletter. Il faut mettre la ligne ci-dessous. Le détails et les modifications possible dans cette ligne (selon vos besoins) sont expliqués en bas de ce tuto.

/home/VOTREHEBERGEMENT/public_html/wanewsletter/contrib/wanewsletter --process-send=1 --delay=10 --packet=100 --limit=200

Remplacez "VOTREHEBERGEMENT" par le nom du répertoire de votre hébergement. Ceci est disponible sur la page d'accueil de CPanel.

f- Programmez l'envoi :
Le but est ici d'indiquer quel jour vous souhaitez faire l'envoi et combien de fois il devra être exécuter pour envoyer la newsletter à toute votre liste de mail. Par exemple, ici, le mail sera envoyé le "lundi 10 mars" et la tâche sera lancé toutes les deux heures (= 12 fois dans la journée). A chaque fois que la tâche sera lancé un flot de mail sera envoyé (le nombre de mail envoyé par tâche est déterminé par la ligne de commande ci-dessus).
Avec CPanel, il est possible de sélectionner plusieurs dates ou heures. Pour cela cliquez dans les colonnes en maintenant la touche "Ctrl" appuyée.
CPanelProgramme.png

g- Cliquez sur le bouton "Enregistrez Crontab"
h- Vérification de l'exécution de la tâche :
Dès que la tâche est exécutée, un mail est envoyé à l'adresse que vous avez indiqué. Un mail sera envoyé à chaque lancement de la tâche (ici 5 fois) :
MailResultat.png



Détails sur la ligne de code :
La ligne de commande (ou script) que vous avez saisi est composé d'un chemin et de plusieurs paramètres.
Chemin = si vous avez installé wanewsletter, vous devriez connaître ce chemin. Le but étant d'atteindre le fichier "wanewsletter" dans le dossier "/contrib/"
Paramètres =
--process-send=1 ==> Numéro de la liste de diffusion. Il s'agit ici de la liste principale (tout le monde).
--delay=10 ==> Temps en seconde entre deux flots (packet).
--packet=100 ==> Nombre de mail envoyé à chaque flot.
--limit=200 ==> Nombre de mail envoyé au maximum à chaque fois que l'on réalise la tâche. C'est ce paramètre qui est le plus important. Il dépend de votre hébergeur. Si votre hébergeur ne vous autorise que 300 mails par heure, je vous conseille de régler ce paramètre à 200. Ainsi, vous aurez une tolérance de 100 mails qui pourront être utilisé pour les tâches courantes de votre site (avertissement automatique de nouveaux posts, etc.).
Si cette commande est retiré, tous les mails seront envoyés en quelques secondes. Ce n'est pas à faire car le serveur stopperais l'envoi à 300. Wanewsletter sait reprendre un envoi où il s'est arrêté. Bref, en mettant une tâche cron toutes les heures, les mails vont être envoyés par série de 200 et continuer ensuite l'heure suivante à l'endroit où il s'est arrêté.

Détails sur la date et heure réglé :
Attention de bien configuré la date et les heures souhaitez. Le mieux étant de configurer la tâche pour qu'elle réalise juste ce qu'il faut. Par exmple, si vous avez 2000 mails et que vous faîtes un envoi de 200 mails à chaque fois, il faudra que la tâche se réalise 10 fois.
Dans tous les cas, vous vous rendrez compte assez rapidement si vous avez prévu trop de tâche, vous recevrez en permanence des mails ...


Voilà, j'espère que tout est bon pour cette première version du tuto. Je viendrais le corriger si nécessaire.

Hors ligne

#2 2009-03-31 15:06:34

-=crevette=-
Membre
Inscription : 2005-03-14
Messages : 58

Re : [TUTO] envoi de grand nombre de mail avec CRON

Bonjour,

Je viens de faire un envoi à plus de 2000 mails avec le système CRON. Je vous confirme que ça marche très bien et donc que mon tuto fonctionne  smile


MailResultatOk.png

A bientôt

Hors ligne

#3 2009-04-01 16:23:54

ManuTheFoX
Membre
Lieu : Houplines (59)
Inscription : 2008-10-23
Messages : 45

Re : [TUTO] envoi de grand nombre de mail avec CRON

Merci bien pour ce tuto

Je vais le suivre à la lettre

A bientot

Manu  :d

Hors ligne

#4 2009-08-09 05:26:03

JollyAnt
Membre
Inscription : 2009-08-09
Messages : 1

Re : [TUTO] envoi de grand nombre de mail avec CRON

J'ai trouvé ce post extrêmement intéressant. Merci beaucoup!


Pret immobilier

Hors ligne

#5 2009-09-03 18:23:33

fred77fr
Membre
Inscription : 2007-04-29
Messages : 2

Re : [TUTO] envoi de grand nombre de mail avec CRON

Bonjour
Merci beaucoup pour le tuto.
Il subsiste un problème chez moi, mon hébergeur est OVH et quand je suit le tuto, j'ai droit a un : "Les répertoires ne doivent pas contenir d'espace" lorsque je met les paramêtre de la tache dans "Script à exécuter".
Y'a un autre moyen de passer les arguments ?

Merci


fred

Hors ligne

Pied de page des forums