簡體   English   中英

PHP郵件:多個收件人?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM