2016-11-30 177 views
1

我正在使用下面的代碼發送電子郵件給MySQL數據庫中的所有用戶使用phpmailer。我的問題是..郵件沒有發送給所有收件人,但郵件發送給一個或兩個收件人。代碼中有任何問題。謝謝使用phpmailer發送郵件

<?php 

     require_once('phpmailer/class.phpmailer.php'); 

    error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT); 
     $host="mysql.hostinger.in"; // Host name 
     $username="u831209167_user"; // Mysql username 
     $password="###"; // Mysql password 
     $db_name="u831209167_name"; // Database name 

     // Connect to server and select databse. 
     $con=mysql_connect($host,$username,$password) or die("Can't connect to database!"); 
    mysql_select_db("u831209167_name"); 

    $str="SELECT email FROM `notification` "; 
     $res=mysql_query($str,$con); 
     while($row=mysql_fetch_array($res)) 
     { 

     $mail = new PHPMailer(); 
     $mail->CharSet = "utf-8"; 

     $mail->SMTPAuth = true; 
     $mail->Username = "###@gmail.com"; 
     $mail->Password = "######"; 
     $mail->SMTPSecure = "ssl"; 
     $mail->Host = "smtp.gmail.com"; 
     $mail->Port = "465"; 

     $mail->setFrom('#####@gmail.com', 'example'); 


     $mail->AddAddress($row[email]); 

     $mail->Subject = '54450065'; 
     $mail->IsHTML(true); 

    $hl = <<<EOL 
    <h1>Welcome</h1> 


    <p>Your username is {$row[email]} .</p> 
    EOL; 

     $mail->Body = ($hl); 






     if($mail->Send()) 
     { 
      echo "Message was Successfully Send :)"; 
     } 
     else 
     { 
      echo "Mail Error - >".$mail->ErrorInfo; 
     } 
     } 
    ?> 
+0

可能重複的[問題與PHP郵件](http://stackoverflow.com/questions/6248853/problem-with-php-mailer) –

+1

必須照顧不推薦的擴展,爲什麼你使用'$郵件=新PHPMailer();'循環內部? – devpro

+0

什麼錯誤你進入'郵件錯誤'?並檢查兩個點'AddAddress'和'$ mail-> Body =($ hl);' – devpro

回答

0

您需要爲每個要發送到的電子郵件地址調用AddAddress函數一次。這個函數只有兩個參數:recipient_email_address和recipient_name。收件人名稱是可選的,如果不存在,將不會使用。

$mail->AddAddress('[email protected]', 'First Name'); 
$mail->AddAddress('[email protected]', 'Second Name'); 
$mail->AddAddress('[email protected]', 'Third Name'); 

您可以使用數組來存儲收件人,然後使用for循環。我希望它有幫助。