2010-08-06 4 views
1

j'utilise 6 et essaie drupal d'envoyer un e-mail à tous les utilisateurs en utilisant le code suivant. Le problème est parfois le courrier envoie aux utilisateurs plusieurs fois mais le dossier envoyé contient 1 entrée pour chaque utilisateur. Spécialement yahoo ids a plus de 2 mails (3 à 4) et envoyé montre 2 e-mails envoyés à chaque id yahoo. Est-ce que quelqu'un le sait ..php mail envoie plusieurs copies

<?php 
require("/var/www/drupal/sites/all/modules/smtp/phpmailer/class.phpmailer.php"); 
$con = mysql_connect("***","***","*****"); 
$select_db=mysql_select_db("drupaldb", $con); 
$result = mysql_query("select uid,name,mail,data from users "); 
while($row = mysql_fetch_array($result)) 
{ 
    mailit($row['name'],$row['mail']); 
    flush(); 
    sleep(3); 
} 
print "<br>*******************************************<br>"; 
function mailit($name,$rec) 
{ 
    $content="<div> Test mail </div>"; 

    $mail = new PHPMailer(); 
    $mail->IsSMTP(); 
    $mail->Host = "ssl://smtp.gmail.com"; 
    $mail->Port = 465; 
    $mail->SMTPAuth = true; 
    $mail->Username = "**********"; 
    $mail->Password = "*********"; 
    $mail->From = "*********"; 
    $mail->FromName = "****"; 
    $mail->AddAddress($rec,$name); 
    $mail->Subject = "Test mail"; 
    $mail->IsHTML(true); 
    $mail->Body = $content; 
    $mail->AltBody ='Test Mail'; 
    if(!$mail->Send()) 
    { 
    error_log("Mass Mail: ".$mail->ErrorInfo, 0); 
    echo "Mailer Error: " . $mail->ErrorInfo."<br>"; 
    } 
    else 
    { 
    echo "Message has been sent to <b>".$name."</b> through <i>".$rec."</i><br>"; 
    } 
} 
?> 

Répondre

1

Votre code semble bien. Êtes-vous sûr que différents utilisateurs ne partagent pas certaines adresses e-mail? La colonne mail doit être normalisée et UNIQUE. Aussi, le script est-il exécuté plusieurs fois?