cyrus-imapd では、いつからか複数ドメインの扱いができるようになっていた。ちょっと試してみたので、その記録。例示用に書き換える過程で何か化けたかもしれないが、ごめんなさい。
- FreeBSD 14.0-RELEASE-p6
- postfix-sasl-3.9.0,1 (FreeBSD package)
- cyrus-imapd38-3.8.2 (FreeBSD package)
複数ドメインを扱うので、virtual mailboxを使う。
- main.cf(よりぬき)
myhostname = mbox.example.jp
virtual_transport = lmtp:unix:/var/imap/socket/lmtp
virtual_mailbox_domains = a.example.jp b.example.jp
virtual_mailbox_maps = hash:imap_users
- imap_users
foo@a.example.jp OK
bar@a.example.jp OK
hoge@b.example.jp OK
fuga@b.example.jp OK
※master.cf のsubmissionの設定を生かしてもよい。
- imapd.conf(よりぬき)
unixhierarchysep: yes #FQDNには'.'が入るので、念のため。
sasl_pwcheck_method: auxprop
virtdomains: userid
defaultdomain: a.example.jp
admins: admin
- cyradm操作
% cyradm --user=admin localhost
localhost>cm user/foo #'%'や'@'が無い場合、defaultdomainの下に入る。
localhost>cm user/bar@a.example.jp #FQDNで指定してもよい。
localhost>cm user/hoge@b.example.jp
localhost>cm user/fuga@b.example.jp
localhost>quit
%
# saslpasswd2 -c foo # defaultdomain したものは、既定のrealmで。
# saslpasswd2 -c bar
# saslpasswd2 -c hoge@b.example.jp # defaultdomain 以外はFQDNで。
# saslpasswd2 -c fuga@b.example.jp
※ submission認証@postfixにも同じID/passが使われる。