[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp: 2364] Re: (再)mailman導入時にpostfixの設定
- Subject: [postfix-jp: 2364] Re: (再)mailman導入時にpostfixの設定
- From: IWAMOTO Kouichi <sue@xxxxxxxx>
- Date: Mon, 23 Oct 2006 21:33:12 +0900
- Domainkey-signature: a=rsa-sha1; h=Received:Date:From:To:Subject:Message-Id:In-Reply-To:References:X-Mailer:X-Face:Mime-Version:Content-Type:Content-Transfer-Encoding; b=RQyD4T0+0d0Lz4cQPQZVW/FK9yvQ9Qiwp5krjccWhnMoz16UbRqbmPRuQRS9DXF6GoqSXfr1HK7B4uu4aQk+KjNOTZ4965kZH1ZBSVsEGeH8DWBa5ZiXyG84dDnKtDZQuaGnz8D1OCGcXCxs+PeftxSMcVtqyFrIJ+QZ5Nk3/JU=; c=nofws; d=iwmt.org; q=dns; s=tm050903
岩本といいます。
On Tue, 10 Oct 2006 07:11:02 +0900
Kentaro Hashimoto <mlist@xxxxxxxxxx> wrote:
> 「ここまでの理解」
> postfixはenvelopeのみを書き換えるとのことなので、実際にmessage toは
> そのまま書き換わらない。
virtual_alias_mapsではエンベロープのみを書き換えるという事であっています。
今回は関係有りませんが、canonical_maps等はヘッダも書き換えます。
> main.cfで定義されているものは、全てenvelopeが対象となる。
配送に関しては、通常はエンベロープのみを対象としていると考えてOKです。
これまた今回は関係有りませんが、header_checksのようにヘッダを対象とした
設定もあります。
> mailman(推定)はenvelopeは見ない。
mailmanが実際どのような動作をするかは詳しくは知りませんが、今回の場合は
Postfixがmailmanにメールを渡せていないので、とりあえずはmailmanがどのような
動作を考えずに、まずはPostfixがmailmanにメールを渡すように設定する事を
考えた方がいいとおもいます。
> 私の現在の設定では、example.com宛以外は全てvirtualで処理される。
これはちょっと違うと思います。virtual_mailbox_domainsで設定されている、
/etc/postfix/virtual_domains_mapsにはexample.comとvirtual.comが記述
されているので、基本的には両方ともvirtualで処理されます。
また、mydestinationにはなにも指定していないので、local配送するドメインは
存在しません。
# ドメインではないですが、user@[10.1.1.1] のようにIPアドレス形式で来た場合、
# そのIPアドレスが$inet_interfacesか$proxy_interfacesに含まれているならば
# そのメールをlocal配送します
> どこかで強制的にlocalに落とさなければいけない。
virtual_alias_mapsやvirtual_mailbox_mapsではプログラムを起動する事は
出来ませんので、aliasを使ってプログラムを起動する為には、対象のメールを
localに渡す必要があります。
> >ヒント1. postfix によって envelove from が test@example.com に書き換
> > えられた後、vertual トランスポートを使うのはなぜですか?
> > example.com は $mydomain に含まれているので、放っておけば local
> > トランスポートが使われますよね
$mydomainに含まれていても、それだけではlocalトランスポートは使われません。
localトランスポートが使われるのは、$mydestinationに含まれるドメインに
対してです。
どのトランスポートが使われるかについては、ADDRESS_CLASS_READMEが参考に
なると思います。
# http://www.kobitosan.net/postfix/trans-2.3/jhtml/ADDRESS_CLASS_README.html
> これまでの流れで行くと、transport_maps.cfにたどり着く前にはenvelopeの
> アドレスは書き換わっていると思われます。
はい、その通りです。
外部から来たメールは、Postfix内部で以下の順番で渡されていきます。
smtpd -> cleanup -> qmgr -> virtual/local
virtual_alias_mapsはcleanupが処理します。
それに対して、transport_mapsはqmgr(から呼ばれたtrivial_rewrite)が参照します。
この辺りについては、OVERVIEWが参考になると思います。
# http://www.kobitosan.net/postfix/trans-2.3/jhtml/OVERVIEW.html
> transport_maps.cf内でlocalへ落とすためには、本来
> test@xxxxxxxxxxx local
> となっている部分を
> test@example.com local
> とするべきなのでしょうか?(これは以前動かなかった)
そういう事になります。
以前試して動かなかったというのは、別の要因があったからです(後述)。
> というより、上記の説明でいくとexample.comは自動でlocalになるので、無意味
> ですよね?
example.comは$virtual_mailbox_domainsに含まれるので、デフォルトではvirtual
配送されます。
local配送させる為には、transportでの記述が必要です。
On Thu, 12 Oct 2006 00:38:55 +0900
Kentaro Hashimoto <mlist@xxxxxxxxxx> wrote:
> ここの一番下にあるところの注意事項をよく読み直してみた結果
> transportはvirtual_mailbox_mapsに登録されているアドレスのみ
> 対象となるようで、これはmysql(postfixadmin)自身にMLのアドレス
> が無いため、いくらtransportで書いてもunkown userとなっていた
> ようです。
Postfixでは、アカウントが存在するかのチェックを行うタイミングが2度あります。
一つはsmtpdが外部からメールを受け入れる時で、もう一つはlocalやvirtualが
実際に配送する時です。
"Recipient address rejected: User unknown in virtual mailbox table"という
エラーが出る時は、smtpdでのアカウントの存在チェックでエラーになっています。
virtual配送されるドメインに対してのsmtpdのアカウント存在チェックは、
$virtual_alias_mapsと$virtual_mailbox_mapsのどちらかにでも登録されて
いるかというチェックを行っています。
このチェックを通過する方法としては、一つは
> 試しに、test@xxxxxxxxxxxのアカウントをpostfixadminにて追加して
> みたら、見事にmailmanに配送されるようになりました。
というようにvirtualユーザとして登録してしまうという方法があります。
今回状況が複雑化している要因として、AMaViSを使用しているという事も
挙げられると思います。
AMaViSを使用している場合、以下のようにメールは流れます。
smtpd[1] -> cleanup[1] -> qmgr[1] -> smtp -> AMaViS
-> smtpd[2] -> cleanup[2] -> qmgr[2] -> virtual/local
transportで"test@example.com local"にしてもうまく動かなかったというのは、
おそらく以下のような動作になっていたからだと思います。
1. 外部のMTA/MUAがsmtpd[1]に対してtest@xxxxxxxxxxx宛のメールを渡そうとする。
2. smtpd[1]はtest@xxxxxxxxxxxの存在をチェックし、$virtual_alias_mapsで指定
されているvirtual_mailmanにtest@xxxxxxxxxxxのエントリが見つかるので、
メールを受け付けてcleanup[1]に渡す。
3. cleanup[1]は、virtual_mailmanのエントリに従い、test@xxxxxxxxxxx を
test@example.comに書き換えてキューに入れる。
4. qmgr[1]はキューからメールを取り出し、content_filterが設定されているので
smtpを使ってAMaViSにメールを渡す。
5. AMaViSはウィルスチェックを行った後、smtpd[2]にメールを渡そうとする。
6. smtpd[2]はtest@example.comの存在をチェックし、virtual_alias_mapsにも
virtual_mailbox_mapsにも存在しないのでメールの受付を拒否する。
> 試しに、test@xxxxxxxxxxxのアカウントをpostfixadminにて追加して
> みたら、見事にmailmanに配送されるようになりました。
>
> 今回は、いくつかあるバーチャルドメインのうち1つだけMLを複数
> 立ち上げるので、ユーザ自身が新たにMLを作成できないことには、
> 毎回手動で管理者がtransportを作成してpostfixadminにてアドレス
> を追加すれば対応可能ですので、これでもいいのですが、もう少し
> 何か良い対処法はありませんでしょうか?
[postfix-jp: 2298]にある設定の状態の場合、test@xxxxxxxxxxxのアカウントを
作成してもsmtpd[2]でのアカウントの存在チェックを通らないと思うのですが、
なにか他にも設定を変更しませんでしたか?
現在の設定がわかればもう少し助言が出来ると思います。
--
いわもと こういち(sue@xxxxxxxx/sue@xxxxxxxxx/sue@xxxxxxxxxx)
# なるようになれ、明日もイケイケ♪
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list
- References
-
- [postfix-jp: 2328] Re: (再)mailman導入時にpostfixの設定, Nakane Ryuji
- [postfix-jp: 2330] Re: (再)mailman導入時にpostfixの設定, Kentaro Hashimoto
- [postfix-jp: 2331] Re: (再)mailman導入時にpostfixの設定, Nakane Ryuji
- [postfix-jp: 2332] Re: (再)mailman導入時にpostfixの設定, Kentaro Hashimoto
- [postfix-jp: 2335] Re: (再)mailman導入時にpostfixの設定, Kentaro Hashimoto
[検索ページ]
[Postfix-JP ML Home]