一つのマシンでいくつかのホスト名をapacheなどのVirtual Hostを使ってホスティングしていて、それぞれのホスト宛のメールを受け取りたいときのpostfixの設定。
設定方法は簡単なものから複雑なものまで色々あるがここでは簡単な2つの方法を示す。ここではa.example.comとb.example.jpをホスティングしているとする。
1、もっとも簡単な方法。
以下のように、/etc/postfix/main.cfのmydestinationにホストを加える。
1 |
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, a.example.com, b.example.jp |
上記のようにした場合、info@a.example.com宛のメールとinfo@b.example.jp宛のメールは両方共OSアカウントのinfoさんのメールディレクトリ /home/info/Maildir/に入る。inaiuser@a.example.com宛でinaiuserのOSアカウントがない場合はエラーが返る。
2、もうちょっと複雑な方法
以下のように、/etc/postfix/main.cfに記述する。
1 2 |
virtual_alias_domains = a.example.com, b.example.jp virtual_alias_maps = hash:/etc/postfix/virtual |
/etc/postfix/virtualを以下のように記述する。
1 2 3 |
info@a.example.com abe info@b.example.jp fukuda @a.example.com koizumi |
こうすると、info@a.example.com宛のメールはOSアカウントのabeさんのメールディレクトリに入り、info@b.example.jp宛のメールはOSアカウントのfukudaさんのメールディレクトリに入り、xxx@a.example.com宛のメールなどのここで定義されていないのもはkoizumiさんのメールディレクトリに入り、yyy@b.example.jp宛などのメールはエラーになる。
この方法を使う場合は、1のようにmydestinationを定義しないこと。
元ネタともっと複雑な方法についてはこちら