Postfixのメール転送設定

8月 29, 2010

「メール転送だったら/etc/aliasesに転送先を書いてnewaliasesコマンド実行、でいいんでしょ」
とバカのひとつ覚え状態だったが、Postfixの場合微妙に違うようだ。

メール転送機能であるaliasesは、MTA共通の/etc/aliasesとPostfix用の/etc/postfix/aliasesがある。
Postfixを利用している場合でも/etc/aliasesで問題ないようだが、一応きちんとやると
どうなるかメモしておく。ただし実際やることはsendmailの場合とほぼ同じ。

1. 以下のように、aliasの定義を/etc/postfix/main.cfに記述する。

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases


編集後はリロードを実行。

# postfix reload


2. /etc/postfix/aliasesに転送先を記述。
以下の例はroot宛のメールを3つのアドレスに転送する。
場合によってはアドレスではなくユーザ名を記述、でも可。

root: inuyama@mail.com,inukawa@mail.com,inumura@mail.com


3. /etc/postfix/aliasesファイルをバイナリ化し、MTA(ここではPostfix)が参照できるようにする。

# postalias /etc/postfix/aliases


これにより/etc/postfix/aliases.dbが作成される。aliases.dbはMTAがメールの宛先を
書き換えるために利用されるらしい。

4. 動作中のPostfixに即時反映させるため、newaliasesを実行する。

# newaliases


5. 反映の確認。

# grep ^root /etc/postfix/aliases


2.で記述した内容が返されること。
mailコマンドでテストメールを送信。期待通りの動きにならなかったら、/var/log/maillogをチェック。

$ echo “This is a test mail.” | mail root@example.com


ちなみに、テストメールで動作確認できなかったケースでも後でちゃんとroot宛メールが
転送されてきたこともある。よくわからんがよしとした。

ここまで書いておいてアレだが、転送はユーザのホームディレクトリ直下に.forward
ファイルを作成する方法でも可能。この場合は.forwardファイルに転送先のアドレスを記述する。
転送元にもメールを残しておきたい場合はアドレス先頭に#をつける。

.forwardとaliasesの使い分けは、.forwardはどちらかというと一時的な利用に
おいて使われる、、、と教科書には書いてあるが、別に恒久的に利用してもいいだろう。
設定が複数に渡る場合などにきちんと管理したかったらaliases、かな。
(個人的見解)

Categories: Postfix

No Responses so far | Have Your Say!

Comments are closed.