probleme avec boucle While et fonction php mail()

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

probleme avec boucle While et fonction php mail()

Message le Jeu Oct 25, 2007 12:42

Bonjour a tous !

Je rencontre un problème auquel je n'ai encore jamais trouvé de solution.

Lors d'un envoi de mail via un script php a un grand nombre d'adresse (4 000 environ), j'ai un gros bug qui envoie le mail en plusieurs exemplaires.

Ma requette en base ne comporte qu'une adresse par enregistrement et je fais un simple SELECT. Pas de doublons dans la base donc.

J'ai mis l'execution time du script a 1 an et je vais une pause d'une seconde entre chaque envoi.

Le script est lancé par un cronjob directement depuis le serveur.

Est-ce que quelqu'un a déja rencontré ce problème et y a trouvé une solution ? Est-ce un bug de php ?


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Jeu Oct 25, 2007 13:08

tu peux ajouter un DISTINCT pour être certain


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Oct 25, 2007 13:16

je l'ai fait, mais ca n'a rien changé :/, je me demande si ce n'est pas un probleme lié a l'éxecution de la commande avec wget

bozoleclown
WRInaute passionné
WRInaute passionné
 
Messages: 893
Inscription: Jeu Nov 24, 2005 19:08

Message le Jeu Oct 25, 2007 14:19

t'es sure que ton script n'est pas executé plusieurs fois ?

et plutot que de mettre un wget dans ton cron, mets un /usr/bin/php c'est plus propre


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Oct 25, 2007 14:23

je vais tester cette solution.

merci

bozoleclown
WRInaute passionné
WRInaute passionné
 
Messages: 893
Inscription: Jeu Nov 24, 2005 19:08

Message le Jeu Oct 25, 2007 14:45

Tu peux copier/coller la ligne de la crontab ici ?


mahefarivony
WRInaute accro
WRInaute accro
 
Messages: 11405
Inscription: Lun Oct 14, 2002 10:00

Message le Jeu Oct 25, 2007 14:49

j'ai déja rencontré le probleme : c'est la pause d'une seconde qui fait tout foirer.

La pause faut la faire sur le cron : appel du script toute les 5 minutes par exemple et envoi de 100 mails pendant ces 5 mn. Et taggage des mails qui ont été envoyé.

Bonne chance


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Oct 25, 2007 18:16

hum je pense que dans ce cas, je vais opter pour une option qui vérifie si le mail n'a pas été deja envoyé. Je vais y réfléchir.

Merci


mahefarivony
WRInaute accro
WRInaute accro
 
Messages: 11405
Inscription: Lun Oct 14, 2002 10:00

Message le Jeu Oct 25, 2007 18:53

Code: Tout sélectionner
select id,email from newsletter where sentemail=0 limit 30
foreach email {
mail(email ..)
update newsletter set sentemail=1 where id=id
}


t'appelles ça toutes les x minutes avec ton crontab


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Oct 25, 2007 19:28

Tu supposes d'implémenter a chaque fois en base le dernier mail envoyé pour reprendre au suivant ?

Pas bête du tout, je pense que je vais opter pour ca

Merci pour toutes ces réponses, je pense que ca pourra aussi servir a d'autres


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier, Google mail, Google Related Links

  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité