向多个用户发送电子邮件通知

时间:2012-12-03 14:54:01

标签: php email

我已尝试使用此代码向TABLE(学生)中的所有学生发送电子邮件通知,当然学生的电子邮件已存储在数据库中,因此当我尝试此代码时,它只向一位学生发送电子邮件(第一个表中的一个)!我使用“测试邮件服务器工具”来检查邮件是否发送,并且正如我所说它只发送邮件给一个学生,我如何将它发送给表(学生)中的所有学生?

 include("connect.php");


     $Load=$_SESSION['login_user'];  
         $smail= "Select Email from admin WHERE ID=$Load ";
     $email= mysql_query($smail);  

    $result3 = mysql_query("Select email from student") or die(mysql_error());
    $row3 =mysql_fetch_array($result3);
    $mail =$row3['email'];
    $to = $mail;
        $subject = "SPMS";
        $message = "You have a new Schedule" ;
    $headers = "From: $email";
        $sent = @mail($to, $subject, $message, $headers) ;
        if($sent) {print "Your Email Notifications send successfully"; } 
        else {print "We encountered an error sending your mail"; } 

3 个答案:

答案 0 :(得分:3)

你需要循环遍历结果集,

$subject = "SPMS";
$message = "You have a new Schedule" ;
while( $row3 = mysql_fetch_array($result3)) {
 $mail =$row3['email'];
 $to = $mail;     
 $headers = "From: $email";
 $sent = @mail($to, $subject, $message, $headers) ;
 if($sent) { print "Your Email Notifications send successfully"; } 
 else {print "We encountered an error sending your mail"; } 
}

以下是manual供您参考。

注意:不推荐使用Mysql_ *扩展程序。如果可能,请使用Mysqli或PDO。

答案 1 :(得分:1)

根据PHP手册,应该可以发送给“to”参数上以逗号分隔的多个收件人,因此使用您的代码$to = implode(', ', $mail)

您可以使用密件抄送标头发送给多个收件人,而不是透露他们的所有地址。

此外,您可能需要检查PHPMailer以简化网站中电子邮件任务的开发。

答案 2 :(得分:0)

我会遍历多个电子邮件地址,然后预先发送电子邮件地址,发送邮件。

<?php

    $addresses = array("mail@example.com", "mail2@example.com", "mail3@example.com");

    foreach ( $addresses as $index => $address )
    {
        // send email to $address.
    }

 ?>

当然,这不是你的实际代码,但逻辑应该足够清楚。