- - PR -
postfixがaliasを見にいかない?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-08-09 20:19
LINUX素人です。
行き詰ってしまったので、有識者の方々ご教示下さい。 main.cfにてalias_mapsを読んだ後に、trasnport_mapsを 読むようにしたいのですが、可能なのでしょうか? http://www.kobitosan.net/postfix/ML/arc-2.1/msg00628.html にも同様の質問で可能そうなのですが・・実際、動きません。。 alias_mapsで定義しているファイルではMLをaに転送と いう設定を入れています。DB化も実施しています。 ローカルからML宛にメールすると、ML宛のメールが そのまま転送されます。 ちなみにtransport_mapsの設定を外すと、a宛に 配送されます(ローカル内)。 main.cf内でtrasnport_mapsとalias_mapsの記述順を 入れ替えるなどしましたが、どうにも動きません。 参考までに、postconf -nです。 alias_database = hash:/etc/aliases alias_maps = hash:/var/spool/ml/etc/aliases allow_mail_to_commands = alias,forward,include command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 html_directory = no inet_interfaces = all local_recipient_maps = mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = example.com myhostname = test.example.com myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES sample_directory = /usr/share/doc/postfix-2.1.5/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop transport_maps = hash:/etc/postfix/transport unknown_local_recipient_reject_code = 550 よろしくお願い致します。 | ||||||||
|
投稿日時: 2007-08-09 22:28
エイリアスファイルに
test1: test3@example.com と書いておき、 transportに example.com :[192.168.0.1] と書いておけば、 test1に送信したメールは 宛先エンベロープを test3@example.com に書き換えた上で、 192.168.0.1に送信されると思います。 ところで、先にトランスポートが反映されると仰られるということは、 最初のメールの送信先は上記の例で言うと、 ***@example.com なのでしょうか? エイリアスとトランスポートファイルが提示されていないため、 その辺りがわかりません。 | ||||||||
|
投稿日時: 2007-08-10 10:29
F/A様
早速のご回答ありがとうございます。
上記のように記述すると、確かに書き換えますが、 転送してくれず、ローカル配送になります。 以下のように、transportに「smtp」と指定しないとローカル での配送になると認識しています。 example.com smtp:[192.168.0.1]
失礼しました。 transportは * :mail.example.com aliasは 本来fml(ML)を動かしたいので、fmlのファイルを includeしています。 切り分けの為、単純に以下のように記述でも結果は同様です。 test1: test3@example.com 以上、よろしくお願い致します。 | ||||||||
|
投稿日時: 2007-08-10 11:42
transport_mapsにワイルドカードを使用する場合ですか…
* :mail.example.com ↓文脈からたぶん下記ですよね * smtp:mail.example.com transport_mapsは 「mydestinationルーティング(ローカル配送)も上書きが可能」 と書かれています。 一方で、エイリアスというのは 「local(8) 配送エージェントにより 処理されます。」 と書かれています。 ですので、transport_mapsでリモート配送に変更されたメールについては、 エイリアスで処理されることは無いです。 私が可能だとお伝えしたケースは、 ・一番最初のメールの送信先→ローカル ・エイリアスで変換されたメールの送信先→リモート という場合です。 投稿者さんの設定では、 ・一番最初のメールの送信先→リモート になってしまいます。 もう少し無難に transport_maps の代わりに relayhost を使ってみてはいかがでしょうか? | ||||||||
|
投稿日時: 2007-08-10 14:24
ワイルドカードの指定では不可とわかりました。。
relayhostの場合も 「オプションの transport(5) テーブルにエントリがマッチしなかった場合の、 非ローカルメールのデフォルトの送り先ホスト」 とあるので、駄目なようです。 動作確認するとMLのドメインがローカル配送に合致し、エイリアスを 読みますが、エイリアスに記載された個人アドレスもローカルに合致し、 送り先ホストには転送されません。 MLをサブドメインにして個人アドレスを親ドメインにすれば可能とは思います。 F/A様が仰っている下記もそういことですよね。
MLも個人メールのドメインも同じで、リモート配送は 難しそうでしょうか? | ||||||||
|
投稿日時: 2007-08-10 15:10
mailbox_transportかfallback_transport辺りに
smtp:mail.example.com と書いておけばいいのではないでしょうか? 苦肉の策っぽいので非推奨という事で… | ||||||||
|
投稿日時: 2007-08-10 19:11
mydestinationから、example.comを外しちゃって
transportへMLを全て登録。 ML01@example.com ML02@example.com example.com smtp:[192.168.0.1] とかでは? 基本的にロンゲストマッチ優先ですし。MLはlocalへ落ちるのでは? MLがいっぱいあるならaliasesから生成すればいいですし。 _________________ 桃李不言 下自成蹊 | ||||||||
|
投稿日時: 2007-08-13 13:22
F/A様
ありがとうございます。 他に良い方法がない場合、検討してみます。 anights様 ありがとうございます。
確かに上記の方法だと実現できそうです。 (厳密には以下の2パターンでしょうか。) 1.mydestinationから、example.comを外した上で 以下をtransportへ登録 ML01@example.com local: example.com smtp:[192.168.0.1] 2.mydestinationに、example.comを登録した上で 以下をtransportへ登録 ML01@example.com : example.com smtp:[192.168.0.1]
すみません。こちらが理解できないのですが、 これはaliasを組んでおくということでしょうか? その場合、transpmapとaliasにどのように記載すれば良いか 思いつきません。。ご教示いただきたく思います。 |