- PR -

postfixがaliasを見にいかない?

投稿者投稿内容
ど素人
会議室デビュー日: 2007/08/09
投稿数: 8
投稿日時: 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

よろしくお願い致します。


F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 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/09
投稿数: 8
投稿日時: 2007-08-10 10:29
F/A様

早速のご回答ありがとうございます。
引用:

F/Aさんの書き込み (2007-08-09 22:28) より:
エイリアスファイルに
test1: test3@example.com と書いておき、

transportに
example.com :[192.168.0.1] と書いておけば、

test1に送信したメールは
宛先エンベロープを test3@example.com に書き換えた上で、
192.168.0.1に送信されると思います。


上記のように記述すると、確かに書き換えますが、
転送してくれず、ローカル配送になります。

以下のように、transportに「smtp」と指定しないとローカル
での配送になると認識しています。
example.com smtp:[192.168.0.1]

引用:

ところで、先にトランスポートが反映されると仰られるということは、
最初のメールの送信先は上記の例で言うと、
***@example.com なのでしょうか?

エイリアスとトランスポートファイルが提示されていないため、
その辺りがわかりません。


失礼しました。

transportは
* :mail.example.com

aliasは
本来fml(ML)を動かしたいので、fmlのファイルを
includeしています。
切り分けの為、単純に以下のように記述でも結果は同様です。
test1: test3@example.com

以上、よろしくお願い致します。
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 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/09
投稿数: 8
投稿日時: 2007-08-10 14:24
ワイルドカードの指定では不可とわかりました。。

引用:

私が可能だとお伝えしたケースは、
・一番最初のメールの送信先→ローカル
・エイリアスで変換されたメールの送信先→リモート
という場合です。

投稿者さんの設定では、
・一番最初のメールの送信先→リモート
になってしまいます。

もう少し無難に transport_maps の代わりに relayhost を使ってみてはいかがでしょうか?



relayhostの場合も
「オプションの transport(5) テーブルにエントリがマッチしなかった場合の、
非ローカルメールのデフォルトの送り先ホスト」
とあるので、駄目なようです。

動作確認するとMLのドメインがローカル配送に合致し、エイリアスを
読みますが、エイリアスに記載された個人アドレスもローカルに合致し、
送り先ホストには転送されません。

MLをサブドメインにして個人アドレスを親ドメインにすれば可能とは思います。

F/A様が仰っている下記もそういことですよね。
引用:

私が可能だとお伝えしたケースは、
・一番最初のメールの送信先→ローカル
・エイリアスで変換されたメールの送信先→リモート
という場合です。



MLも個人メールのドメインも同じで、リモート配送は
難しそうでしょうか?
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2007-08-10 15:10
mailbox_transportかfallback_transport辺りに
smtp:mail.example.com と書いておけばいいのではないでしょうか?

苦肉の策っぽいので非推奨という事で…
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 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/09
投稿数: 8
投稿日時: 2007-08-13 13:22
F/A様

ありがとうございます。
他に良い方法がない場合、検討してみます。


anights様
ありがとうございます。
引用:

anightsさんの書き込み (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へ落ちるのでは?



確かに上記の方法だと実現できそうです。
(厳密には以下の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]

引用:

MLがいっぱいあるならaliasesから生成すればいいですし。



すみません。こちらが理解できないのですが、
これはaliasを組んでおくということでしょうか?
その場合、transpmapとaliasにどのように記載すれば良いか
思いつきません。。ご教示いただきたく思います。

スキルアップ/キャリアアップ(JOB@IT)