aliasで別ユーザ宛のメールを受信する
Postfixのエイリアス機能を利用すれば、別ユーザ宛のメールを指定されたメールアドレスへ転送できます。例えば、taroというユーザに sales(実在するユーザでなくてもOK)という別名を対応付けることによってsales@sample.com 宛のメールがtaro@sample.comに届く。といった動きを実現できます。
設定は必要な手順は
- エイリアスファイル(データベース)のパス、記述方式を設定ファイルで定義
- エイリアスファイルの編集
- エイリアスファイルを元にデータベースファイルを更新する作業
の三点です。
1 2 3 |
[root@sample]# cat /etc/postfix/aliases infomation: hogehoge sales: information |
1.エイリアスファイルの編集
エイリアスファイルにはどの名前のユーザ宛にメールを受け取ったら、どのユーザに対してメールを転送するかを記述します。以下の出力例ではinformation@sample.com、hogehoge@sample.com宛に転送され、sales@sample.com宛のメールはinformation,すなわちhogehogeユーザに届くよう設定しています。
書式[エイリアス名: 転送先ユーザ] |
2.エイリアスファイルを元にデータベースファイルを更新する作業
編集が完了したらnewaliasesコマンド、またはpostalias /etc/postfix/aliasesを利用して編集したエイリアス内容をデータベース(aliases.db)に反映させます。Postfixが参照するファイルはdbファイルです。必ずデータベース更新作業を行いましょう。(しばらくすれば反映はされるという情報もありますが…、即時反映が無難でしょう)
1 2 3 4 |
[root@sample ~]# postalias /etc/postfix/aliases [root@sample ~]# ls -l /etc/postfix/aliases* -rw-r--r-- 1 root root 60 Jul 21 16:46 /etc/postfix/aliases -rw-r--r-- 1 root root 12288 Jul 21 16:47 /etc/postfix/aliases.db |
3.エイリアスDBファイルのパス、記述方式を設定ファイルで定義
転送設定の関連パラメータはmain.cfファイルのALIAS DATABASEセクションにあります。以下はインストール後のデフォルト状態であり以下パラメータによってエイリアスが定義されています。
1 2 |
alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases |
これらのパラメータの意味はPostfixが利用するエイリアスデータベースがhashというルックアップテーブル形式で、/etc/aliasesにあることを設定しています。注意点はパスを指定する際に拡張子.dbはつけないことです。エイリアスファイルを指定しているのではなく、エイリアスデータベースファイルを指定していることに注意しましょう。
1 2 3 |
<strong>[root@sample ~]# ls -l /etc/postfix/aliases* </strong><strong>-rw-r--r-- 1 root root 60 Jul 21 16:46 /etc/postfix/aliases </strong><strong>-rw-r--r-- 1 root root 12288 Jul 21 16:47 /etc/postfix/aliases.db</strong> |
hash形式は検索キーとアクションを一行づつ記述したファイルで、Berkeley DBデータベースをサポートするシステムで利用できます。Postfixはhash以外にも、様々なルックアップテーブルに対応しています。postconf –mコマンドで対応しているルックアップテーブル形式を確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@rproxy ~]# postconf -m btree cidr environ hash ldap mysql nis pcre proxy regexp static unix |
編集したエイリアスのルックアップテーブルファイルのパスがパラメータにあるか確認しましょう。なければ、変更、追記します。パラメータ変更後はmain.cfの変更を読み込ませる為にreloadします。
■変更前
1 |
<strong>alias_maps = hash:/etc/aliases</strong><strong>alias_database = hash:/etc/aliases</strong> |
■変更後
1 |
<strong>alias_maps = hash:/etc/aliases, hash:/etc/postfix/aliases</strong><strong>alias_database = hash:/etc/aliases, hash:/etc/postfix/aliases</strong> |
1 2 |
[root@rproxy ~]# /etc/init.d/postfix reload Reloading postfix: [ OK ] |
設定は以上です。