postfixのバーチャルドメイン

postfixでバーチャルドメインを設定した。

/etc/postfix/main.cfを編集します。
# mydestinationには何も指定しないようにします。(virtual_mailbox_domainsに指定します。)
mydestination =

# バーチャルメールボックスを利用するドメインを指定
# myhostname には doodlenote.netが指定されているものとします。
virtual_mailbox_domains = doodlenote.net

# 配送エージェントを指定します。
virtual_transport = virtual

# バーチャルメールボックスの場所を指定
# バーチャルメールボックスはこのフォルダ配下になります。
virtual_mailbox_base = /var/mail/vhosts

# メールアドレスとそれに対する配送先を記したテーブル
virtual_mailbox_maps = hash:/etc/postfix/vmailbox

# virtual_uid_mapsから受け取るuidの最小値
virtual_minimum_uid = 100

# 配送エージェントがメールボックスの書き込みに使用するユーザーID
# 例では5000を固定で指定しています。
virtual_uid_maps = static:5000

# 配送エージェントがメールボックスの書き込みに使用するグループID
# 例では5000を固定で指定しています。
virtual_gid_maps = static:5000

virtual_mailbox_domainsに指定したドメインはmydestination,virtual_alias_domains には指定しないよう注意してください。

/etc/postfix/vmailboxを編集します。

#あて先と配送先を指定
#例ではhoge@doodlenote.net宛てのメールは/var/mail/vhosts/doodlenote.net/hoge に配送されます。
hoge@doodlenote.net doodleteno/hoge/

配送先の指定では、最後 / で終わっている点に注意してください。

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
で指定したuid gid で書き込みができるように /home/mail/vhosts/doodlenote.net/hoge/ を設定します。

#メールボックス用のディレクトリを作成します。
# mkdir /home/mail/vhosts/doodlenote.net/hoge/
( maildirmake /home/mail/vhosts/doodlenote.net/hoge/ か)

#maildirの所有権を変更します。
# chown -R 5000:5000 /home/mail/vhosts/doodlenote.net/hoge/

設定の変更を反映させるため、以下のコマンドを実行します。
#vmailboxファイルの変更を反映します。
# postmap /etc/postfix/vmailbox

#main.cfの変更を反映させるため、postfixを再起動します。
# /etc/init.d/postfix restart

メールを送信するとメールボックスにメールが入っている!

imapでメールが読めなかったから追加。
# apt-get install sasl2-bin libsasl2-modules   (cyrus-sasl-2.1.22)
# apt-get install postfix postfix-tls   (postfix-2.3.8)
# apt-get install postfix-mysql   (2.3.8-2+b1)

main.cf
myorigin = quupee.com
relay_domains = $mydestination
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

# apt-get install courier-authlib-mysql

courierからmysqlを使うように設定ファイルを変更する
※各値の設定区切りはTABになっている。スペースなどを入れると思うようには動かないので、注意が必要。

# vi /etc/courier/authmysqlrc
———————————
MYSQL_USERNAME postfix
MYSQL_PASSWORD abcdefg01
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
# MYSQL_CRYPT_PWFIELD password(mysql経由の場合はmd5を使えないので、CLEARTEXTを選択)
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD /var/mail/virtual
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
(※各値の設定区切りはTABキーで挿入)

# vi /etc/courier/authdaemonrc
———————————
authmodulelist=”authcustom authuserdb authmysql authpam”
authmodulelistorig=”authcustom authuserdb authmysql authpam”
daemons=5
version=”authdaemond.mysql”
authdaemonvar=/var/run/courier/authdaemon

[参考]
http://www.gside.org/Gentoo/postfix/virtualdomain.html
http://www.fulldigit.net/content/view/168/19/