php mail отправляет несколько копий - PullRequest
1 голос
/ 06 августа 2010

Я использую drupal 6 и пытаюсь отправить электронное письмо всем пользователям, используя следующий код. Иногда проблема заключается в том, что почта отправляется пользователям несколько раз , но отправленная папка содержит 1 запись для каждого пользователя. Специально идентификаторы Yahoo получили более 2 писем (от 3 до 4) и отправили показывает 2 письма, отправленные на каждый идентификатор Yahoo это кто-нибудь знает ..

<?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>";
   }
 }
?>

1 Ответ

1 голос
/ 06 августа 2010

Ваш код выглядит нормально. Вы уверены, что разные пользователи не разделяют некоторые адреса электронной почты? Столбец mail должен быть нормализован и UNIQUE. Кроме того, сценарий выполняется несколько раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...