前回以下の質問をしたのですが、
http://q.hatena.ne.jp/1225161696
原因が「存在しないメールアドレスに送信した」為に、キューが溜まってログが肥大化したようです。
(VERPのテストをする為に、存在しないメールアドレスを指定して何度も送信を繰り返していました。配送したのは自分で管理するメールアドレスですので、スパム用途ではありません)
そこで質問ですが、配送に失敗したメッセージは再配送しない(再配送用のキューに溜まらない)ようにする事って出来るのでしょうか?
自分で調べたところ
maximal_queue_lifetimeとbounce_queue_lifetimeを0にしてmain.cfに追記すれば良いのかな?と思っているのですが、いまいち確証を持てず、質問させていただきました。
また、それをすることでログの肥大化を防ぎ、パフォーマンスの向上に繋がるのカモ教えて下さい。
※前回の質問の延長だと受け取っていただいて結構です。上記URLを参照下さい。
※再配送をさせないようにすることで、起こりうる弊害をご存じなら教えて下さい。
※再配送をさせないようにすることで、起こりうる弊害をご存じなら教えて下さい。
インターネット上では確実に配送される保証はありませんので、再配送を完全に止めてしまうと本来送るべきメールが送れなくなる可能性があります。
「存在しないメールアドレス」にメールを送ろうとすると自分のメールサーバーだけでなく他所にも負荷がかかりますので外部との接続を切った状態でテストしてください。
maximal_queue_lifetimeとbounce_queue_lifetimeを0にしてmain.cfに追記すれば良いのかな
設定上はそれでOK。
ただ、弊害として存在するメールアドレスに対する配信が行われない場合がある。
一切の配送失敗を許さないため、たまたま相手のメールサーバーにつながらなかったり、一時的なエラーメッセージが
帰ってきたときもそのメールはロストする。
そしてスパム対策の一環として「一時的なエラーメッセージを出す」というメールサーバーも存在する。
まともなメールサーバーの設定ではなく、弊害の方が大きいと思うが。
VERPのテストをする為
それならどうするのがベストなのでしょうか?
テスト目的なら、どのメールがエラーかは識別できるでしょう。
個別に QUEUE の削除を行うのが正攻法かと。
「個別に」というのが引っかかりますね。質問には書いていませんが、プログラムを使ってメールを送信するわけですから。手動ではなく、プログラム処理かサーバの時点で対処したい。(他のメールサーバはそうしているのではないでしょうか)
もしかしたら、メールログにこんなメッセージありますか?
「...warning: timeout on private/scache socket... 」(前後省略)
とすると、master.cf 内に
「scache unix - - n - 1 scache」
という記述をもらしているだけかもしれません。
これが無いと、処理がちょっと滞っただけで、すぐにキューへメッセージが逃げてしまう
ことがあります。特に、このメールサーバがウィルススキャンやコンテンツフィルタなぞし
ている場合は、大いにありえます。
あと「minimal_backoff_time」の値はいくらでしょうか?
デフォルトで1000秒ですので、15分程度は再度配送しないので、そんなに負荷がかかる
とも思えないのですが・・・・
maximal_queue_lifetimeとbounce_queue_lifetimeのデフォルト値「5日間」は
長すぎるという感じはします。これは基本的に殆どの送信先が「正常」であるという
予測の元で設定されていますね。
私なら4時間程度にします。特に昨今のメール乱発時代では・・。
とりあえず、頑張ってください。
もしかしたら、メールログにこんなメッセージありますか? 「...warning: timeout on private/scache socket... 」(前後省略) |
そういうエラーはありません。connect from unknownとか、time outはあります。
あと「minimal_backoff_time」の値はいくらでしょうか? |
300sにしています。
とりあえず、maximal_queue_lifetimeとbounce_queue_lifetimeの値を0はまずいとのことで、1dにして様子を見たいと思います。他に何か対処法や設定方法があればいいのですが、無さそうですし・・。(もしあれば、どなたか回答下さい)
なるほど。それもそうですね。
それならどうするのがベストなのでしょうか?何度も再配送のキューを実行しようとし、ログの肥大だけでなく、サーバの負荷が上がりすぎている状態にもなっていました。