所以,当我们的体育俱乐部邮件列表被新成员淹没时(发生在新学年),它又到了一年中的时候。
去年我们尝试使用php的mail()
函数发送电子邮件。
这在大约前 50 个左右工作正常(并且一次发送一封电子邮件继续正常工作)。然而,在大约50岁之后,mail()
声称它已经发送了邮件,但另一端没有人收到过邮件。
我应该指出,在我的实现中,它只是循环访问我们数据库中的所有电子邮件并运行以下函数:
function sendMail($from,$fromname,$to,$subject,$body){
$subject = stripslashes($subject);
$body = nl2br(stripslashes($body));
$headers = '';
$headers .= "From: $fromname <$from>'n";
$headers .= "Reply-to: $fromname <$from>'n";
$headers .= "Return-Path: $fromname <$from>'n";
$headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">'n";
$headers .= "MIME-Version: 1.0'n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";
$headers .= "Date: " . date('r', time()) . "'n";
return mail($to,$subject,$body,$headers);
}
有谁知道是什么原因造成的?
您可能被 SMTP 中继上的速率限制阻止。
我建议不要发送单独的电子邮件,而是将每个人都设置为BCC
字段,TO
和CC
字段中没有人。
$headers .= 'Bcc: ' . implode(",", $email_array) . "'r'n";
使用不带"To:"-Header的密件抄送会使电子邮件"To:"-Header成为"未公开的收件人",这些邮件通常会被严格的服务器阻止。我不建议将其用于时事通讯内容,"您将被列入黑名单。如果您将此邮件发送给同一ISP的几个用户,则肯定会被列入黑名单。
我会推荐一个每 30 分钟左右发送大量邮件的脚本。