仮想メールボックス
仮想メールボックス(バーチャルメールボックス)
UNIXアカウントを使用することなく、メールボックスを所有できる
■設定
virtual_mailbox_domains = example.com
指定したドメインがバーチャルメールボックスドメインであると宣言する
これを記述し忘れると、そもそも受け取らない
virtual_mailbox_base = /var/mail/vhosts
バーチャルメールボックスのパス名すべての前に付けるパス名を指定
これは誰かが間違いを犯した場合の安全機構です。
これによりメールがファイルシステム全体には配送されないようになります
virtual_mailbox_maps = dbm:/etc/postfix/vmailbox
このルックアップテーブル内にメールボックスのパスを指定
virtual_gid_maps メールボックスのUIDを指定
virtual_uid_maps メールボックスのGIDを指定
virtual_minimum_uid = 1000
メールボックス所有者の下限のUIDを指定。間違いの場合の安全機構
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
所有するメールボックスのUNIXユーザIDとグループIDの指定
又は受信者のメールアドレスで検索される検索テーブルを指定
virtual_alias_maps = dbm:/etc/postfix/virtual
下記バーチャルエイリアスを参照
このようにバーチャルメールボックスとバーチャルエイリアスの混同も可能
virtual_mailbox_limit (デフォルト: 51200000(50MB))単位:バイト
個々のメールボックスまたは maildir ファイルの、最大サイズ。0なら制限なし。
virtual_mailbox_limit_maps = ldap:/etc/postfix/ldap-quota.cf
virtual_mailbox_limit_override = yes
バーチャルドメイン毎のメールボックスのサイズを指定
virtual_mailbox_lock
デフォルトはシステムによって違う為、postconf -d で確認のこと
Solaris9の場合=fcntl, dotlock
maildir 形式の配送ではロックがなくても安全であるため、この設定は無視されます
virtual_overquota_bounce = yes
quota制限に引っかかった場合、通常は一時エラーとし空きが出るまでスプールに保存されます
これをyes にすることで、quota制限の場合すぐにエラーメールを返します。
□ルックアップテーブル(上記の dbm:/etc/postfix/vmailboxの場合)
test1@example.com example.com/test1/
test2@example.com example.com/test2/
□下記のように書くとcatch-allアドレスになる。
※存在しないユーザのメールも何でも受けるアドレス(SPAMが大量に来るので使用注意)
@example.com example.com/catchall/ ※catch-allアドレス
■バーチャルエイリアス
ホスティングしているドメイン宛のメールをローカルシステムユーザにエイリアスする
virtual_alias_domains = example2.com バーチャルドメインの宣言
virtual_alias_maps = hash:/etc/postfix/virtual
□ルックアップテーブル(上記の /etc/postfix/virtual)
指定したメールアドレス宛のメールを、指定したローカルユーザ宛に転送する
postmaster@example2.com postmaster
info@example2.com hogehoge
※ルックアップテーブルは記述後、必ず下記のコマンドで更新すること
postmap /etc/postfix/virtual
postfix reload
LDAP時(設定例)
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf メール転送用
virtual_gid_maps = ldap:/etc/postfix/ldap-gid_maps.cf メールボックスのUID
virtual_uid_maps = ldap:/etc/postfix/ldap-uid_maps.cf メールボックスのGID
virtual_mailbox_domains = example.com 扱うバーチャルドメインの設定。複数の場合はカンマで
virtual_mailbox_base = /var/mail バーチャルドメインのメール配送先親ディレクトリ
virtual_mailbox_maps = ldap:/etc/postfix/ldap-account.cf メールボックス保存場所
virtual_mailbox_limit = 0
virtual_mailbox_limit_maps = ldap:/etc/postfix/ldap-quota.cf メールボックスのサイズ
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
各テーブルはルックアップテーブルのLDAPテーブルも参照
□/etc/postfix/ldap-account.cf (メールボックスの保存場所指定[virtual_mailbox_maps])
server_host = 192.168.10.100 192.168.10.101 LDAPサーバホスト
server_port = 389
timeout = 10 検索タイムアウト時間
bind = yes 認証するかどうか
version = 3 LDAPプロトコルバージョン
bind_dn = cn=Manager,dc=example,dc=com
bind_pw = adminpassword
scope = sub
search_base = ou=people,dc=example,dc=com 検索を行うDNを指定。必須項目
---ここまではどのLDAP定義ファイル関連も同じ---
query_filter = (mail=%s) ディレクトリの検索に使われるフィルタ
%s…入力キーのまま(下記は入力キーがメールアドレスの形式だった場合)
%u・・・@より前のユーザ名部分、%d・・・ドメイン部分
result_attribute = mailDirectory LDAP検索よりこの項目の値を取得
result_format = %s/Maildir/ 結果はこのフォーマットで値を返す
□/etc/postfix/ldap-alias.cf (メール転送用[virtual_alias_maps])
---ここまでは同定義---
search_base ou=aliases,dc=example,dc=com
query_filter (cn=%u)
result_attribute rfc822MailMember
□/etc/postfix/ldap-gid_maps.cf (メールボックスのGID指定[virtual_gid_maps])
---ここまでは同定義---
query_filter = (&(objectClass=posixAccount)(uid=%u))
result_attribute = gidNumber
□/etc/postfix/ldap-uid_maps.cf (メールボックスのUID指定[virtual_uid_maps])
---ここまでは同定義---
query_filter = (&(objectClass=posixAccount)(uid=%u))
result_attribute = uidNumber
□/etc/postfix/ldap-quota.cf (メールボックスのサイズ[virtual_mailbox_limit_maps])
---ここまでは同定義---
query_filter = (|(mail=%s)(mailAlias=%s))
result_attribute = quotaSize
前へ トップへ