ezmlmのinstall

[ Nob's Home | qmail ]

注意!
98.4.26 qmailは大文字のアドレスを小文字に変換して配送します。
ezmlm-makeで作成するメイリングリスト名は全て小文字にしておいてください。
qmailの作者である、 D. J. Bernsteinさんによる、
「使い易く高速なメイリングリスト管理プログラム」
ezmlmをinstall してみました。

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.patch
ezmlmをmakeし、installします。
	$ make;make man
	$ su
	# make setup
新たにmailing listを作ってみます。
ここでは、test@hogehoge.y-min.or.jp というmailing listを作ります。
この test mailing listの作業directoryは /home/nob/test にします。
	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.jp
mailing 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.jp
mailが配送されることを確認してください。

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の前に入れます。
[ Nob's Home | qmail ]
nob@makioka.y-min.or.jp