qmail MTA hook

| コメント(0) | トラックバック(0)

qmail で Mailman を使ってみる:
SF patch #1170429
これで動くのではないかと思うが...誰もこういうことを考えないのはなぜ? qmail はもともと、bounce を出しまくるから、qmail-to-mailman.py が backscatter について考慮しなくていいということなんだろうか。

qmail と Mailman を統合する

Qmail.py を使うと、Mailman を qmail で使う際に、リストのアドレスの作成/削除を自動化できる。Qmail.py は $prefix/Mailman/MTA にコピーして使う。

  • 2005-09-26 追記: $prefix/Mailman/Bouncers 下にも Qmail.py というファイルがありますが、これを Mailman/MTA 下にコピーしても動きません。上記の SF tracker ページに添付してある Qmail.py をコピーしてくださいね。

非仮想ドメインで使う場合

非仮想ドメイン (control/locals に書いてあるもの) の手順。Mailman 用のエイリアスとほかのシステムエイリアスを混在させることもできる。

注意:
Mailman をインストールするときに、configure スクリプトに --with-mail-gid=<aliasユーザのGID> オプションを指定すること。

1. ~alias は mailman ユーザのグループで書き込み可にする。例えば、以下を実行する:

$ chgrp mailman /var/qmail/alias
$ chmod g+w /var/qmail/alias

2. mm_cfg.py に次の設定を追加する:

MTA = 'Qmail'
QMAIL_ALIAS_DIR = '/var/qmail/alias'


リスト専用のドメインで使う場合

Mailman のアドレスに専用のドメインを割り当てる場合の手順。

注意:
Mailman をインストールするときに、configure スクリプトに --with-mail-gid=mailman オプションを指定すること。

以下、$varprefix は、configure の --with-var-prefix オプションの値 (既定では --prefix オプションの値と同じ) で置き換えること。

1. Mailman 用のエイリアスを置くディレクトリの作成:

$ cd $varprefix/data
$ mkdir -m 2775 qmail
$ chown mailman:mailman qmail

このディレクトリは、mailman ユーザの所有で mailman ユーザのグループで書き込み可にする。

2. /var/qmail/users/assign につぎの設定を含める:

+mailman-:mailman:91:91:$varprefix/data/qmail:-::
.

91:91 は mailman の uid:gid にする。

そして、 qmail-newu を実行する。

3. mm_cfg.py に次の設定を追加する:

MTA = 'Qmail'
QMAIL_ALIAS_DIR = os.path.join(DATA_DIR, 'qmail')

リスト専用のドメインを追加するには:

1. 当然ながら、list.dom.ain の DNS レコード (MX レコードなど) を設定しておく。

2. mm_cfg.py に次の設定を追加する:

add_virtualhost('www.dom.ain', 'list.dom.ain')

そして、``mailman restart'' (あるいはそれと同等の操作) をする。

3. /var/qmail/control/virtualdomains に

list.dom.ain:mailman

を追加。また、/var/qmail/control/rcpthosts に

list.dom.ain

を追加。そして、qmail-send に HUP シグナルを送る。


VERP の設定について

エラーメール処理や確認処理のために VERP を使う場合、mm_cfg.py に以下の設定をする:

VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s'
VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$'

VERP_PROBE_FORMAT = '%(bounces)s-+%(token)s'
VERP_PROBE_REGEXP = r'^(?P<bounces>.*?)-\+(?P<token>[^@]+)@.*$'

VERP_CONFIRM_FORMAT = '%(addr)s-+%(cookie)s'
VERP_CONFIRM_REGEXP = r'^(?P<addr>.*?)-\+(?P<cookie>[^@]+)@.*

そして、そのほかの VERP の設定をする。実際にどうやるかは Mailman/Defaults.py などを読むこと。

仮想ホスト

Mailman 2.1 が対応している仮想ホスト機能は「疑似仮想」である。リストアドレスのローカルパートは「仮想」ホスト同士で共有される。したがって、ローカルパートが同じでドメインだけが違うリストは作れない。

これではなく、「真の」仮想ホストにしたければ、複数の Mailman を、$prefix  を変えてインストールするかない。この場合、インストールした Mailman ごとに別のユーザ (例えば mailman1、mailma2、...) を割り当てることにして、それぞれを「リスト専用のドメインで使う場合」の手順で設定する。

迷惑防止

いわゆる ``backscatter mails'' (詐称された送信者にバウンスなどが送られる現象) をなるべく防ぐため、Paul Jarc の ``realrcptto'' patch を qmail に当てるとよい:

http://code.dogmap.org/qmail/#realrcptto

当てなくても動かないわけではないが、おすすめ。


注意事項

- mailman ユーザのホームディレクトリが存在しないようにするのがお勧
め。存在すると、~mailman にゴミが書き込まれたりしてやっかい。

- ``localhost'' がメールをリレーできなければならない。

- ある種の仮想ドメインツール (vpopmail など) で作った仮想ドメインは、
上記の手順には向かない。

- その他の注意事項が "GNU Mailman - インストールマニュアル" に
書いてあるので、読むこと。特に "qmail メールサーバを使う場合" の節。

トラックバック(0)

トラックバックURL: http://hatuka.nezumi.nu/cgi-bin/mt/mt-tb.cgi/11

コメントする

このブログ記事について

このページは、Hatuka*nezumiが2005年3月30日 00:23に書いたブログ記事です。

ひとつ前のブログ記事は「Defaults.py 日訳」です。

次のブログ記事は「Spam Filtering for Mail Exchangers」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。