2月に実験してみた fetchmail + fml メーリングリストが動いていたままだったので停止。
qmailadmin を入れたが動作に不安があるし、qmailadmin から使用する ezlm も使った事がないので、ここは慣れた fml を入れることにする。ルート権限で、
apt-get install fml adduser vpopmail list adduser naney list
naney権限で、メーリングリストを作成。
makefml newml testml
次に vpopmail ユーザで設定をコピー (実際は不要: 注1)。
cp /var/spool/ml/etc/qmail/alias/.qmail-testml* \ ~vpopmail/domains/example.co.jp/ cp /var/spool/ml/etc/qmail/alias/.qmail-owner-testml* \ ~vpopmail/domains/example.co.jp/
root 権限で qmail の方を設定。 /var/spool/ml/etc/qmail/users/assign の
+testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
を参考に、/etc/qmail/users/assign を編集
+example.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml: を以下の行 +example.co.jp-:example.co.jp:64020:64020:/var/lib/vpopmail/domains/example.co.jp:-:: の前に追加。
(注2)。 追加したら qmail-newu。
後は普通の fml。 メーリングリストを作成した naney 権限 で、
makefml config testml makefml addadmin testml naney@example.co.jp makefml add testml 追加したいユーザ名
でOK。
(注1) users/assin の方で指定している /var/spool/ml/etc/qmail/alias 以下の設定が優先して使用されるので、~/vpopmail/domains/example.co.jp にコピーする必要はなし。 もしコピーしてそちらを書き換えても設定には反映されない。
/var/spool/ml/etc/qmail/alias 以下の
(*)のファイルには
naney
と書かれておりそのままでは、UNIXアカウントの naney の方にメールが届く。 もし naney@example.co.jp というバーチャルドメイン上のアカウントの方に届くようにするようするには、それぞれ
&naney@example.co.jp
に置き換えるようにする。
(注2) 上記の例では uid:gid に 1000.1000 (ここでは naney.naney) を指定してしまっている。 Debian 流に list グループでメーリングリストを管理するには、gid を list グループの gid にする必要がある。
先週末に本格始動した Debian BOX、午前中メーリングリストにメールを送ったら配送されない(10日ほど前に設定したやつ)。
log を見る限り permission の様子なのだが。 g+rw したりしたのだが改善されず。 うーん。メーリングリストオーナ(=naney)権限で動くから、その必要もないはずなんだけれどなぁ。vpopmail権限で動いちゃっているのかなぁ。 テストメメーリングリストを作った時には問題なかったのだが。
で小一時間。 /etc/qmail/users/assign
+xxx.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
ふう。xxx.co.jp ですよ。 手順まとめた時に伏せ字にしておいたのだが、そのままコピーしてあったよ。 当然実際にはマッチしないので、その後の、
+yyy.co.jp-:yyy.co.jp:64020:64020:/var/lib/vpopmail/domains/yyy.co.jp:-::
(yyy は本当の名前ね)
行により vpopmail 扱われたと。 で「/var/lib/vpopmail/domains/yyy.co.jp/.qmail-メーリングリスト名」が一応あるから、vpopmail 権限で fml.pl が動いて。
午前中つぶしてしまったよ。
先日メールサーバのメンテをしていたら、自分のアカウントにメールが700通弱たまっているのを発見。
常用しているバーチャルドメインの naney@example.co.jp の方はもちろん定期的に fetch している。 naney 宛のメールも全て naney@example.co.jp に流れると勘違いしていた。 UNIXアカウントの方にもたまっているとは思っていなかったので見落し。マズイ。
vpopmail のPOPサーバから吸い出そうとしたところ失敗。
maildirmake maildirmake $HOME/Maildir echo $HOME/Maildir/ > $HOME/.qmail
naney UNIX用アカウント用の maildir を作成し.qmail を書いて、mbox からこちらへ一旦流すことで吸い出せるようになった。
幸い「メーリングリストが配送するメールの中に配送できないアドレス(退職により削除されたアドレス)があるよ」というエラーメールがほどんどで、重要なものはなかった。 一安心。
/var/spool/ml/etc/qmail/alias 以下にある設定ファイルで、転送先が
naney
となっているのを
&naney@example.co.jp
に修正し、vpopmail 上のバーチャルアカウントの方に届くようにする。
for f in `grep -l naney .*`; do echo '&naney@example.co.jp' > $f ; done
以前 qmail+vpopmail+fmlの設定をした時にこれらのファイルを ~vpopmail/domains/example.co.jp/ にコピーしたのだが、確認したところ実はこれは不要だった。削除。
メーリングリストが正しく配送されなくなったという苦情が午前中に入る。
確認したところ、新たに list グループに登録した管理者(仮に foo)の作業の後に問題が起きているようだ。
管理者 foo がメーリングリスト(仮に testml)に makefml コマンドでユーザの登録・削除をした際に、ファイル「members」の所有者が naney.list から foo.list にかわる。
一方、最初にメーリングリストを作成した時の /etc/qmail/users/assign への記述
+example.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
では uid.gid に 1000.1000(naney.naney)を指定してしまっている。 naney.naney 権限 で 0660 (foo.list)なファイル「members」を読めずに配送できなくなったというのが原因。
複数の管理者で管理することを想定しないで当初設定してしまったというありがちなミス。
+example.co.jp-testml:naney:1000:38:/var/spool/ml/etc/qmail/alias:-:testml:
に修正したところ問題なくなった (38 は list グループの gid)。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。