Postfixの再配送について質問です。


前回以下の質問をしたのですが、
http://q.hatena.ne.jp/1225161696

原因が「存在しないメールアドレスに送信した」為に、キューが溜まってログが肥大化したようです。
(VERPのテストをする為に、存在しないメールアドレスを指定して何度も送信を繰り返していました。配送したのは自分で管理するメールアドレスですので、スパム用途ではありません)


そこで質問ですが、配送に失敗したメッセージは再配送しない(再配送用のキューに溜まらない)ようにする事って出来るのでしょうか?

自分で調べたところ
maximal_queue_lifetimeとbounce_queue_lifetimeを0にしてmain.cfに追記すれば良いのかな?と思っているのですが、いまいち確証を持てず、質問させていただきました。

また、それをすることでログの肥大化を防ぎ、パフォーマンスの向上に繋がるのカモ教えて下さい。

※前回の質問の延長だと受け取っていただいて結構です。上記URLを参照下さい。
※再配送をさせないようにすることで、起こりうる弊害をご存じなら教えて下さい。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/11/04 16:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:zzz_1980 No.1

回答回数492ベストアンサー獲得回数64

ポイント23pt

※再配送をさせないようにすることで、起こりうる弊害をご存じなら教えて下さい。

インターネット上では確実に配送される保証はありませんので、再配送を完全に止めてしまうと本来送るべきメールが送れなくなる可能性があります。

「存在しないメールアドレス」にメールを送ろうとすると自分のメールサーバーだけでなく他所にも負荷がかかりますので外部との接続を切った状態でテストしてください。

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント23pt

maximal_queue_lifetimeとbounce_queue_lifetimeを0にしてmain.cfに追記すれば良いのかな

Postfix manual - qmgr(8)

設定上はそれでOK。


ただ、弊害として存在するメールアドレスに対する配信が行われない場合がある。

一切の配送失敗を許さないため、たまたま相手のメールサーバーにつながらなかったり、一時的なエラーメッセージが

帰ってきたときもそのメールはロストする。

そしてスパム対策の一環として「一時的なエラーメッセージを出す」というメールサーバーも存在する。


まともなメールサーバーの設定ではなく、弊害の方が大きいと思うが。

id:kt26

なるほど。それもそうですね。


それならどうするのがベストなのでしょうか?何度も再配送のキューを実行しようとし、ログの肥大だけでなく、サーバの負荷が上がりすぎている状態にもなっていました。

2008/10/28 17:19:33
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント22pt

VERPのテストをする為

それならどうするのがベストなのでしょうか?

テスト目的なら、どのメールがエラーかは識別できるでしょう。

個別に QUEUE の削除を行うのが正攻法かと。

Postfix Frequently Asked Questions

id:kt26

「個別に」というのが引っかかりますね。質問には書いていませんが、プログラムを使ってメールを送信するわけですから。手動ではなく、プログラム処理かサーバの時点で対処したい。(他のメールサーバはそうしているのではないでしょうか)

2008/10/28 23:11:55
id:hirotie No.4

回答回数25ベストアンサー獲得回数1

ポイント22pt

もしかしたら、メールログにこんなメッセージありますか?

「...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時間程度にします。特に昨今のメール乱発時代では・・。

とりあえず、頑張ってください。

id:kt26

もしかしたら、メールログにこんなメッセージありますか?

「...warning: timeout on private/scache socket... 」(前後省略)

そういうエラーはありません。connect from unknownとか、time outはあります。


あと「minimal_backoff_time」の値はいくらでしょうか?

300sにしています。

とりあえず、maximal_queue_lifetimeとbounce_queue_lifetimeの値を0はまずいとのことで、1dにして様子を見たいと思います。他に何か対処法や設定方法があればいいのですが、無さそうですし・・。(もしあれば、どなたか回答下さい)

2008/10/28 23:22:13
  • id:b-wind
    >他のメールサーバはそうしているのではないでしょうか
    何をしたいのかがよく分からんので応えようが無いですね。
    「テストで」といわれているのでテスト環境か有限小数のメールかと思いましたが、
    どうもそういうわけでもなさそうですし。

    目的を明確に示してもらえると回答のしようもあるのですが。
  • id:kt26
    思うのですが、テスト用途だと「機能を限定する」べきなのでしょうか?
    例えばバグやエラー、問題点があっても「テストだからそれでいいや」って思うのでしょうか?

    私はそうは思わないから質問をしました。

    例えテストや実験環境であっても、より向上したいと思うので
    一般的なメールサーバの状態(極論を言えば、はてなのメール送信のレベルまで)にしたいと思っています。

    明確な質問は「配送に失敗したメッセージの対処」だと質問から汲み取れませんでしょうか?
  • id:b-wind
    >明確な質問は「配送に失敗したメッセージの対処」だと質問から汲み取れませんでしょうか?
    悪いけど、そうは読めなかった。

    とりあえず、回答の上限には達しているようなのでこれ以上の回答は出来かねます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません