Postfix Virtual Domain Hosting Howto
postfixのバーチャルメールボックスの使い方を紹介
[http://www.postfix.org/VIRTUAL_README.html](Postfix Virtual Domain Hosting Howto)
mydestination
As simple as can be: shared domains, UNIX system accounts
-
特徴
-
mydestination(受信アドレス)にドメインを追加する
-
ローカル配送にUNIXシステムアカウントのメールボックスを使用する
-
/etc/postfix/main.cf
mydestination = $myhostname localhost.$mydomain ... example.com
- 制限事項
- 配送の振り分けができない(info@my.host.name宛のメールはinfo@example.com宛のメールと同じUNIXシステムアカウントに配送される)
- ユーザ数が多くなると管理が不便になる
virtual_alias_domains
Postfix virtual ALIAS example: separate domains, UNIX system accounts
-
特徴
-
仮想エイリアスドメインは全てUNIXシステムアカウントやリモートアドレスにaliasされる
-
ローカル配送にUNIXシステムアカウントのメールボックスを使用する
-
/etc/postfix/main.cf
virtual_alias_domains = example.com ...他のホスティングドメイン...
virtual_alias_maps = hash:/etc/postfix/virtual
-
virtual_alias_domainsでexample.comが仮想エイリアスドメインであることを伝える
-
この設定を忘れると配送拒否(relay access denied)されてしまう
-
mydestinationのドメインとvirtual_alias_domainsのドメインは重複しないようにする
-
/etc/postfix/virtual
postmaster@example.com postmaster
info@example.com joe
sales@example.com jane
# catch-allアドレスを実装するには以下のエントリのコメントを外します。
# @example.com jim
...他のドメイン用のバーチャルエイリアス...
-
postmaster@example.com宛のメールはローカルのpostmasterへaliasされる
-
info@example.com宛のメールはUNIXシステムアカウントのjoeへaliasされる
-
ales@example.com宛のメールはUNIXシステムアカウントのjaneへaliasされる
-
example.comのそれ以外のメールアドレスは「User unknown」というエラーメッセージで拒否される
-
/etc/postfix/virtual 設定反映
# postmap /etc/postfix/virtual
- /etc/postfix/main.cf 設定反映
# postfix reload
- 制約事項
- 仮想アドレスはそれぞれUNIXシステムアカウントにaliasされる
- 仮想アドレスを増やすためには、UNIXシステムアカウントも増やす必要がある
virtual_mailbox_domains
Postfix virtual MAILBOX example: separate domains, non-UNIX accounts
-
特徴
-
仮想メールボックスの所有者はUNIXシステムアカウントを持つ必要がない
-
/etc/postfix/main.cf
virtual_mailbox_domains = example.com ...他のホスティングドメイン...
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
-
virtual_mailbox_domainsでexample.comが仮想メールボックスドメインであることを伝える
-
この設定を忘れると配送拒否(relay access denied)されてしまう
-
mydestination, virtual_alias_domainsドメインとvirtual_mailbox_domainsのドメインは重複しないようにする
-
virtual_mailbox_baseに仮想メールボックスのパス名のを指定する
-
virtual_mailbox_mapsに仮想メールアドレスでインデックス化されたメールボックスパス名を持つテーブルを指定する
-
virtual_uid_maps, virtual_gid_mapsでメールボックスの権限を持つuid、gidを定義する
-
virtual_alias_mapsとvirtual_mailbox_domainsを混合することもできる
-
postmaster@example.com宛のメールをローカルのpostmasterにaliasしている
-
外部メールアドレス向けにaliasする時も同じ仕組みを利用する
-
/etc/postfix/vmailbox
info@example.com example.com/info
sales@example.com example.com/sales/
# catch-allアドレスを実装するには以下のエントリのコメントを外します。
# @example.com example.com/catchall
...他のドメインのバーチャルメールボックス...
-
info@example.com宛のメールは/var/mail/vhosts/example.com/info配下のMaildirに保存される
-
sales@example.com宛のメールは/var/mail/vhosts/example.com/sales配下のMaildirに保存される
-
/etc/postfix/virtual
postmaster@example.com postmaster
- この書式はmyoriginがmydestinationに含まれていることを前提としている
- そうでない場合は、右側部分のドメイン名に明示的にドメイン名も指定する
Dovecot連携
MUAでバーチャルメールボックスのメール受信できるようにするためには、dovecot連携が必要になる
メール転送
virtual_mailbox_domainsを使用する場合、aliasや.forwardでメール転送を実装できない。(UNIXアカウントが存在しないため)
- Dovecto Sieve
- mailfilter