技術

Postfix + qmail + vpopmail + Dovecotでメールのバーチャルドメインで問題が

このタイトルでピンと来た方もおられると思いますが、
バーチャルドメイン設定(Postfix&Dovecot+qmail&vpopmail) – CentOSで自宅サーバー構築を参考にしながらバーチャルドメインの設定を行っていました。
(このサイトには非常に助けられています。感謝してもしきれないくらい。)

ほぼ丸々コピペで設定を進めて、といってもSELinuxを有効にした状態での運用を目指していたので、その辺の設定は追加で独自に行ったりしましたが、
まぁ、何とかバーチャルドメインの設定も完了しました。

で複数ドメインを実際に使って送受信のテストを行って、大丈夫かなと思ったところで
info@example.comといったメールアドレスを作成した場合に、
そのアドレスで受信できず、何故かLinuxのrootユーザー宛にメールが届くといった不可解な現象が発生することが判明。

現象を詳しく書くと、独自に作成したinfo@example.comへ外部からでも内部からでもいいのでメールを送信すると、
info@example.comの本来のMaildir(/home/vpopmail/domains/example.com/info/Maildir)へ、
メールが全く配信されず、rootユーザー宛にメールが配信されます。

うまく行く場合とうまく行かない場合の/var/log/maillogの違いを抽出すると以下の2行となりました。

うまく行く場合
postfix/pipe[1984]: 8F8787E01A1: to=<aiueo@example.com>, relay=vdelivermail, delay=0.18, delays=0.07/0/0/0.11, dsn=2.0.0, status=sent (delivered via vdelivermail service)
qmail: 1223454553.853712 starting delivery 59: msg 8257958 to local example.com-aiueo@example.com

うまく行かない場合
postfix/pipe[4467]: B11897E019C: to=<root@okechan.net>, orig_to=<info@example.com>, relay=vdelivermail, delay=0.19, delays=0.07/0/0/0.12, dsn=2.0.0, status=sent (delivered via vdelivermail service)
qmail: 1223619090.991671 starting delivery 3: msg 8257945 to remote root@okechan.net
※root@okechan.netは/etc/aliasesに設定したroot宛のメールの送信先。
ここでは例として書いているだけで、実際はroot@okechan.netというアドレスは存在しません。

うまく行かない場合は、何故か送信先がroot宛に書き換えられ、
さらにvpopmailで仕分けをするために、example.com-aiueo@example.comという形式でローカルに送信されなければならないところが、
root@okechan.net宛に外部に送信されてしまっています。

でまぁ、4種類ものソフトを連携させてるので色々と原因を調べるのに苦労したのですが、
(苦労の過程も書いておきたいのですが、面倒なので端折ります)
原因はpostfixの設定でした。

/etc/postfix/main.cfでは、以下の2つの項目が標準で以下のようになっていますが、
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

このままだと、受信してローカルに配送する際に、どうやら
「メールアドレスの@以前をユーザー名とみなして、そのユーザー名で/etc/aliasesを検索し、
該当があれば/etc/aliasesの記述にしたがって配送先を変更する。」
という処理が行われるっぽいです。

今回の環境ではどのアカウント向けのメールも最終的にはrootに行き、root宛のメールはroot@okechan.netという外部のアドレスに送るように
/etc/aliasesに指定していたために上記のような問題が発生していたようです。

それぞれ、以下のように空にし、
alias_maps =
alias_database =
postfixをrestartすることで、Linuxのユーザーアカウントと同じ名前のバーチャルドメインのメールも正しく受け取ることができるようになりました。

いやぁ、バーチャルドメインの設定と今回の問題の解決に丸2日掛かってしまいましたorz

コメント

すばらしい!!
わたしも同じ現象でつまづいてしまって、1日無駄にしてしまいました。
centossrv.comさんの指南では、aliasesの点については触れられていませんから、この記事はとても有用な情報だと思います。

うわ〜、コメント&お褒めいただき、ありがとうございます!
お役に立てて光栄です!

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください