0

ですから、スポーツクラブのメーリングリストが新しいメンバーでいっぱいになる時期がまたやってきます (新学期に起こります)。

昨年はphpのmail()機能を使ってメールを送信してみました。

これは、最初の約 50 件程度は問題なく動作しました (一度に 1 通のメールを送信する場合は引き続き問題なく動作します)。しかし、約 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);
}

これを引き起こした原因を誰か知っていますか?

4

2 に答える 2

2

SMTP リレーの ratelimit によってブロックされている可能性があります。

個々のメールを送信する代わりに、すべての人をフィールドに設定BCCし、TOandCCフィールドには誰も入れないようにすることをお勧めします。

$headers .= 'Bcc: ' . implode(",", $email_array) . "\r\n";
于 2012-08-14T13:24:14.817 に答える
0

"To:"-Header なしで Bcc を使用すると、電子メール "To:"-Header "undisclosed-recipients" が作成され、これらのメールは通常、厳格なサーバーによってブロックされます。ニュースレターにはお勧めしません。ブラックリストに登録されます。このメールを同じ ISP の数人のユーザーに送信すると、確実にブラックリストに登録されます。

30 分ごとに大量のメールを送信するスクリプトをお勧めします。

于 2012-08-14T13:52:05.237 に答える