6.1.2 仮想ドメイン

Postfix 2.0 は ``仮想エイリアス ドメイン7'' をサポートします. これは, 以前のバージョンの Postfix では ``Postfix スタイルの仮想ドメイン'' と呼ばれていたものです. Mailman で動作する仮想エイリアスドメインを作るには, Postfix と Mailman の両方で設定をする必要があります. Mailman は, (既定では) /usr/local/mailman/data/virtual-mailman という名前のファイルにすべての仮想エイリアスのマップを書き込みます. また, Postfix が実際に使う virtual-mailman.db ファイルを作成するために postmap を使います.

まず, Postfix の仮想エイリアス ドメインを Postfix の文書の説明どおりに作ります (Postfix の virtual(5) マニュアルページを参照してください). マニュアルページの説明にある virtual-alias.domain anything の行は, 自分で入れなければいけないことに注意してください. Mailman は virtual-mailman にこの行を入れてくれません. Mailman と統合する前に, この仮想エイリアス ドメインが正しく動作するようにしておくことが, とても大事です.

次に, Postfix と virtual_alias_maps 変数に, virtual-mailman ファイルの位置のパス名を追加します. 例:

    virtual_alias_maps = <通常の仮想エイリアスのファイル>,
        hash:/usr/local/mailman/data/virtual-mailman

ここでは, Mailman は既定の場所にインストールしてあると仮定しています. virtual_alias_maps 変数のない古いバージョンの Postfix を使っているのなら, かわりに virtual_maps 変数を使います.

次に, mm_cfg.py ファイルで, POSTFIX_STYLE_VIRTUAL_DOMAINS に, Mailman が更新する仮想ドメインのリストを設定するとよいでしょう. これは, Postfix のほうでサポートする仮想ドメインすべてとは限りません! このリストの要素は, メーリングリスト オブジェクトの host_name 属性と照合されます. 完全一致でなければいけません.

例を挙げます. Postfix は仮想ドメイン dom1.ain, dom2.ain, dom3.ain, を扱うよう設定してあるものとし, さらに, main.cf ファイルに次の設定がしてあるものとします:

    myhostname = mail.dom1.ain
    mydomain = dom1.ain
    mydestination = $myhostname, localhost.$mydomain
    virtual_alias_maps =
        hash:/some/path/to/virtual-dom1,
        hash:/some/path/to/virtual-dom2,
        hash:/some/path/to/virtual-dom2

たとえば virtual-dom1 ファイルに, つぎの行があるとします:

    dom1.ain  IGNORE
    @dom1.ain @mail.dom1.ain

これは Postfix に, dom1.ain 宛てのものはなんでも, mail.dom1.com の同名のメールボックス (既定の配送先) に配送するよう 指示していることになります.

この場合, POSTFIX_STYLE_VIRTUAL_DOMAINS には dom1.ain を含めません. なぜなら そうしなければ, Mailman は dom1.ain ドメインのメーリングリストの項目を

    mylist@dom1.ain         mylist
    mylist-request@dom1.ain mylist-request
    # 等々...

のように書き込むからです.

より特定した項目が, より一般的な項目を上書きするので, dom1.ain メーリングリストへの配送は止められてしまいます.

いっぽう, dom2.aindom3.ainmm_cfg.py に含めます:

    POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']

こうして, この二つのドメインのいずれかに属するメーリングリストを Mailman が作ったら, /usr/local/mailman/data/virtual-mailman には正しい項目が入ります.

上の data/aliases* ファイルと同じく, data/virtual-mailmandata/virtual-mailman.db の両方とも, mailman のユーザ, グループに 所有されているようにしたほうがいいでしょう.



Footnotes

... ドメイン7
訳注:virtual alias domains.