Vous êtes sur la page 1sur 5

Envoyer un mail vos membres exceptionnellement et automatiquement

http://www.siteduzero.com/tutoriel-3-35459-envoyer-un-mail-a-vos-m...

Envoyer un mail vos membres exceptionnellement et automatiquement


Informations sur le tutoriel
Auteur : primmo

Plus d'informations

Popularit
Visualisations : 81 216 Apprciation 0 des lecteurs :0 0 4

Publicit Historique des mises jour


Rester inform grce au flux RSS Le 14/09/2010 21:53:08 zCorrection septembre 2010

Partager
Vous voulez envoyer un mail tous vos membres pour une occasion particulire (Nol, jour de l'an, Halloween, rsultat d'un concours, sortie d'un album, d'un livre, etc.) ? Je vais vous apprendre dans ce tutoriel vous servir du site webcron pour faire un envoi automatis et rapide. Il faudra dans un premier temps rdiger notre code puis ensuite nous inscrire et le soumettre webcron. Ce tutoriel vous permettra donc de matriser le site webcron, qui est trs utile, ainsi que de revoir de nombreuses petites fonctions bien utiles en PHP. Sommaire du tutoriel :

Prparatifs Notre code Webcron notre Sauveur

Prparatifs
Rdigeant ce tutoriel en priode de ftes de fin d'anne, je vous propose de prendre comme exemple l'envoi d'un e-mail 23 h 59 le 24/12/06 pour souhaiter un joyeux Nol tous vos membres.

Pour raliser ceci, on va commencer par rdiger notre code (dans le fichier mail-noel.php). On poursuivra ensuite par une petite visite du site webcron pour finir de raliser notre projet.

1 sur 5

23/05/2011 22:08

Envoyer un mail vos membres exceptionnellement et automatiquement

http://www.siteduzero.com/tutoriel-3-35459-envoyer-un-mail-a-vos-m...

Un peu de culture
Tout d'abord, il faut savoir que le site webcron n'est pas indispensable pour raliser l'envoi de ce mail, il existe plusieurs manires de procder. La premire est la mthode manuelle. C'est trs simple ; l'heure voulue, vous allez sur votre page pour excuter le script. Le seul problme est que vous devez donc tre l pour le dclencher. Et je pense que le jour de Nol, vous avez d'autres choses faire, non ? La deuxime mthode consiste donc crer ce que l'on appelle un cron. Je vous entends dj dire mais qu'est-ce qu'il raconte, lui, l-bas derrire son cran, il parle chinois ? Non, je ne parle pas chinois.

Voici la dfinition d'un cron, d'aprs Wikipdia : Citation : Wikipdia cron est le nom d'un programme qui permet aux utilisateurs des systmes Unix d'excuter automatiquement des logiciels (ou fichiers) une date et une heure spcifies l'avance, ou selon un cycle dfini l'avance. Je ne vous en dis pas plus sur le fait que le cron soit un daemon, a n'a pas d'utilit dans ce tutoriel. Vous pouvez cependant lire l'article complet et intressant son sujet. Le site webcron fait donc exactement la mme chose, par Internet. L'avantage de le faire par le site est que grce cela, nous n'avons pas besoin d'avoir un serveur ddi pour utiliser les merveilleux crons. Eh oui, malheureusement, je ne connais aucun hbergeur mutualis qui accepte les crons, car cela entreprendrait une modification des fichiers du systme. Voil : je pense que vous tes maintenant prt pour commencer et que vous savez o l'on va (enfin je l'espre, car pas moi ).

Notre code
Nous allons donc dans cette sous-partie nous attarder sur le code ncessaire au bon fonctionnement du projet. Il faut savoir que pour des raisons de scurit, nous allons vrifier que nous sommes bien la date et l'heure voulue. Sinon, des petits malins dcouvrant le fichier auraient vite fait de l'activer et vos membres recevraient tous ce mail avant l'heure. Nous allons donc voir le code par tapes. Code : PHP - Slectionner <?php $timestamp_noel = mktime(23, 00, 00, 12, 24, 2006); le timestamp lorsqu'il sera Nol

// On initialise

J'utilise ici la fonction pour rcuprer le de Nol 2006. Ici, j'ai choisi de prendre le 24 dcembre 2006 23 h 00 et 00 sec. Je mets cette heure-ci car il n'est pas possible de choisir les minutes sur le site webcron. Eh oui, c'est moins prcis que si vous le faisiez sur votre serveur ddi. Notez que si vous souhaitez rutiliser votre script, vous pouvez mettre l'anne dans une variable, comme ceci : Code : PHP - Slectionner

2 sur 5

23/05/2011 22:08

Envoyer un mail vos membres exceptionnellement et automatiquement

http://www.siteduzero.com/tutoriel-3-35459-envoyer-un-mail-a-vos-m...

<?php $annee = date('Y'); $timestamp_noel = mktime(23, 00, 00, 12, 24, $annee);

J'ai choisi de dfinir juste aprs nos variables membres. Code : PHP - Slectionner <?php $message = ' <html> <head>

et

, contenant le message que vous allez envoyer vos

