Php 通过bbc发送邮件不起作用

Php 通过bbc发送邮件不起作用,php,Php,干草 我用了这个密码 $to = "mial@live.com,mail@yahoo.com"; $subject = "Mini-mass Emailer"; $message = "<a href='#'>Hello World</a>"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n

干草 我用了这个密码

$to       = "mial@live.com,mail@yahoo.com";
$subject  = "Mini-mass Emailer";
$message  = "<a href='#'>Hello World</a>";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Your Name <me@mydomain.com>' . "\r\n";
$headers .= 'Bcc: {$to}' . "\r\n";

if(mail($to, $subject, $message, $headers)){
    echo 'ok';
}
$to=”mial@live.com,mail@yahoo.com";
$subject=“Mini mass Emailer”;
$message=“”;
$headers='MIME版本:1.0'。“\r\n”;
$headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
$headers.=“发件人:您的姓名”。“\r\n”;
$headers.='Bcc:{$to}'。“\r\n”;
if(邮件($to、$subject、$message、$headers)){
回声‘ok’;
}
但看看发生了什么 每个用户都可以看到完整的用户列表


您的邮件呼叫正在将$to作为to参数传递,这意味着这些电子邮件将位于to标头中,请尝试传递空字符串。您正在将信息传递到密件抄送头中,因此电子邮件仍应以这种方式发送给他们。

这是因为您已将所有用户置于“收件人”行中。您也在将它们传递到“密件抄送”行,因此这样做可能会对您有所帮助,但据我所知,您在“收件人”行中至少需要一个地址(尽管情况可能并非如此)。不过,对于每个这样做的人来说,这看起来都很奇怪

避免这些问题的最佳方法是多次发送电子邮件,一次发送给每个用户。要修改代码示例以实现此目的,我将执行以下操作:

$toAddresses = array("mial@live.com", "mail@yahoo.com");
$subject  = "Mini-mass Emailer";
$message  = "<a href='#'>Hello World</a>";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Your Name <me@mydomain.com>' . "\r\n";

foreach ($toAddresses as $to) {
    if(mail($to, $subject, $message, $headers)){
        echo "OK - sent message to {$to}";
    }
}
$toaddress=数组(“mial@live.com", "mail@yahoo.com");
$subject=“Mini mass Emailer”;
$message=“”;
$headers='MIME版本:1.0'。“\r\n”;
$headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
$headers.=“发件人:您的姓名”。“\r\n”;
foreach($ToAddressas$to){
if(邮件($to、$subject、$message、$headers)){
回显“确定-已将消息发送到{$to}”;
}
}

最简单的方法是使用phpguru.org的邮件类:

在这里,您可以使用setBcc()指定应该是“盲”的地址,这非常简单,而且效果很好。我在每个项目中都使用这个类


致以最诚挚的问候。

但我认为这会增加服务器负载。是的,它会这样做,但我认为这不应该是一个太大的问题。如果您必须发送给大量的收件人,那么将他们分开并每次运行一个子集可能是明智的。如果这是一个相对较小的数量,那么额外的负载就没有什么值得担心的了。减少服务器负载的一个好方法是将其安排在低活动点。此外,您可以在循环中加入一些东西,在每个循环之间引入一点延迟,而不是将它们全部触发。这样可以避免邮件服务器过快崩溃。