複数のドメインを運用しているため、mailmanをそれぞれのドメインでも動くようにする。
postfix+mailmanで複数ドメインに対応する方法はいくつかるようだが、一番単純なメーリングリスト名は全ドメイン共通での設定にする。
postfix-to-mailman.pyを使えば、配送経路などもちゃんと設定できるらしいが、今回はそこまでしない。
・MercuryMailの設定
別ドメインのメーリングリストで使用するメールアカウントを作成する
ユーザー名:mydomain2
そのメールアカウントを、Configurationー”Mercury Core Module Configuration”ー”Local Domains” にドメインメールボックスとして追加する
Core ModuleーLocal Domains
追加
↓
DM=mydomain2 ml.mydomain2.net
・postfixの設定
変更なし
・mailmanの設定
別ドメインを仮想ホストとして登録する。
$ sudo vi /etc/mailman/mm_cfg.py
DEFAULT_EMAIL_HOST = 'ml.mydomain.com'
↓
DEFAULT_EMAIL_HOST = 'ml.mydomain.com'
VIRTUAL_EMAIL_HOST1 = 'ml.mydomein2.net'
DEFAULT_URL_HOST = 'ml.mydomain.com'
↓
DEFAULT_URL_HOST = 'ml.mydomain.com'
VIRTUAL_URL_HOST1 = 'ml.mydomain2.net'
POSTFIX_STYLE_VIRTUAL_DOMAINS = [DEFAULT_EMAIL_HOST]
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
↓
POSTFIX_STYLE_VIRTUAL_DOMAINS = [DEFAULT_EMAIL_HOST, VIRTUAL_EMAIL_HOST1]
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
add_virtualhost(VIRTUAL_URL_HOST1, VIRTUAL_EMAIL_HOST1)
・fetchmailの設定
ml.mydomain2.netのメールをポーリングするよう追加する。
$ sudo vi /root/.fetchmailrc
poll mail.mydomain.com with proto imap envelope "X-Envelope-To"
localdomains ml.mydomain2.net
user "mydomain2" with pass "mailパスワード" to * here
複数ドメインであっても一つのメールボックスで処理するときは、以下のように記述する
poll mail.mydomain.com with proto imap envelope "X-Envelope-To"
localdomains ml.mydomain.com ml.mydomain2.net
user "mydomain" with pass "mailパスワード" to * here
・注意
メーリングリストの全体的オプションで、メールの送信に使うホスト名(ドメイン名)を変更した場合に、/var/lib/mailman/data/virtual-mailmanが更新されなかったので、以下のコマンドで強制的に更新する必要があった。
$ sudo /usr/lib/mailman/bin/genaliases