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

WRInaute discret
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:
		$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 !!
 
WRInaute accro
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.
 
WRInaute accro
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.
 
WRInaute discret
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
 
Discussions similaires
Haut