[英]PHP mail: Multiple recipients?
我有這個代碼:
<?php
include("db.php");
$result = mysql_query("SELECT * FROM email");
while($row = mysql_fetch_array($result))
{
$to = $row['address'];
}
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "example@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
?>
在我的表(“電子郵件”)中,我有多個地址。 (它們不是逗號分隔。)如何將我的消息發送到所有這些地址?
while($row = mysql_fetch_array($result))
{
$addresses[] = $row['address'];
}
$to = implode(", ", $addresses);
正如mail()
手冊頁上指定的那樣,函數的“to”參數可以采用逗號分隔的地址列表。
用逗號分隔地址。
$to=array();
while($row = mysql_fetch_array($result)) {
array_push($to, $row['address']);
}
...
mail(implode(',', $to), $submit, $message, $headers);
我剛剛測試了您呈現的代碼,在使用它們之前,人們需要知道使用這種方式(“to”字段中的多個地址),該電子郵件中的每個人都可以看到所有的目的地。
此外,如果你正在使用密件抄送,他們也會知道列表中的第一個人。
意識到! :)
您只需要使用GROUP_CONCAT
返回以','
分隔的結果
$result = mysql_query("SELECT GROUP_CONCAT(address) FROM email");
根據Alex的上述答案,即使您使用BCC,收件人也會知道列表中的第一個人。 解決方案是將各個副本逐個發送到每個地址。
$emails = ['a@example.com', 'b@example.com', 'c@example.com'];
foreach ($emails as $email){ // or $result as $row
mail(
$email, // or $row['address']
'Same Subject',
'Same Content',
'From: same_sender@example.com',
'-f same_sender@example.com'
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.