ezmlmのポリシーというか、思惑から外れる運用をしようとすると結構面倒。
かといって、もう後戻りできないところまで進んじゃったのでなんとかしてみるメモ。
Subject: のプレフィックスの連番の桁数を何とかしてみる
[hoge-ml:1] を [hoge-ml:0001] にしたいですよね。で、
個人的な告知板 -2003年 8月19日 をみてソースをこんな感じに修正して、
make clean && make
make ja
make setup
Subject: のプレフィックスを何とかしてみる
ezmlm は 同じ件名 or Re: がついている Subject を同じスレッドとみなすようだ。「一連のスレッドを取り寄せる」とかいう機能のためにね。でもふつうそんなことしないような気がするんだけど。そんで、その影響で Re: [hoge-ml:0001] ほげほげ を送信すると そのまま Re: [hoge-ml:0001] ほげほげ って送られてきちゃう。
でも、やっぱり [hoge-ml:0002] Re: ほげほげ って送られてきて欲しいよね、って何とかしてみる。
課題をクリアするには、2つ
- メールの Subject: から [ML名:番号]を削除して、ezmlmに番号を新たにふらせる
- Outlookなどの Subject を全部 MIME encode するメーラのために MIME decode してチェック
生田昇 さんが開発された MIME エンコード・デコード用 perl ライブラリ mime_pls を、ezmlm と同じディレクトリにコピー
# cp mimer.pl /usr/local/bin/ezmlm
# cp mimew.pl /usr/local/bin/ezmlm
フィルタを作成
※このフィルタには問題があるのでここをみて下さい。
vi /usr/local/bin/ezmlm/rewrite
#!/usr/bin/perl
use strict;
require '/usr/local/bin/ezmlm/mimer.pl';
require '/usr/local/bin/ezmlm/mimew.pl';
if( @ARGV != 1){
die "Usage: $0 ML-prefix\n"
}
my $flag = 1;
while( my $line =){
$line = mimedecode($line);
if( $flag == 1){
if( $line =~ /^Subject: / ){
$flag = 0;
$line =~ s/^Subject:\s(R[Ee]:\s*)*\[$ARGV[0]:\s*[0-9][0-9]*\]\s*(R[Ee]:\s*)*(.*)/Subject: $1$2$3/;
$line =~ s/^Subject:\s(F[Ww]:\s*)*\[$ARGV[0]:\s*[0-9][0-9]*\]\s*(F[Ww]:\s*)*(.*)/Subject: $1$2$3/;
}elsif( $line =~ /^$/){
$flag = 0;
}
}
print $line;
}
フィルタをかます
vi /home/vpopmail/domains/hoge.jp/ML名/editor
|/usr/local/bin/ezmlm/ezmlm-send '/home/vpopmail/domains/hoge.jp/ML名'
↓
|/usr/local/bin/ezmlm/rewrite ML名 | /usr/local/bin/ezmlm/ezmlm-send '/home/vpopmail/domains/hoge.jp/ML名'
0 件のコメント:
コメントを投稿