FreeBSD 8.4 RELEASE - メーリングリスト ezmlm - 連番設定

 クラウディア
 本ページの設定では、2014年9月以降の ports を使用した場合、日本語化の設定ができなくなっています。  「トップページ」より、更新日時の新しいものを参考にしてください。
1. 基本的な連番をつける
2. Re で連番がとばないようにする

1. 基本的な連番をつける

 メーリングリストに投稿されたメールに連番をつけるには、/var/qmail/alias/メーリングリスト名/prefixというファイルを開いて

[メーリングリスト名]
 の個所を

[メーリングリスト名 #]
 と書き換えてください。こうすることにより、連番が設定されるようになります。

2. Re で連番がとばないようにする

 前項の設定で連番をつけた場合、返信を行うと、番号がとんでしまうことがあります。  例えば、Subject が

[メーリングリスト名 60 ] 云々
 であるメールに返信すると

Re: [メーリングリスト名 60 ] 云々
 となり、その次の Subject が

[メーリングリスト名 62 ] 云々
 と不自然なナンバリングとなってしまいます。

[メーリングリスト名 60 ] 云々
 への返信が

[メーリングリスト名 61 ] RE:[メーリングリスト名 60 ] 云々
 となるようにするには、まず、/var/qmail/bin にスクリプトを作成します。  addprefix.pl というファイルを作成して、下記の内容を記述しておきます。

#!/usr/local/bin/perl
#
# Prepend a mail Subject: line with the given string.
# Usage:
#       MTA | subject-prefix "prefix" |
# Input will ALWAYS be from stdin.
#
#  adding sequence number
($prefix) = @ARGV;
$prefix = "_noprefix_" unless $prefix;
$numfile = "/var/qmail/alias/$prefix/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;
}
 先頭の行は、OS の環境に合わせて、perl のパスを適宜修正してください。また、作成後は addprefix.pl に実行権限を忘れずに与えておいて下さい。  次にメーリングリストのホームディレクトリ、メーリングリスト名が
test
であれば、「/var/qmail/alias/test」にある、「editor」というファイルを修正します。  何も手を加えていない状態で、

|/usr/local/bin/ezmlm-reject '/var/qmail/alias/メーリングリスト名'
|/usr/local/bin/ezmlm-send '/var/qmail/alias/メーリングリスト名'
|/usr/local/bin/ezmlm-warn '/var/qmail/alias/メーリングリスト名' || exit 0
 と記述されています。これに下記のように 2行目の先頭に手を加えます。

|/usr/local/bin/ezmlm-reject '/var/qmail/alias/メーリングリスト名'
|/var/qmail/bin/addprefix.pl メーリングリスト名 |/usr/local/bin/ezmlm-send '/var/qmail/alias/メーリングリスト名'
|/usr/local/bin/ezmlm-warn '/var/qmail/alias/メーリングリスト名' || exit 0
 以上の設定をミスなく行えば、連番がとばないようになって、綺麗に表示されることになります。
ハイスピードプラン