1

2000 通以上のメールを送信する必要があり、そのために Swift Mailer ライブラリを使用しています。

独自のサーバーがあり、SMTP と sendmail トランスポートの両方があります。SMTP を使用しています:

$transport = Swift_SmtpTransport::newInstance('localhost', 25);

すべてのメールは少数の人に問題なく送信されますが、大量のメールを送信すると禁止されるのではないかと心配しています. 「禁止」が何を意味し、どのように見えるかはよくわかりませんが、その後が心配です.

では、そのような「禁止」が存在し、Swift Mailer で正しい方法で大量メールを実装する方法は本当ですか?

PS: 私のコードは次のようになります:

    // Create the Transport
    $transport = Swift_SmtpTransport::newInstance('localhost', 25);

    // Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);

    // Create a message
    $message = Swift_Message::newInstance($message_theme)
      ->setFrom(array($sender => $name))
      ->setTo($emails)
      ->setBody($message_text,"text/html")
      ;
    try {
        // Send the message
        $result = $mailer->send($message);
    }
    catch(Exception $e) {
        echo "Error: ".$e->getMessage();
    }
4

2 に答える 2

3

私はあなたがこれをスパムに使用しないことを望んでいます!!!

やるべきことがいくつかあります:

  • 同じメールアドレスを試してみてください(本文の受信者の名前を変更してください)
  • 100通/秒ではなく3〜4秒に1回メールを送信します。約2〜3時間で2000通のメールを送信する必要があります。
于 2012-08-20T11:45:37.190 に答える
2

ブラックリスト/グレーリストは確かに存在し、これらの問題を回避するために実装できるいくつかのベストプラクティスがあります。2,000通の電子メールの場合、ヘッダーが正当であり、本文に問題がなく、受信者が異なるドメインに属している限り、この問題に遭遇することはありません。ただし、khomyakoshkaが言及しているように、上記のコードは正しくないため、ループを使用して各メールを送信する必要があります。これにより、メールリスト全体が各ユーザーに公開されるのを防ぐことができます。

いくつかの追加のベストプラクティス:

1)Swiftmailerは、大量の電子メールを送信するのに役立つプラグイン(http://swiftmailer.org/docs/plugins.html)を提供しています。特に注目すべきは、ThrottlerおよびAntiFloodプラグインです。

2)受信者に合わせてメールの内容を変更する場合は、このタスクにデコレータプラグイン(プラグインページにも記載されています)の使用を検討してください。

これらのヒントがお役に立てば幸いです。

于 2012-08-27T22:06:26.497 に答える