Php 通过电子邮件发送个人结果(10个结果=10封电子邮件),而不是包含所有数据的1封电子邮件

Php 通过电子邮件发送个人结果(10个结果=10封电子邮件),而不是包含所有数据的1封电子邮件,php,arrays,email,foreach,Php,Arrays,Email,Foreach,我有下面的脚本调用它来查询数据库并将结果输出为电子邮件。但是,我想单独发送结果(10个结果=10封电子邮件),而不是在一封电子邮件中发送所有结果 任何善良的灵魂都能为我指明正确的方向?这就是我现在拥有的。我应该预测结果吗 <?php //authentication for database $hostname = "xxxx"; $username = "xxxx"; $password = "xxxx"; //connection to the database $dbhan

我有下面的脚本调用它来查询数据库并将结果输出为电子邮件。但是,我想单独发送结果(10个结果=10封电子邮件),而不是在一封电子邮件中发送所有结果

任何善良的灵魂都能为我指明正确的方向?这就是我现在拥有的。我应该预测结果吗

    <?php
//authentication for database
$hostname = "xxxx";
$username = "xxxx";
$password = "xxxx";

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL");

//select a database to work with
$selected = mysql_select_db("test",$dbhandle) 
or die("Could not select examples");

//execute the SQL query and return records
$result = mysql_query("SELECT * FROM tbl_assignees WHERE work_pass_expiry = DATE(NOW())");

if (!$result) {
//handle your error
die('The query failed.');
}

//variable for email message
$to      = 'some email address';
$emailBody = "";

//fetch tha data from the database 
while ($row = mysql_fetch_array($result))
{
$subject = $row['name']."'s"." work pass is expiry soon";
$emailBody .="Creator: ".$row['rlog_create_user_name']." \n";
$emailBody .="Company: ".$row['company']."\n";
$emailBody .="Assignee's Name: ".$row['name']." \n";
$emailBody .="Fin No: ".$row['fin_no_']." \n";
$emailBody .="Relationship: ".$row['relationship']." \n";
$emailBody .="Main Holder's Fin :".$row['main_holder_fin']." \n";
$emailBody .="Work Pass Type :".$row['work_pass_type']." \n";
$emailBody .="Work Pass Expiry :".$row['work_pass_expiry']." \n";
$emailBody .="Passport No. :".$row['passport_no_']." \n";
$emailBody .="Passport Expiry :".$row['passport_expiry']." \n";
$emailBody .="D.O.B :".$row['d_o_b']." \n";
$emailBody .="Contact :".$row['contact']." \n";
$emailBody .="Email :".$row['email']." \n";
$emailBody .="Notes :".$row['note'];

}

$headers = 'From: Work Pass Notification System <no-reply@someemailaddress>' . "\r\n" .
    'Reply-To: someemailaddress' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();


if(mail($to, $subject, $emailBody, $headers)) {
echo $emailBody;
echo 'Email sent successfully!';
} else {
echo $emailBody;
die('Failure: Email was not sent!');

}   
//close the connection
mysql_close($dbhandle);
?>

在while循环中添加邮件功能,如下所示:

while ($row = mysql_fetch_array($result))
{    $to      = 'some email address'; // it's good if you get email ids from database also
     $emailBody=""; // Clear body for each email.

     /** Your Email Subject and body Here **/

     $headers = 'From: Work Pass Notification System <no-reply@someemailaddress>' . "\r\n" .
    'Reply-To: someemailaddress' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

      if(mail($to, $subject, $emailBody, $headers)) {
          echo $emailBody;
          echo 'Email sent successfully!';
      } else {
          echo $emailBody;
          die('Failure: Email was not sent!');
      }
}
while($row=mysql\u fetch\u array($result))
{$to='someemail address';//如果您也从数据库中获得电子邮件ID,那就好了
$emailBody=”“;//清除每封电子邮件的正文。
/**你的邮件主题和正文在这里**/
$headers='发件人:工作过程通知系统'。“\r\n”。
'答复:someemailaddress'。“\r\n”。
'X-Mailer:PHP/'.phpversion();
if(邮件($to、$subject、$emailBody、$headers)){
echo$emailBody;
回显“已成功发送电子邮件!”;
}否则{
echo$emailBody;
die('失败:未发送电子邮件!');
}
}

这将发送与从数据库检索到的记录相同数量的电子邮件。

我尝试过,它确实发送了2封电子邮件,其中2封是匹配结果。但是,现在以以下格式发送的电子邮件,第一封电子邮件包含A,第二封电子邮件包含A+B。我如何确保电子邮件内容不会添加到下一封电子邮件中,即第一封电子邮件仅包含A,第二封电子邮件仅包含B?我马上就要完成了,真的需要指导。请告知。谢谢,正如我提到的,每次在循环中添加内容之前,您都必须使用$emailBody=”“清除$emailBody内容。这将确保以前的邮件内容不会添加到下一个邮件中。