2016-11-30 175 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循环。我希望它有帮助。