Postfix, Dovecotバーチャルドメイン Ubuntu 18.04.1 2019/12

バーチャルドメイン用のOSグループとOSユーザを追加
groupadd -g 10000 mailuser
useradd -u 10000 -g mailuser mailuser

Postfixの設定

/etc/postfix/main.cf の編集
virtual_mailbox_domains = hoge2.jp
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
virtual_mailbox_base = /var/spool/virtual
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_dmoainsにはCSV形式で複数のドメインを指定できる。

バーチャルドメイン用のメールディレクトリを作成
mkdir /var/spool/virtual
chown -R 10000.10000 /var/spool/virtual

バーチャルドメイン用のユーザファイルの作成
/etc/postfix/virtual
user1@hoge2.jp      hoge2.jp/user1/Maildir/
user2@hoge2.jp      hoge2.jp/user2/Maildir/
...
user1@hoge2.jpへメールが配送されたタイミングで /var/spool/virtual/hoge2.jp/user1/Maildirディレクトリが作成される。

バーチャルドメイン用データベースファイルの作成
postmap /etc/postfix/virtual
virtual.dbファイルが作成される。
ユーザ情報変更の度にvirtualファイル編集とpostmapコマンドの実行を行う。

Postfixを再起動する。
systemctl restart postfix

Dovecotの設定

/etc/dovecot/conf.d/10-auth
!include auth-static.conf.ext (コメントアウト外す)

/etc/dovecot/conf.d/auth-static.conf.ext
userdb {
  driver = static
  args = uid=10000 gid=10000 home=/var/spool/virtual/%d/%n
}

dovecot用パスワードの作成
doveadm pw -s CRAM-MD5
Enter new password: (パスワードを入力)
Retype new password: (パスワードを入力)
{CRAM-MD5}XXXXXXXXXXYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

/etc/dovecot/passwd
user1@hoge2.jp:{CRAM-MD5}XXXXXXXXXXYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
ユーザ名には@ドメインも修飾する。

Dovecotの再起動
systemctl restart dovecot

SASLの設定

saslにユーザパスワードを追加する。
saslpasswd2 -u hoge2.jp user1

バーチャルドメインユーザのエイリアスを設定する場合

/etc/postfix/virtual
all@hoge2.jp user1@hoge2.jp

データベースファイルの作成
postmap /etc/postfix/virtual

Postfixのリロード
systemctl reload postfix