bonjour à tous et merci par avance
j'ai fait une page php pour envoi de mail à plusieurs personnes (70)
j'ai donc une base mysql avec dedans l'adresse mail et leur password
S'il y a 4 personnes, tout ce passe bien
s'il y a 70 personnes, le script met beaucoup de temps à s'effectuer et SURTOUT :
dans les logs d'accces d'apache, la page php est appellé 11 fois !
Comme elle est appelée 11 fois au lieu d'avoir un mail, chaque personne reçoit 11 mails !!!
Je ne comprends pas ce comportement !
est ce que vous avez une piste ?
Voici le script, mais je ne pense pas que l'erreur vienne du scipt (ça marche pour 4 personnes) mais d'un comportement vicieux de la fonction mail ...
fontion mail : Retourne TRUE si le mail a été accepté pour livraison
qu'est ce que ça veut dire ?
autre piste, est ce que j'engorge sendmail ou le serveur de mail, qui lui réagit d'une façon que je comprends pas ?
j'ai épuré le code (variable de texte, connection mysql ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 $from = $nom." <".$from.">"; $limite = "_----------=_parties_".md5(uniqid (rand())); $header = "Reply-to: ".$from."\n"; $header .= "From: ".$from."\n"; $header .= "X-Sender: <".$site.">\n"; $header .= "X-Mailer: PHP\n"; $header .= "X-auth-smtp-user: ".$from." \n"; $header .= "X-abuse-contact: ".$from." \n"; $header .= "Date: ".date("D, j M Y G:i:s O")."\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: multipart/alternative; boundary=\"".$limite."\""; // si c'est un message txt et html //$header .= "Content-Type: multipart/mixed; boundary=\"".$limite."\""; // si message txt html et piece jointe //----------------------------------------------- //requete //----------------------------------------------- $sql = "SELECT mail, pwd FROM t_essai" ; $reponse = mysql_query($sql) or die(mysql_error()); while ($donnees = mysql_fetch_array($reponse) ) { $message = ""; $message .= "--".$limite."\n"; // message html $message .= "Content-Type: text/plain\n"; $message .= "charset=\"iso-8859-1\"; "; $message .= "Content-Transfer-Encoding: 8bit;\n\n"; $message .= $text_1 . $donnees['mail'] . $text_2 . $donnees['pwd'] . $text_3 ; $message .= "\n\n--".$limite."\n"; $message .= "Content-Type: text/html; "; $message .= "charset=\"iso-8859-1\"; "; $message .= "Content-Transfer-Encoding: 8bit;\n\n"; $message .= $html_1 . $donnees['mail'] . $html_2 . $donnees['pwd'] . $html_3 ; $message .= "\n--".$limite."--"; //envoi mail $to = $donnees['mail'] ; if(mail($to, $sujet, $message, $header)) { echo 'Le message a été envoyé à ' . $to . ' - <br />'; } else { echo 'Le message n\'a pu être envoyé' ; } }
Partager