</head> <body> <h1>Joyeux Nol et trs bonnes ftes de fin d\'anne</h1> <p>Toute l\'quipe de [votre site] vous souhaite de trs bonnes ftes de fin d\'anne, en esprant une trs bonne nouvelle anne</p> <p>Blabla, blabla, etc.</p> </body> </html> '; $sujet = 'Joyeux Nol';

Vous mettez ce que vous souhaitez dans votre code, pour annoncer d'ventuelles nouveauts, un concours ou autre chose. Ensuite, nous allons nous attaquer aux headers ; c'est quelque chose d'obligatoire pour le bon envoi de votre e-mail. Je ne vous demanderai pas de comprendre ce morceau de code, sachez juste qu'il va permettre de rgler le format de l'e-mail, pour que le HTML soit pris en compte et que les caractres s'y affichent normalement. Code : PHP - Slectionner <?php $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Avant de passer au reste, il nous faut vrifier si la date actuelle est la mme que celle prcdemment voque. Nous le faisons donc simplement grce un Code : PHP - Slectionner <?php if(time() == $timestamp_noel) // Pour plus de scurit, on compare le timestamp actuel celui de Nol { //Notre code d'envoi d'e-mail }

Nous passons maintenant au listage des e-mails de vos membres : Code : PHP - Slectionner <?php mysql_connect("localhost", "login", "*****");

3 sur 5

23/05/2011 22:08

Envoyer un mail vos membres exceptionnellement et automatiquement

http://www.siteduzero.com/tutoriel-3-35459-envoyer-un-mail-a-vos-m...

mysql_select_db("bdd"); $req = mysql_query("SELECT mail FROM membres");

Maintenant, il est simple d'envoyer notre message chaque membre grce une boucle Code : PHP - Slectionner <?php while($mail = mysql_fetch_array($req)) { mail($mail['mail'], $sujet, $message, $headers); echo 'Mail bien envoy '.$mail['mail'].''; }

Voil : prsent, votre script est prt fonctionner. Pour le complter, je vous propose juste un petit Code : PHP - Slectionner <?php else { echo 'Dsol, c\'est pas le bon jour. :p'; } mysql_close(); ?>

Allez : comme cadeau de Nol de ma part, je vous offre le code en entier. Code : PHP - Slectionner <?php $timestamp_noel = mktime(23, 59, 15, 12, 24, 2006); le timestamp qu'il sera Nol $message = '<html> <head>

// On initialise

</head> <body> <h1>Joyeux Nol et trs bonnes ftes de fin d\'anne</h1> <p>Toute l\'quipe de Image-Studio vous souhaite de trs bonnes ftes de fin d\'anne en esprant une trs bonne nouvelle anne</p>\n <p>Pas mal de nouveauts sont prvoir cette anne sur le site, et nous vous rappelons que le site dispose d\'un forum communautaire pour partager vos passions</p> </body> </html> '; $sujet = 'Joyeux Nol'; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; if(time() == $timestamp_noel) // Pour plus de scurit, on compare le timestamp actuel celui de Nol { mysql_connect("localhost", "login", "******"); mysql_select_db("bdd"); $req = mysql_query("SELECT * FROM mail"); while($mail = mysql_fetch_array($req)) { mail($mail['mail'], $sujet, $message, $headers); echo 'Mail bien envoy '.$mail['mail'].''; } } else

4 sur 5

23/05/2011 22:08

Envoyer un mail vos membres exceptionnellement et automatiquement

http://www.siteduzero.com/tutoriel-3-35459-envoyer-un-mail-a-vos-m...

{ echo 'Dsol c\'est pas le bon jour :p'; } mysql_close(); ?>

Nous pouvons maintenant passer la seconde partie.

Webcron notre Sauveur


Eh oui ! Il ne manquait que lui pour conclure notre projet. Alors tout d'abord, voici l'adresse du site : Webcron.org.

(Cliquez sur l'image pour l'agrandir)

Je ne vous en refais pas de prsentation. Inscrivez-vous, cette tape ne devrait pas poser trop de problmes. Une fois ceci ralis et l'inscription confirme, connectez-vous votre compte. Rendez-vous ensuite sur la page Mes tches, et cliquez sur Nouvelle tche. Vous devriez avoir la page suivante qui apparat.

Remplissez le champ URL en mettant l'URL du fichier d'envoi de mail. Ensuite, ne remplissez pas login et mot de passe, renseignez l'heure, la date, le mois, le jour, etc. Puis validez, vous devriez obtenir ceci :

Et voil : maintenant, tout est prt pour que vos membres reoivent un joli petit mail. Vous pouvez le modifier un peu en y ajoutant des couleurs, etc. Voil qui conclut mon premier tutoriel ; si vous avez des commentaires, surtout n'hsitez pas laisser une note et un commentaire. J'espre que cela vous aura permis de faire de bien jolis petits codes pour le plaisir de vos membres. C'est dommage que l'envoi ne puisse se faire sur webcron la minute prs, mais bon ce n'est pas trs grave. Webcron propose aussi la fonction tester, qui permet de voir si tout est OK avant l'heure. Merci vous !

5 sur 5

23/05/2011 22:08

Vous aimerez peut-être aussi