ezmlm-idx で,MLのSujectに番号を振る.

Mailing ListのSubjectに [ML-NAME:xxxx] のような形のヘッダをつける方法.

qmail,vpopmail, ezmlm-idx で運用している場合だと,次のように手動で色々作業する必要があります.数年まえ設定したので,完全に手順を忘れていた.次作業するとき困らないように,記録しておきます.

まずhttp://www.y-min.or.jp/~nob/qmail/ezmlm.htmlを参考にaddprefix.plを作成.といっても,上記 nob様のページで公開されている addprefix.plを2行だけ修正.

#!/usr/bin/perl
($prefix) = @ARGV;
($numfile) = @ARGV;
$prefix = "_noprefix_" unless $prefix;
open(SEQ,"< $numfile");
chop($seq = <SEQ>) ;
close(SEQ);
$seq++;
# Slurp in the mail header as a single paragraph
$/ = "";
$_ = <STDIN>;
chop;   # remove the last character from the header.
        # Should be left with a single newline.
# replace Subject: header
if (/\nSubject:\s/)
{
    # remove existing tag - in case this is a reply
    s/\n(Subject:.*)\[$prefix \d+\]\s(.*\n)/\n${1}${2}/;
    # remove Re: Re:
    s/R[eE]\:\s+R[eE]\:/Re\:/g;
    # insert prefix
    s/\nSubject:\s(.*\n)/\nSubject: [$prefix $seq] $1/;
}
else
{
    $_ .= "Subject: [$prefix $seq] No subject\n";
}
print "$_\n\n";
# Reset input record separator to go back to line by line reading
$/ = "\n";
# Print rest of mail message
while(<STDIN>)
{
    print;
}

使い方は,メールのカウンタが /var/qmail/vpopmail/domains/VDOM/ML/num  だとすると,/var/qmail/vpopmail/domains/VDOM/.qmail-ML には次のように記述することになる.

|/usr/local/bin/ezmlm/ezmlm-reject
|/usr/local/bin/addprefix ML &#39;/var/qmail/vpopmail/domains/VDOM/ML/num&#39; | /usr/local/bin/ezmlm/ezmlm-send &#39;/var/qmail/vpopmail/domains/VDOM/ML&#39;
|/usr/local/bin/ezmlm/ezmlm-warn &#39;/var/qmail/vpopmail/domains/VDOM/ML&#39; || exit 0

それにしてもqmailとその仲間たちは良く出来ている.認めたくないが.