我需要PHP邮件在多次发送电子邮件时隐藏其他收件人地址



我有一个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);

最新更新