我有一个PHP脚本,它在函数调用中向多个收件人发送电子贺卡(分别向每个收件人发送一组逗号分隔的电子邮件地址和mail(((。然而,当查看收到的电子邮件时,每个客户都可以看到电子邮件发送到的其他地址,这让我相信它们都是在一封电子邮件中发送的,尽管有单独的mail((调用。这是我当前的代码:
$to = "email1@example.com, email2@example.com,email3@example.com";
$subject = "subject";
$message = "This is body";
$headers = "MIME-Version: 1.0" . "rn";
$headers .= "Content-type:text/html;charset=UTF-8" . "rn";
$headers .= 'From: <'.$from.'>' . "rn";
$status = mail($to,$subject,$message,$headers);
您要么需要使用库,例如PHPMailer,然后您可以设置BCC(盲复写(,这样他们就看不到其他电子邮件地址。
PHPMailer还有更多的优势,举几个例子:
- SMTP支持
- 附件
- 防止标头注入攻击
否则,您可以循环整个过程,一次只发送到一个电子邮件地址,但这并不是真正的性能。
在邮件功能中添加null,而resptions只能看到发件人
$mrows = $sql->execute("SELECT email FROM email", SQL_RETURN_ASSOC);
$mnum = sizeof ($mrows);
// get the email address for who we are sending this email to.
for ( $mi = 0; $mi < $mnum; ++$mi )
{
$email = $mrows [ $mi ] [ "email" ];
@$bcc_emails .= "".$email.", ";
}
@$bcc_emails .= "".$email.", ";
$headers .= "BCC: ".$bcc_emails."n";
mail(null, $email_subject, $email_text, $headers);