Postfixのメール転送設定
「メール転送だったら/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、かな。
(個人的見解)