どのコンポーネントを使用するのが良いのでしょうか?IndyIdSMTPを使用してテストしたのですが、大量メール(DMメール)の一括送信には無理なような気がします。ネット関係のコンポーネントは全く使ったことが無くよく分かりません。どなたか教えてください。
テストしたのはInterBaseに登録したデータを1件ずつ読み込み送信するというものです。
BCCに入れて送れば一括送信できると思いますが、そういう方法ではなくてですか?
例えば、{name}さんこんにちは。とかのテンプレートの{name}をそれぞれの人の名前に置き換えるとか。
その場合は、ひとりひとりに送信しないとだめですね。
ソースを見る限り、Sendで送る分には一括送信できそうですけど、QuickSendを使っていたりしませんか?
QuickSendは毎回接続・切断しますので、大量送信には向きません。
流れとしては、
・接続
・while メール送信人数分繰り返し do begin
・IdSMTP.Send
・end;
・切断
です。
ありがとうございます。ご指摘の通りループの中に接続、切断を入れていました。ただ、一括で送信する量に問題(メールサーバーの負荷等)はないのでしょうか?OCN等のメールサーバーでトラブルが出ないか心配なのですが。どの程度の件数まで大丈夫なのか分かりますか?
プロバイダによって対応が違うので、プロバイダへ問い合わせてみてください。
他人に迷惑をかけるような送信でなければ、プロバイダは制限しないと思いますが、たまに送信件数制限をかけているプロバイダもあります。
もし、送信制限がある場合、代替案としては、
・たまに切断する(1回の送信件数に制限がある場合。送信総数の場合は不可)
・複数のSMTPサーバに振り分けて送信する
・自前のSMTPサーバを立てる
のどれかでしょう。
なるほど、複数のSMTPサーバーに振り分けるという方法もあるわけですよね。ありがとうございました。
ツイート | ![]() |