mysqli发送电子邮件循环

时间:2013-10-30 13:55:21

标签: php

我坚持使用这段代码,并希望这里的聪明人能够提供帮助。 :)我正在进行一个查询,导致从数据库中选择两个电子邮件地址。我的代码不是向每个收件人发送一封电子邮件,而是向第一个收件人发送一封电子邮件,其中包含两封电子邮件。

换句话说,收件人A会收到一封电子邮件,说明

您好,Recipent A MESSAGE

您好,收件人B MESSAGE


收件人B根本没有任何消息。

这是代码。您可以提供的任何帮助表示赞赏!!!!

$sql2="SELECT c.email, c.fname FROM c INNER JOIN c_zip_save ON c.username = c_zip_save.username WHERE c_zip_save.zip_code = $zip";
$result = mysqli_query($con,$sql2); 
while($row = $result->fetch_array())
{
$rows[] = $row;
}

foreach($rows as $row)
{
$c_email = $row["email"];
$c_fname = $row["fname"];
$recipient2 = "$c_email";
$subject2 = "SUBJECT";
$message2 .= "Hi, $c_fname! \n\nThis is an automated courtesy message\n\n";

$extra2 = "From: myemail@myemail.com\r\n";

mail ($recipient2, $subject2, $message2, $extra2);
}

2 个答案:

答案 0 :(得分:4)

$message = "Hi, %s! \n\nThis is an automated courtesy message\n\n";

foreach($rows as $row)
{
    ...
    mail ($recipient2, $subject2, sprintf($message, $c_fname), $extra2);
}

答案 1 :(得分:1)

这是因为您每次都会在不重置的情况下附加到$message2字符串。您可以使用$message2 = "";在foreach循环开始时重置它,也可以将$message2 .= "your message"更改为$message2 = "your message"