10
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Postfixバーチャルメールボックス運用HowTo

Last updated at Posted at 2020-03-29

Postfix Virtual Domain Hosting Howto

postfixのバーチャルメールボックスの使い方を紹介

[http://www.postfix.org/VIRTUAL_README.html](Postfix Virtual Domain Hosting Howto)

mydestination

As simple as can be: shared domains, UNIX system accounts

  • 特徴

  • mydestination(受信アドレス)にドメインを追加する

  • ローカル配送にUNIXシステムアカウントのメールボックスを使用する

  • /etc/postfix/main.cf

 mydestination = $myhostname localhost.$mydomain ... example.com
  • 制限事項
  • 配送の振り分けができない(info@my.host.name宛のメールはinfo@example.com宛のメールと同じUNIXシステムアカウントに配送される)
  • ユーザ数が多くなると管理が不便になる

virtual_alias_domains

Postfix virtual ALIAS example: separate domains, UNIX system accounts

  • 特徴

  • 仮想エイリアスドメインは全てUNIXシステムアカウントやリモートアドレスにaliasされる

  • ローカル配送にUNIXシステムアカウントのメールボックスを使用する

  • /etc/postfix/main.cf

virtual_alias_domains = example.com ...他のホスティングドメイン...
virtual_alias_maps = hash:/etc/postfix/virtual
  • virtual_alias_domainsでexample.comが仮想エイリアスドメインであることを伝える

  • この設定を忘れると配送拒否(relay access denied)されてしまう

  • mydestinationのドメインとvirtual_alias_domainsのドメインは重複しないようにする

  • /etc/postfix/virtual

postmaster@example.com postmaster
info@example.com       joe
sales@example.com      jane
# catch-allアドレスを実装するには以下のエントリのコメントを外します。
# @example.com         jim
...他のドメイン用のバーチャルエイリアス...
  • postmaster@example.com宛のメールはローカルのpostmasterへaliasされる

  • info@example.com宛のメールはUNIXシステムアカウントのjoeへaliasされる

  • ales@example.com宛のメールはUNIXシステムアカウントのjaneへaliasされる

  • example.comのそれ以外のメールアドレスは「User unknown」というエラーメッセージで拒否される

  • /etc/postfix/virtual 設定反映

# postmap /etc/postfix/virtual
  • /etc/postfix/main.cf 設定反映
# postfix reload
  • 制約事項
  • 仮想アドレスはそれぞれUNIXシステムアカウントにaliasされる
  • 仮想アドレスを増やすためには、UNIXシステムアカウントも増やす必要がある

virtual_mailbox_domains

Postfix virtual MAILBOX example: separate domains, non-UNIX accounts

  • 特徴

  • 仮想メールボックスの所有者はUNIXシステムアカウントを持つ必要がない

  • /etc/postfix/main.cf

virtual_mailbox_domains = example.com ...他のホスティングドメイン...
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
  • virtual_mailbox_domainsでexample.comが仮想メールボックスドメインであることを伝える

  • この設定を忘れると配送拒否(relay access denied)されてしまう

  • mydestination, virtual_alias_domainsドメインとvirtual_mailbox_domainsのドメインは重複しないようにする

  • virtual_mailbox_baseに仮想メールボックスのパス名のを指定する

  • virtual_mailbox_mapsに仮想メールアドレスでインデックス化されたメールボックスパス名を持つテーブルを指定する

  • virtual_uid_maps, virtual_gid_mapsでメールボックスの権限を持つuid、gidを定義する

  • virtual_alias_mapsとvirtual_mailbox_domainsを混合することもできる

  • postmaster@example.com宛のメールをローカルのpostmasterにaliasしている

  • 外部メールアドレス向けにaliasする時も同じ仕組みを利用する

  • /etc/postfix/vmailbox

info@example.com    example.com/info
sales@example.com   example.com/sales/
# catch-allアドレスを実装するには以下のエントリのコメントを外します。
# @example.com      example.com/catchall
...他のドメインのバーチャルメールボックス...
  • info@example.com宛のメールは/var/mail/vhosts/example.com/info配下のMaildirに保存される

  • sales@example.com宛のメールは/var/mail/vhosts/example.com/sales配下のMaildirに保存される

  • /etc/postfix/virtual

postmaster@example.com postmaster
  • この書式はmyoriginがmydestinationに含まれていることを前提としている
  • そうでない場合は、右側部分のドメイン名に明示的にドメイン名も指定する

Dovecot連携

MUAでバーチャルメールボックスのメール受信できるようにするためには、dovecot連携が必要になる

メール転送

virtual_mailbox_domainsを使用する場合、aliasや.forwardでメール転送を実装できない。(UNIXアカウントが存在しないため)

  • Dovecto Sieve
  • mailfilter
10
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?