我已尝试使用此代码向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"; }
答案 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.
}
?>
当然,这不是你的实际代码,但逻辑应该足够清楚。