一つのpostfixで複数のドメインのメールを処理するときの設定

postfixの設定が未だに良く分からなかったので、先輩に聞きました。ざっと理解したことをメモします。

前提知識
■/etc/postfix/virtual
一つのpostfixで複数のドメインのメールを受け取るときに使用する。ドメインごとに、どのユーザーで処理するか記述する。
■/etc/aliases
ユーザーごとに処理を記述する。
設定概要
(1)/etc/postfix/virtualにどのドメインできたらどのユーザーとして処理するか書き込む
(2)/etc/aliasesに、各ユーザーはどんな処理をするか書き込む
(3)aliasesの反映とpostfixの再起動
設定詳細

(1)/etc/postfix/virtualに以下を書き込みましょう。書き込むところはファイルの一番下で大丈夫です。ファイルはvimで開いて大丈夫ですよ。

#midori-mobile.jp
midori-mobile.jp anything
@midori-mobile.jp midori_catch_all

/etc/postfix/virtualは、メールをpostfixが受け取ったときに、自分が配信を担当しているドメインか確認するファイルです。送られてきたメールのドメインが、ここに書いてあるドメインと一致すれば、postfixは送られてきたメールを自分自身に向けて再度転送します。


上記の例の場合、midori-midori.jpというドメインでメールが送られてきたら、自分自身のmidori_catch_allに向けて送られてきたメールを再送信します。


(2)/etc/aliasesに以下を書き込みましょう。書き込むところはファイルの一番下で大丈夫です。ファイルはvimで開いて大丈夫ですよ。

#midori
midori_catch_all: "|touch /tmp/midori.html"

メールが自分自身に再度転送されたら、postfixは/etc/aliasesを見て、ここにmidori_catch_all(メールの送り先)があれば""で書かれた部分の処理が回ります。


上記の例の場合、midori_catch_allに送られてきたメールは、""に書かれている処理を施します。この場合、/tmpの配下にmidori.htmlができます。


(3)変更したaliasesの反映とpostfixの再起動を行う(共に管理者権限で)

■aliasesの反映
shell> newaliases
■postfixの再起動
shell> service postfix restart

(参考)実際にメールを受け取れているかログベースで見てみましょう。

tail -f /var/log/ServerLogs/maillog

上記コマンドを実行して、メーラーから設定したドメインにメールを送ってみましょう。