ftp://ftp.jp.qmail.org/qmail/ezmlm-0.53.tar.gz
をgetします。
追加機能のpatchを
ftp://ftp.id.wustl.edu/pub/patches/
からgetします。
今回は、ezmlm-idx-0.20.tar.gzを使いました。
ezmlm-0.53.tar.gz、ezmlm-idx-0.20.tar.gzを展開し、
ezmlm-idx-0.20の内容をezmlm-0.53にcpし、patchを当てます。
$ tar zxvf ezmlm-0.53.tar.gz -C /usr/local/src $ tar zxvf ezmlm-idx-0.20.tar.gz -C /usr/local/src $ cd /usr/local/src/ezmlm-idx-0.20 $ cp * /usr/local/src/ezmlm-0.53 $ cd /usr/local/src/ezmlm-0.53 $ patch < idx.patchezmlmをmakeし、installします。
$ make;make man $ su # make setup新たにmailing listを作ってみます。
ezmlm-make DIR dot-file list hostというコマンドで作ります。
DIR = /home/nob/test dot-file = /var/qmail/alias/.qmail-test list = test host = hogehoge.y-min.or.jpということになります。
# ezmlm-make /home/nob/test /var/qmail/alias/.qmail-test test hogehoge.y-min.or.jpmailing listの作業directoryのownerをaliasにします。
# chown -R alias.qmail /home/nob/test自分自身を test MLに登録してみます。
# ezmlm-sub /home/nob/test nob@makioka.y-min.or.jp試しに、mailをtest MLに出してみます。
# echo Subject: testing | qmail-inject test@hogehoge.y-min.or.jpmailが配送されることを確認してください。
test MLへの参加者を確認します。
# ezmlm-list /home/nob/test
ML名をSubjectに付けるには、DIR/prefix というfileに加えたい文字列を入れます。
/home/nob/test/prefix の内容を'test'とします。
MLの連番を付けるには、DIR/sequence というfileに'X-Seq'という文字列を入れます。
/home/nob/test/sequence の内容を'X-Seq'とすると、
MLのmailに 'X-Seq: 番号'という headerが付きます。
ML名と連番をSubjectに付けるには、専用のfilterである、
/usr/local/bin/addprefix というperl scriptを作ります。
---------------------------------------------------------------------
#!/usr/local/bin/perl
#
# Prepend a mail Subject: line with the given string.
# Usage:
# MTA | subject-prefix "prefix" |
# Input will ALWAYS be from stdin.
# modified by nob@makioka.y-min.or.jp
# adding sequence number
($prefix) = @ARGV;
$prefix = "_noprefix_" unless $prefix;
$numfile = '/home/nob/test/num';
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;
}
---------------------------------------------------------------------
このfilterを
/var/qmail/alias/.qmail-test -> /home/nob/test/editor
で
|/usr/local/bin/ezmlm/ezmlm-reject |/usr/local/bin/addprefix test | /usr/local/bin/ezmlm/ezmlm-send '/home/nob/test' |/usr/local/bin/ezmlm/ezmlm-warn '/home/nob/test' || exit 0とezmlm-sendの前に入れます。