newsletter

Petit nouveau ! | 5 Messages

14 juil. 2006, 21:14

bonsoir a tous,

j'ai un probleme que je n'arrive pas a trouver la solution.
voici mon probleme.
j'aimerai mettre sur mon site un systeme de newsletter. j'ai fais mon script qui marche tres bien. je peux a partir de ce script ecrire les adresses de mes visiteurs dans ma base des données. mais puisqu'il s'agit d'une newsletter, je veux savoir comment envoyer automatiquement les news de mon site a ces visiteurs inscrient et ou dois je introduire ces news pour pouvoir les envoyer?

merci de prendre mon probleme en consideration

Eléphant du PHP | 153 Messages

19 juil. 2006, 17:13

Salut !

Tu dois d'abord créer ton message à envoyer que tu stoques dans une variables ($message par exemple).

Ensuite tu sélectionnes toutes les adresses emails de tes membres, et tu fais une boucle du genre :
foreach($user as $v)
    mail($v['email'],"sujet",$message,$headers);
Et voilà, tu as envoyé ta news à tous tes membres !
http://gl2.delcedo.com/ Galaxialord 2 !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juil. 2006, 09:22

Attention, il y a un aspect auquel il te faut faire attention : si ta liste de diffusion est trop importante et que tu envoi tout tes mails d'un coup, beaucoup de FAI vont te détecter comme spammeur et donc blacklister ton IP.

Je te conseille, soit de mettre une temporisation entre 2 envois, soit de séparer tes envois par paquets de 50.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 153 Messages

20 juil. 2006, 20:19

Bien vu ;) et dans ce cas, en effet si t'as liste est longue il faut que tu mettes un temps infini pour l'exécution de la page :
set_time_limit(0);
A placer avant ta boucle
http://gl2.delcedo.com/ Galaxialord 2 !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 juil. 2006, 21:16

Bien vu ;) et dans ce cas, en effet si t'as liste est longue il faut que tu mettes un temps infini pour l'exécution de la page :
set_time_limit(0);
A placer avant ta boucle
Euhhh, mettre un temps d'exécution infini c'est dangereus quand même... Il serait + judicieux d'en mettre un très élevé plutôt que inifini. ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 153 Messages

20 juil. 2006, 22:08

Pour envoyer des mails... faire une boucle infinie c'est dur quand même... :oops: et puis on sait pas trop quelle durée va mettre le script (ca dépend de la surcharge du serveur, de la longueur de la liste des mails...).

Mais bon tu as raison, c'est pas très bien de programmer ainsi. Il vaut mieux mettre un long timing. 1 ou 2 secondes / email me semble raisonnable (non ?).

(la durée de set_time_limit(nb) est exprimée en secondes (ca t'évitera de chercher dans la doc))
http://gl2.delcedo.com/ Galaxialord 2 !

Mammouth du PHP | 1511 Messages

20 juil. 2006, 22:53

Au passage, tu peux utiliser la fonction sleep() qui te permttra de definir une pause en secondes tous les tant de mails afin de repartir les envois !
@+