-1

TABLE(学生)のすべての学生に電子メール通知を送信するためにこのコードを試しました。もちろん、学生の電子メールはすでにデータベースに保存されているため、このコードを試した場合、1人の学生(の最初の学生)にのみ電子メールを送信します。テーブル ) !「テストメールサーバーツール」を使用して、メールが送信されるかどうかを確認しました。メールを送信するのは1人の学生のみですが、テーブル内のすべての学生(学生)に送信するにはどうすればよいですか?

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

3 に答える 3

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

参考までにマニュアルを載せておきます。

注: Mysql_* 拡張機能は非推奨です。可能であれば、Mysqli または PDO を使用してください。

于 2012-12-03T14:55:35.867 に答える
1

PHPマニュアルによると、「to」パラメータでカンマで区切られた複数の受信者に送信できるはずなので、コードを使用して、$to = implode(', ', $mail)

Bcc ヘッダーを使用して、すべてのアドレスを公開せずに複数の受信者に送信できます。

また、PHPMailerを確認して、サイトでの電子メール タスクの開発を容易にすることもできます。

于 2012-12-03T15:03:35.740 に答える
0

複数のメールアドレスをループしてから、メールアドレスごとにメールを送信します。

<?php

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

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

 ?>

もちろん、これは実際のコードではありませんが、ロジックは十分に明確である必要があります。

于 2012-12-03T14:59:34.750 に答える