-1

特定のユーザーに電子メールを送信する際に問題が発生したことはありませんが、データベース (MYSQL) で見つかったすべての電子メールに同様のメッセージを送信しようとしたときに問題が発生しました。

データベースに 4 人のユーザーが見つかった場合でも、4 人のユーザーすべてに送信されますが、同様の内容の電子メールが 4 回繰り返されます。250 人のユーザーが見つかった場合、250 の繰り返しコンテンツ。

コードのコードスニペットはそのままで、いじり回して何度もテストしましたが、アイデアが尽きました。ご覧いただきありがとうございます。どんな助けでも大歓迎です...

} elseif ($temptarget == 'Parents'){

$g1chk = mysql_query("SELECT * FROM wmsidb WHERE s_stat='ACTIVE'");
$g1found = mysql_num_rows($g1chk);

While ($rowg1 = mysql_fetch_array($g1chk)){

   $tempemail1 = $rowg1['g1_email'];
   $tempemail2 = $rowg1['g2_email'];

   $comments = (stripslashes($_POST['message']));

   $to = "Parent <$tempemail1>, Parent / Guardian <$tempemail2>" . "\r\n";
   $subject = "[$anndate] Announcement ::: $temptitle";

   // Main Headers
   $headers = "MIME-Version: 1.0" . "\r\n";
   $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";

   // Additional Headers
   $headers .= "From: Contact Us <mailer@mailer.com>" . "\r\n";

   $message .= "
   <table align='center' border='0' width='100%' cellpadding='6'>
   <tr><td width='100%' align='left' bgcolor='#33327e'><font face='Arial' size='4' color='#ffffff'><b>" . strtoupper($temptitle) . "</b></font></td></tr></table>

   <table align='center' border='0' width='100%' cellpadding='3'>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'> date </font></td><td width='90%' align='left'><font face='Arial'>" . $tempdd . " " . strtoupper($tempmm2) . " " . $tempyear . "</font></td></tr>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'> posted by </font></td><td width='90%' align='left'><font face='Arial'>" . $temppost . "</font></td></tr>
   <tr><td width='10%' align='right' valign='top'><font face='Arial' color='#636363'> message </font></td><td width='90%' align='left'><font face='Arial'>embedded below...</font></td></tr>
   </table>

   <br/>

   <table align='center' style='border:1px solid grey' width='95%' cellpadding='18'>
   <tr><td width='100%' align='left'><font face='Arial'>" . $comments . "</font></td></tr>
   </table>

   <br/>";


   if ($tempfeedback == 'Yes'){

   $message .= "
   <table align='center' border='0' width='100%' cellpadding='3'>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'> feedback </font></td><td width='90%' align='left'><font face='Arial'>We need you to provide us a response to announcement above.</font></td></tr>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'></font></td><td width='90%' align='left'><font face='Arial'>Please complete the 'Feedback Form' found in the link below. Thank you!</font></td></tr>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'> link </font></td><td width='90%' align='left'><font face='Arial'><b><a href='' target='_blank'>link</a></b></font></td></tr>
   </table>";

   } else {

   $message .= "
   <table align='center' border='0' width='100%' cellpadding='3'>
   <tr><td width='10%' align='right'><font face='Arial' color='#636363'> feedback </font></td><td width='90%' align='left'><font face='Arial'>No feedback required.</font></td></tr>
   </table>";

   }


   $message .= "
   <p><font face='Arial'><br/>

   <br/><br/>

   Footer with contact information

   </font></p>";


   mail ($to,$subject,$message,$headers);

}

   echo "<tr><td width='80%' align='right'><font face='Arial' color='#636363'>" . $g1found . " emails sent to parents / guardians </font></td><td width='20%' align='middle'><font face='Arial'>OK</font></td></tr>";
   echo "<tr><td width='80%' align='right'><font face='Arial' color='#252525'>module terminated</font></td><td width='20%' align='middle'><font face='Arial'></font></td></tr>";

   echo "</table>";
4

1 に答える 1

2

確かにそうです。

変数 message はループが実行されるたびに入力されるため、各ループの開始時に次のようにします。$message= "";

于 2013-02-05T12:30:15.540 に答える