我在下面使用这个脚本,这是有效的.唯一的问题是它会向它收到的第一个电子邮件ID发送一封电子邮件.其余的都被抄袭了.那么我如何向所有电子邮件发送电子邮件.当我测试只是拉动电子邮件的脚本时,它可以工作,它会显示所有电子邮件.
码:
$sql = "SELECT STRAIGHT_JOIN DISTINCT email from
friend_email_ids WHERE my_id='$id'";
$result = mysql_query($sql);
$query = mysql_query($sql) or die ("Error: ".mysql_error());
if ($result == "")
{
echo "";
}
echo "";
$rows = mysql_num_rows($result);
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
$email = $row['email'];
print("");
}
}
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: $usermail\r\n";
$subject = "$full_name added";
$message = "<html><body>";
$message .= "Hello, <br><br>$full_name posted someth<br><br>";
$message .= "<a href=www.domain.com/signup.php?t=&sign=>Click here.</a><br><br>";
$message .= "</body></html>";
mail("$email", "Subject: $subject",
$message, "$headers" );
echo "";
Run Code Online (Sandbox Code Playgroud)
$email每次循环都会覆盖变量。相反,您想要创建一个数组,并每次通过循环将电子邮件添加到数组中。完成后,在发送邮件之前用逗号将电子邮件地址连接到数组中。
因此,在循环之前(也许在$rows = ...语句之后),初始化一个新数组,如下所示:
$rows = mysql_num_rows($result);
$emails = array(); /* Add this line */
Run Code Online (Sandbox Code Playgroud)
然后每次循环时,将电子邮件添加到数组中:
while($row = mysql_fetch_array($query)) {
array_push($emails, $row['email']);
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
最后,在发送的电子邮件中用逗号将它们连接起来:
mail(implode(',', $emails), "Subject: $subject", $message, $headers);
Run Code Online (Sandbox Code Playgroud)
或者,您可以向每个用户发送一封单独的电子邮件,如下所示:
foreach ($emails as $email) {
mail($email, "Subject: $subject", $message, $headers);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |