PHP Sendmail Gives Up


PHP Sendmail Gives Up

所以,当我们的体育俱乐部邮件列表被新成员淹没时(发生在新学年),它又到了一年中的时候。

去年我们尝试使用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字段,TOCC字段中没有人。

$headers .= 'Bcc: ' . implode(",", $email_array) . "'r'n";

使用不带"To:"-Header的密件抄送会使电子邮件"To:"-Header成为"未公开的收件人",这些邮件通常会被严格的服务器阻止。我不建议将其用于时事通讯内容,"您将被列入黑名单。如果您将此邮件发送给同一ISP的几个用户,则肯定会被列入黑名单。

我会推荐一个每 30 分钟左右发送大量邮件的脚本。