我有一个完美的工作表单,除了它不会向多人发送电子邮件。它只发送给一个人。我该如何解决?我希望能够向每个人发送带有电子邮件地址的个人电子邮件,无论是否将相同的电子邮件发送给其他用户。
更新:我打印了一封电子邮件;如果我只选择一个电子邮件它会打印它然后如果我超过1那么它将不会打印任何东西。这意味着它不会检测超过1封电子邮件。
$sql = "SELECT 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);
$emails = array();
if($rows == 0)
{
print("");
}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{
array_push($emails, $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>";
foreach ($emails as $email) {
mail($email, "Subject: $subject", $message, $headers);
}
echo "";
答案 0 :(得分:1)
在PHP中,您通常会有一些看起来像
的代码 mail($to, $subject, $msg, $mailheaders);
您可以设置多个电子邮件收件人
$to = 'one@example.com' . ', '; // note the comma
$to .= 'two@example.com';
逗号和。=将允许多个电子邮件收件人。
如果超过两个,您将使用
$to = 'one@example.com' . ', ';
$to .= 'two@example.com' . ', ';
$to .= 'three@example.com';
要自动执行此操作,您可以为数组中的最后一个条目设置一个扭曲的foreach
foreach($email as $to) {
$lastone = next($email)===FALSE;
$to .= $email . ', ';
if(!$lastone){
$to .= $email;
}
答案 1 :(得分:1)
您需要使用MySQL的GROUP_CONCAT
将逗号分隔的电子邮件加入。通过在“到”字段中填充以逗号分隔的值,它将自动发送给多个收件人:
SELECT GROUP_CONCAT(DISINCT `email` SEPARATOR ',') from
friend_email_ids WHERE my_id='$id'"
GROUP BY `email;
Group Concat MySQL:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
PHP文档解释mail()
函数中的多个电子邮件收件人:
答案 2 :(得分:0)
问题在于您的查询:
$sql = "SELECT email FROM friend_email_ids WHERE my_id='$id'";
您只收到一个电子邮件地址,因为您只是选择一个电子邮件地址,来自ID为$id
的用户。要解决此问题,您必须选择所需的所有ID。首先,您需要确保有一个名为$ids
的变量,它存储以逗号分隔的ID列表。然后将您的查询更改为:
$sql = "SELECT email FROM friend_email_ids WHERE my_id IN ($ids)";
如果你的id是整数,则不需要像在原始查询中那样引用它们。如果它们是字符串,请确保在逗号分隔列表中引用它们。如果您不知道如何制作我所描述的$ids
变量,那么您需要阅读一些php教程。这是基本的东西。
否则,您的脚本应该有效。但正如有人在评论中指出的那样,你有很多多余的空白字符串代码,你可以删除大部分代码。