[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp:03125] Re: セカン ダリでドメイン別に maximal_queue_lifetime を変えるには



池田です。

lst さんは書きました:
>postfix で複数のドメインのセカンダリを運用する時に、ドメイン毎に
>maximal_queue_lifetime を変更したいと思っているんですが、ちょっと調べた
>ところ難しそうでした。
 確かに、Postfix 自体はそのような機能を持っていませんね。
本家 ML でもそのような機能を求めている人がいるようですが、
根本的な解決には至っていないようです。
 ところで、やまぐちさんは具体的にどのような目的でこのような機能を
必要とされているのでしょうか? キューに入っている間、ずっと
送信を試みる必要があるのか、ETRN に応じて送るだけでよいのかに
よっても答えが変わるように思いますので。

>1.main.cf の maximal_queue_lifetime をそれぞれ変えた複数のサーバをたて
>て別々に処理する。
>        ⇒できることは明らかですが、運用の手間が大きいです。
 これをおこなうには、queue のディレクトリも全て別々にしなければ
いけないですし、var_max_queue_time の値の種類が増えると収集つかなく
なりそうです。

>2.いったん全て HOLD して個別に postsuper で処理する
>        ⇒スクリプトを定期的に実行すればできるかもと思いますが、どんなも
>        のでしょう。少なくとも処理は重そうです。
 これはちょっと困難なように思います。hold キューから deferred キューに
戻したときにすぐにバウンスされないようにするには、maximal_queue_lifetime
の値を最も長いものに合わせる必要がありますが (そうしないと HOLD から
期限切れのメールを取り出すと、1回配送を失敗しただけで即バウンス
されてしまう)、そうすると、短い maximal_queue_lifetime のものを
その時点でバウンスさせるのが困難になるかと。

>4.qmgr/nqmgr を改造する
>        ⇒一応ソースをざっとみましたが、以下のような方針でやれば改造でき
>        そうに思えました。皆様のご意見をお聞かせてください。
 方針はこれでよいのではないかと思います。

>  ・Hash などの外部テーブルを参照するようにしたいが、その方法は、
>          src/global/maps.c:maps_create() でプロセス最初にマップをオープン?
>          src/global/maps.c:maps_find() で検索?
>          src/global/maps.c:maps_free() をプロセス最後に呼んでクローズ?
>          ../virtual/virtual.c が参考になりそう
 このあたりは、Keith Stevenson さんが公開されているパッチも
参考にしてはいかがでしょうか。mailbox_size_limit という一つの
値しか持てないものに対してマップを適用するという点で、今回の
ものと似ているように思いますので。
 http://www.kagekaze.org/postfix/

もしパッチができましたら是非公開して下さい。本家 ML でも喜ぶ人が
多いのではないかと思います。

---
池田 望 (IKEDA Nozomu)   ike@xxxxxxxxxxxxx
http://www.kobitosan.net/ike/

Follow-Ups
[postfix-jp:03126] Re: セカン ダリでドメイン別に maximal_queue_lifetime を変えるには, lst
References
[postfix-jp:03124] セカンダ リでドメイン別に maximal_queue_lifetime を変えるには, lst

[検索ページ] [Postfix-JP ML Home]