メールサーバを運用していると、複数のドメインを使いたくなる場合があります。そこで、PostfixとDovecotでバーチャルメールボックスを設定して、複数のドメインのアドレスを生成します。主に設定方法と、メーラーの登録方法についてです。

準備

まずはじめに、PostfixとDovecotでメールサーバを構築する必要があります。
今回のテーマとは離れるので、各自で準備をお願いします。

それと、サーバーのバックアップを必ずとって置くようにしましょう。また、動作不能になると大変困るので、コピーや、変更点のメモなどを各設定ファイルで行なってください。

目標

example.comというドメインが設定されているメールサーバーで既にhoge@example.comというメールアドレスで使用しているとします。
そして、新たにexample.netというドメインを使用したいと想定します。
今回、作成したいメールアドレスはinfo@example.netというアドレスとします。

DNSレコードの設定

example.comを運営しているサーバのIPアドレスを例として999.999.999.999とします。
それぞれのレコードを設定します。

  • ホスト名 TYPE TTL VALUE 優先(MXのみ)
  • example.net A 999.999.999.999
  • example.net MX example.net 10
  • example.net TXT v=spf1 ip4:999.999.999.999 include:example.net ~all

ユーザの設定と保存ディレクトリの設定

バーチャルメールボックスを管理するためのmailuserというグループとmailuserというユーザを作成・設定します。この時、グループIDとユーザIDはわかりやすく12345としていますので、お好きなものを使用してください。

shell> groupadd -g 12345 mailuser
shell> useradd -u 12345 -g mailuser mailuser

次に、バーチャルメールボックスのメールを保存するディレクトリを設定し、オーナーを変更しておきます。

shell> mkdir /var/spool/virtualmail
shell> chown -R mailuser:mailuser /var/spool/virtualmail

/etc/postfix/main.cfに追記します。

bash> vim /etc/postfix/main.cf  (好きなエディタで編集してください)

virtual_mailbox_domains = example.net #2つ以上設定する場合は、example.net, eng-labs.com のようにカンマで追記
virtual_mailbox_base = /var/spool/virtualmail #メールの保存先ディレクトリ
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox
virtual_uid_maps = static:12345
virtual_gid_maps = static:12345

そして、virtual_mailbox_mapsで設定したパスに今回設定するメールアドレスと保存ディレクトリ形式を書き加えて、作成します。

# vim /etc/postfix/virtual-mailbox  (好きなエディタで作成してください)

info@examle.net     example.net/info/Maildir/

書き込めたらコマンドを実行して更新します。

shell> postmap /etc/postfix/virtual-mailbox

設定をしたらPostfixを再起動しましょう。

Dovecotの設定

外部のMacなどに入っているメールクライアントで使用できるように設定します。

shell> vim /etc/dovecot/conf.d/10-auth.conf  (好きなエディタで編集してください)

auth_mechanisms = cram-md5 plain login #cram-md5を追加
!include auth-passwdfile.conf.ext  #コメントアウトを解除で大丈夫です
!include auth-static.conf.ext  #コメントアウトを解除で大丈夫です
shell> vim /etc/dovecot/conf.d/auth-passwdfile.conf.ext  (好きなエディタで編集してください)

passdb {
    driver = passwd-file
    args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
}
userdb {
    driver = passwd-file
    args = username_format=%u /etc/dovecot/passwd
}
shell> vim /etc/dovecot/conf.d/auth-static.conf.ext  (好きなエディタで編集してください)

userdb {
    driver = static
    args = uid=12345 gid=12345 home=/var/spool/virtualmail/%d/%n
}

ここまで編集をしたらDovecotを再起動しましょう。

ユーザの追加

最後に、ユーザを追加します。
まず、パスワードを設定するためにセキュリティを考えてハッシュ値を取得します。
2回パスワードを求められるので入力しましょう。

shell> doveadm pw
Enter new password:
Retype new password:
{CRAM-MD5}1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr

生成されたハッシュ値を用いて、/etc/dovecot/passwdを編集します。

shell> vim /etc/dovecot/passwd  (好きなエディタで編集してください)

info@example.net:{CRAM-MD5}1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr

クライアントの設定

私はAirmailというメールクライアントを使用していますが、好きなものを用意してください。
今回はIMAPを例に設定します。
おそらく詳細設定ができると思いますので、選んでください。
受信用サーバ、送信用サーバは今まで設定したメールサーバのドメイン名です。
今回はexample.comです。一般的にはmail.example.comなどの形を取ると思います。
メールクライアント設定
これで設定が完了です。
実際にメールを送ってみてチェックしてみてください。
もしかしたら迷惑メールに入っているかもしれないのでそこまでチェックしましょう。
迷惑メールの対策は状況が様々ですのでご自身で調べてみてください。