qmail+qmailadmin+ezmlm-idxでMLの件名にインデックスを付けたい
今まで何とも思っていなかったんだけど、急にインデックスを付けたいと思い立ったのでやってみる。
※既にqmail+qmailadmin+ezmlm(idxパッチ済)が稼働している前提と、MLはusers@example.jpと課程した内容となる。
qmailadminでのメーリングリスト追加画面にプレフィックスと返信先という項目があるので、それらは活用する。と言う事で、users/editorとusers/prefixとusers/headeraddはいじらず、qmailadminのメーリングリスト画面で完結するようにする。
1. prefixを利用する場合、必ずSubjectの頭にprefixが来るように置き換える為のスクリプトを保存する
# vi /usr/local/bin/ezmlm-idxx
#!/bin/sh path=$1 if [ -f "$path/prefix" ]; then prefix=`sed 's/\[\(.*\)#\]/\1/' $path/prefix` sed "s/^Subject: \(R[Ee]:\s*\?\)*\[${prefix}[0-9][0-9]*\] \(\(R[Ee]:\s*\?\)*\)\(.*\)$/Subject: \1\2\4/" else cat fi exit 0
# chmod 755 /usr/local/bin/ezmlm-idxx
2. メーリングリスト追加時にusers/editorへ反映される様にtemplateを修正する
## ezmlmのソースディレクトリへ移動する # vi ezmlmrc.template
## ezmlm-sendのラインを検索し移動 ## |<#B#>/ezmlm-send '<#D#>' ## ↑を↓のように変更
<#B#>/ezmlm-idxx '<#D#>' | <#B#>/ezmlm-send '<#D#>' |
# make # make setup4. qmailadminにてメーリングリストを追加 4-1. プレフィックスに例えば userML: # と入力 ※件名に[userML: 1]のように付加される 4-2. 返信先:このアドレスにmlのアドレス users@example.jp を入力 ※Reply-to: が付加される 5. メールを送って確認してみる。 5-1. [usersML: 1] テスト送信 のようになる。 6. 返信して確認してみる。 6-1. Re: [usersML: 1] テスト送信 の状態で返信する 6-2. [usersML: 2] Re: テスト送信 のように受信する ※注意:このやり方で長く運営しているわけではないので、置き換えスクリプトはもっと考えて見ても良いかもしれません。なるべく軽くと思ってperlとかrubyとか使わずに考えたものなので。