Problème fonction mail() : email envoyé 3 fois.


annoncesoccasion
WRInaute discret
WRInaute discret
 
Messages: 86
Inscription: 30 Oct 2007

Problème fonction mail() : email envoyé 3 fois.

Message le Lun Avr 27, 2009 19:23

Bonsoir à tous

Cela fait 2 jours que je creuse les méninges pour savoir ce qui cloche lors de l'activation d'un membre sur mon site.
En effet, lors de la validation d'un nouveau membre, un mail est censé être envoyé aux autres membres du département afin de leur signaler l'arrivée d'un nouveau membre dans leur département.

Voici mon code :
Code: Tout sélectionner
      $message_alerte="Bonjour.\n\n"
      ."Un nouveau membre vient de s'inscrire sur le réseau de quadeurs d'annuaire-quad.fr dans votre "                     ."département.\nIl s'agit de $pseudom situé à $villem ($cpm).\n\n"
      ."Connectez vous à votre interface pour consulter sa fiche : "                           ."http://www.annuaire-quad.fr/cartedesquadeurs/.\n\n"
      ."Cordialement, le webmaster.";

      $objet_alerte="Nouveau quadeur dans le $deptm";

      $res="SELECT * FROM ".PREFIXE."membres WHERE dept='$deptm' AND active='1' AND alerte='oui'";
      $r2 = mysql_query($res) or die('erreur requete select dept');
      for ($i=0;$i < mysql_num_rows($r2); $i++)
         {
         $email_membre = mysql_result($r2,$i,'email');
      mail("$email_membre", $objet_alerte, "$message_alerte", $headersmess);
echo       mail("$email_membre", $objet_alerte, "$message_alerte", $headersmess);
         }

      
      mysql_query("UPDATE ".PREFIXE."membres SET active='1' WHERE idm='$idm_verif'") or die (mysql_error());


Comme vous pouvez le voir, avant la validation du nouveau membre, j'envoie un mail aux membres existant dans le département (ceci me permet d'éviter d'envoyer ce mail qu'aux anciens et non pas au nouveau membre).

Résultat : 3 mails adressés au nouveau membre + 2 mails envoyés au membre existant.

Et j'ai beau cherché je sèche grave !! :evil:

Alors où est le problème ? mon code ? 1&1 ?
Sachant que les autres mails associées à d'autres fonctions dans le site fonctionnent très bien.

Autre précision : lorsque je vire la boucle et que je mets un destinataire unique dans ma fonction mail, je reçois le mail en triple !!

Alors je vous remercie vivement d'avance pour élucider ce problème !!


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Lun Avr 27, 2009 21:45

C'est pas plutôt un problème dans le traitement global de la fin de l'inscription sur ton site (genre un formulaire envoyé une fois de trop ou un truc du genre) ?

Sinon deux conseils :

1. Tu peux mettre en place une table d'asso pour savoir si un membre X a déjà été averti de l'inscription de Y (et tu testes ça avant d'envoyer un mail)

2. Tu peux utiliser quelque chose de plus robuste que mail(), par exemple phpmailer.


annoncesoccasion
WRInaute discret
WRInaute discret
 
Messages: 86
Inscription: 30 Oct 2007

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Mar Avr 28, 2009 6:51

Je teste PHPmailer dans la journée et je reviens vers toi !!
j'croise les doigts, merci pour l'info.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Mar Avr 28, 2009 8:37

Phpmailer ne résoudra sans doute pas ton souci mais ets nettement plus efficace au niveau envoi de mail en PHP que la basique fonction mail().

Pour ton souci, je reste persuadé que c'est un souci soit dans une boucle qui englobe le tout, soit un formulaire envoyé une fois de trop, etc.


annoncesoccasion
WRInaute discret
WRInaute discret
 
Messages: 86
Inscription: 30 Oct 2007

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Mer Avr 29, 2009 7:00

Salut

J'ai testé et le résultat est toujours le même.
Ce qui est rigolo c'est que quand le membre clique sur le lien pour activer son compte, là le mail par 3 fois.
Par contre, si je réactualise la page d'activation, là l'envoi est parfait.

Bon en tout cas je me suis débrouillé

A+
Johann


annoncesoccasion
WRInaute discret
WRInaute discret
 
Messages: 86
Inscription: 30 Oct 2007

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Mer Avr 29, 2009 7:00

et merci j'oubliais


RiPSO
WRInaute passionné
WRInaute passionné
 
Messages: 1591
Inscription: 4 Oct 2007

Re: Problème fonction mail() : email envoyé 3 fois.

Message le Jeu Avr 30, 2009 11:15

dans ton code tu as mis deux fois l'appel a la fonction mail ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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