0

私たちのシステムには500人のユニークユーザーがいて、セクションの1つが更新されたときに、すべてのユーザーにプレーンテキストの電子メールを送信する通知システムを作成しました。システムはswiftmailerを使用して電子メールオブジェクトを作成し、送信する前に500人のユーザーにBCCを送信します。

500ユーザーをBCCするということは、サーバーがこれを1通の電子メールを送信するものと見なすが多くのユーザーに送信することを意味するという安心感が欲しいだけです。サーバーホストによって設定された電子メール制限の制限に遭遇したくありません。

4

2 に答える 2

1

1通のメールとしてはカウントされません。まだ500人の受信者がいるため、メッセージの内容が同じであるという事実は関係ありません。さらに、ホストの電子メールサーバーは、おそらくメッセージあたりのBCC受信者の数をより妥当な値に制限しているので、これを実行できたとしても驚かれることでしょう。この種の爆発は、個々のメッセージを介して送信する必要があります。ホストがボリュームを抑えている場合は、Constant Contactetalなどの配信サービスにアクセスする必要があります。

于 2012-10-15T16:49:40.437 に答える
0

また、このBCC方式で1000通のメールを送信しようとしたところ、100通程度の制限だったようです。したがって、これは使用しないでください。代わりに、SwiftMailerが提供するプラグインを使用してみてください。

サンプルコードは次のとおりです。

$mailer = Swift_Mailer::newInstance(
  Swift_SmtpTransport::newInstance('smtp.example.org', 25)
);

// Use AntiFlood to re-connect after 100 emails
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100));

// And specify a time in seconds to pause for (30 secs)
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100, 30));

$content = 'email body'

$message = Swift_Message::newInstance('Email subject')
            ->setFrom(array('no-reply@email.com'=> 'From me'))
            ->setBody($content,'text/html');

$emails = array('email1@email.com','email2@email.com','email3@email.com');

foreach($emails as $recipient){
   $message->setTo($recipient);
   $mailer->send($message);
}

これがより簡単な解決策としてあなたの問題に役立つことを願っています。

于 2013-03-15T12:11:10.430 に答える