Php 隐藏其他收件人

Php 隐藏其他收件人,php,email,Php,Email,我有一个mailer函数,它将邮件发送给从数据库中提取的收件人。如何隐藏其他收件人?密件抄送不起作用。邮件来源: $to=array(); while($row = mysql_fetch_array($subscrquery)) { array_push($to, $row['subscr_mail']); } $msgheader=$ttl; $mailheaders = "MIME-Version: 1.0\r\n"; $mailheaders .= "Content-type

我有一个mailer函数,它将邮件发送给从数据库中提取的收件人。如何隐藏其他收件人?密件抄送不起作用。邮件来源:

$to=array();
while($row = mysql_fetch_array($subscrquery)) {
    array_push($to, $row['subscr_mail']);
}
$msgheader=$ttl;

$mailheaders  = "MIME-Version: 1.0\r\n";
$mailheaders .= "Content-type: text/html; charset=UTF-8\r\n";
$mailheaders .= "From: ".$sender." <".$sender.">\r\n";
$mailheaders .= "Reply-To: ".$sender." <".$sender.">\r\n";
$mailheaders .= "Bcc: ".implode(',', $to)."\r\n";           
$mailmsga .= stripslashes($mailcontent);
$mailmsg .= strtr($mailmsga, array("<" => "\n<"));
mail(implode(',', $to), $msgheader,$mailmsg,$mailheaders);
$to=array();
while($row=mysql\u fetch\u数组($subscrquery)){
数组推送($to,$row['subscr_-mail']);
}
$msgheader=$ttl;
$mailheaders=“MIME版本:1.0\r\n”;
$mailheaders.=“内容类型:text/html;charset=UTF-8\r\n”;
$mailheaders.=“发件人:”。$sender.\r\n”;
$mailheaders.=“回复:”.$sender.\r\n”;
$mailheaders.=“密件抄送:”.introde(“,”,$to)。“\r\n”;
$mailmsga.=stripslashes($mailcontent);

$mailmsg.=strtr($mailmsga,array(通常,您希望每个收件人发送一封电子邮件。发送密件抄送将使您更有可能被垃圾邮件过滤器过滤

如果您的列表很大,那么您将希望避免使用PHP内置的
mail
方法,因为它可以打开和关闭每封电子邮件的连接。相反,您应该使用SMTP电子邮件程序,该程序将只为发送的所有电子邮件打开一个连接。可能的选项:

  • PEAR包(可能已经过时)有一个SMTP邮件程序
  • 是一个更具最新名称空间的包
大多数较大的框架,如Zend,可能也有自己的SMTP邮件程序


一般来说,使用现有软件包是一个好主意,这样您就不必担心邮件头插入、电子邮件的最大行长等问题。

通常,您希望每个收件人发送一封电子邮件。发送密件抄送将使您更有可能被垃圾邮件过滤器过滤

如果您的列表很大,那么您将希望避免使用PHP内置的
mail
方法,因为它可以打开和关闭每封电子邮件的连接。相反,您应该使用SMTP电子邮件程序,该程序将只为发送的所有电子邮件打开一个连接。可能的选项:

  • PEAR包(可能已经过时)有一个SMTP邮件程序
  • 是一个更具最新名称空间的包
大多数较大的框架,如Zend,可能也有自己的SMTP邮件程序


一般来说,使用现有的软件包是一个好主意,这样您就不必担心页眉插入、电子邮件的最大行长等问题。

最后一行有一个问题:

mail(implode(',', $to), $msgheader,$mailmsg,$mailheaders);
就在这里,您正在将电子邮件“发送”给所有人。密件抄送委员会已经处理了这一问题。在邮件的第一个参数中使用虚假地址(或您的地址,或其他任何内容),这应该可以解决问题。最后一行应该如下所示:

mail('mailer@wherever.com', $msgheader,$mailmsg,$mailheaders);

您的最后一行出现问题:

mail(implode(',', $to), $msgheader,$mailmsg,$mailheaders);
就在这里,您正在将电子邮件“发送”给所有人。密件抄送委员会已经处理了这一问题。在邮件的第一个参数中使用虚假地址(或您的地址,或其他任何内容),这应该可以解决问题。最后一行应该如下所示:

mail('mailer@wherever.com', $msgheader,$mailmsg,$mailheaders);
只需添加这一行

$headers .= 'To:  Unknown<undefined>' . "\r\n";
$headers.='To:Unknown'。“\r\n”;
只需添加这一行即可

$headers .= 'To:  Unknown<undefined>' . "\r\n";
$headers.='To:Unknown'。“\r\n”;

密件抄送不起作用是什么意思?它会生成错误?电子邮件不会到达?这可能对您的回答没有帮助,但您应该停止使用
mysql.*
函数。它们已被弃用。请改用(从PHP 5.1起支持)或(从PHP 4.1起支持)。如果您不确定要使用哪封邮件,。不,其他用户可以看到其他收件人的邮件。例如mail1@mail.com, mail2@mail.com, mail3@mail通用域名格式,mail4@mail.com..I需要其他用户看不到其他收件人的电子邮件,但他们只能看到她的电子邮件。@gatorix-在这种情况下,请看Greg的答案。你说密件抄送不起作用是什么意思?它会生成一个n错误?电子邮件没有到达?这可能对您的回答没有帮助,但您应该停止使用
mysql\u*
函数。它们已被弃用。请改用(从PHP 5.1开始支持)或(从PHP 4.1开始支持)。如果您不确定要使用哪封邮件,。不,其他用户可以看到其他收件人的邮件。例如mail1@mail.com, mail2@mail.com, mail3@mail通用域名格式,mail4@mail.com..I需要其他用户看不到其他收件人的电子邮件,但他们只能看到她的电子邮件。@gatorix-在这种情况下,请参见Greg的答案。