- ベストアンサー
メルマガ配信システム
以前、下記の件でご質問をさせて頂きましたが、原因がいまだに特定できていないので、対策がまだとれていない状況です。sendmailプロセスが大量に作成されたのか、メールキューにたまった量が多くてディスクスペースを圧迫したのか、それ以外の原因だったのかなどです。 まずは、原因を究明したいのですが、究明の方法として何かお分かりになる方がいらっしゃいましたら、些細な情報でも構いませんので、ご教示して頂けますと幸いです。サーバーのOS環境はLinuxを使用しております。 どうぞ、よろしくお願いいたします。 <メールマガジンの配信システムを構築しました。 <しかし、約15000件分を大量配信すると、問題がでてしまいます。サーバーから応答がとまり、あげくの果てには、セッションが切れてしまい、「サーバーがみつかりません」の画面がでてしまいます。 おそらく、SMTPサーバのキューが詰まってしまうのだと思われます。 <状況 <(1)15000件をBCCではなく、TOで1件1件配信しています。 <なぜかというと、15000件のデータはDBに登録されているのですが、DBから引っ張ってきた個々の情報を各々のメールに載せなければならないからです。 <※BCCであれば、おそらく問題はないのだと思われます。 <(2)4000件で試した場合は、問題ありませんでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おそらく、smtpサーバとのコネクションを待ってるところで 追いつかなくなってるのだと思います。 /var/log/maillogを解析してみてください。 > <※BCCであれば、おそらく問題はないのだと思われます。 そうなのですか? 復旧させた後、再度配信を開始するようであればキューに溜まっていますが、 そうでない場合は、受け付けるところで止まっていると思います。
その他の回答 (2)
- tsukachan
- ベストアンサー率42% (202/470)
#1です sleep関数で遅延させなくても時間あたり1回線10万通くらいは平気ですよ。どこかにボトルネックがありそれさえ解決すれば。SMTPサーバが1台では無理ですけどね。経験から行くとSMTPサーバを分散させる方法になるかと。並列で3・4台位で処理できますかね?そのテスト結果だと。 ただ、前述通り特定のサーバからブロック食らったらどうしようもありませんけどね。
お礼
ご回答ありがとうございます。 アプリケーション的には、Sleepを入れる、それでも駄目ならサーバー構成を含めたインフラ構築を見直すしかないですね。
- tsukachan
- ベストアンサー率42% (202/470)
どこに送ろうとしているのか判りませんが、相手のサーバによっては短時間に大量のメールを送信するとブロックされます。(携帯メールなんかそうですね) それぞれの送り先サーバが分散されてれば良いのですが。 セッションが切れるとはどのサーバからどのサーバに対してセッションが切れます? ご自分のSMTPサーバでしょうか?それとも送信先のPOPサーバでしょうか?DBサーバ?WEBサーバ? サーバとネットワークの構成を考えてどこに障害が起こっているかを切り分けないと対応策は出てきませんね。
お礼
ご回答ありがとうございます。 /var/log/maillogを見たのですが、0バイトでしたので、再現させた際に確認してみます。