- ベストアンサー
Net::SMTPでメール配信できる限界件数
今Net::SMTPを使ってメール配信するプログラムを作っています。 簡単なメルマガ配信のようなものです。 プログラムではループを使って一件、一件配信するのではなく、bccで一斉に送ろうと思っています。 その時に、bccで送ることのできるMAX件数はいくらぐらいなのでしょうか? 実際に送る件数は300件を超えることはありません。 ご教示よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
メール送信はスパムとかDoSとかのはなしがあって制限が多くなっているので案外苦労したりします。 >ループで回して送信した方が、制限がない分いいですよね。 そうでも無くて、SMTPセッション数を制限している場合もあります。 1通のメールで宛先が300の場合、SMTPセッション数は1ですが、 宛先1つのメールを300通送るとSMTPセッション数は300です。 これが影響する場合もあります。(もちろんサーバのポリシー次第です) 現実的には制限を越えないぐらいの数で回すということになると思います。 例えば1通で宛先を50件として必要な回数回すような感じです。 また、ループもそのまま回すのではなく適切なWaitを入れる方が良いです。 余談ですが、 携帯メールに送信する場合は、宛先不明アドレスにも制限があるのでこちらもフォローする必要があります。
その他の回答 (1)
- maesen
- ベストアンサー率81% (646/790)
>その時に、bccで送ることのできるMAX件数はいくらぐらいなのでしょうか? プログラム的な制限でしょうか? それとも、サーバまたはネットワーク上の制限でしょうか? >今Net::SMTPを使ってメール配信するプログラムを作っています。 はっきりしたドキュメントなどは見つけられませんが、おそらくプログラム的な制限は無いと思います。 だからといって無制限に送れるかといえばそうではなく、smtpサーバにより制限されます。 Net::SMTPを使用するということは、何らかのsmtpサーバを使用してそこに最終的な配送を任せることになるはずです。 従って、使用するsmtpサーバがどういう制限を掛けているかを確認しなければなりません。 サーバにより制限のポリシーは違うでしょう。 たとえば、GoogleAppsではこんなポリシーになっています。 https://support.google.com/a/answer/166852?hl=ja あくまでも例ですが、ここにはsmtp経由の場合の制限は99件と書かれているため、300件となるとGoogleAppsでは一度には送ることができないということになります。 smtpサーバの管理者や提供業者に確認したほうが良いでしょう。
補足
なるほどサーバ上の制約はありそうですね。 当初はループで回して一件ずつ送ろうかと思ったのですが、サーバの負荷から考えてBCCで送る方がいいのかなと思った次第です。負荷があまり変わらないようでしたら、ループで回して送信した方が、制限がない分いいですよね。
お礼
なるほど、いろいろ勉強になりました。 ありがとうございます。 今回は50件ごとにわけてメール送信したいと思います。