1999年12月23日

smtpfeed

天気:晴れ
体重:89.2Kg

ふとサーバーのmaillogを見てみるとメーリングリストの配送に1時間近く
かかっているのに気がついた。
fml+sendmailで100名強。回線はOCNエコノミーだ。
こんなに遅いとは思ってもみなかった。sendmailが遅いとはいってもた
かだか100名程度。10分もあれば完了していると思っていたのだがこんな
に遅いとは。

かなりショックを受けました。

でsmtpfeedを入れることにした。

Portsのmake

サーバーはFreeBSD3.2Rだ。付属のportsからsmtpfeedを探す。
Makefileを確認すると、bind8を使用するオプションがコメントアウトさ
れていたので、これを変更。
make
sendmailのソースも落とし始めた。smtpfeedを使用するにはsendmailに
patchが必要。これが面倒だと思っていたのだが、portsはそこまで面倒
をみてくれるらしい。ありがたや。

makeはあっさり終了。

syslog.conf の調整

local5.info /var/log/smtplog
の一行を追加。
ログファイルの作成と、kill -HUP {syslogdのPID}

sendmail.cfの修正

sendmail.cfの修正が次の関門だ。
以前POP before SMTPの設定をする時に大騒ぎをした。あんな思いはもう
ごめんだ。smtpfeedのドキュメントを読むと
A. 使用中の sendmail.cf を直接変更
B. m4 tool による設定
C. CF による設定
の3種の方法がかかれていた。
CFを使用するとPOP before SMTPの部分をまた追加しなければならないの
でA.の方法をとるようにした。怖いけど。

難解なsendmail.cfの記述方などわかるわけもないが、trial and error
で何とか動く設定が見つかった。
今後、問題が出るかもしれないがメモとして残しておこう。

1. smtpf mailer の定義
 MAILER DEFINITIONSの最後に以下を追加
Msmtpf, P=/usr/local/libexec/smtpfeed, F=mDFMuXz!-,
      S=11/31, R=21, E=\n, L=990, *=5,
      T=DNS/RFC822/SMTP, &=1000, M=50000, A=smtpfeed
意味は当然良くわからない。
トランザクション1回あたりの受信者の最大数を1000に
受信者が5人に満たない場合に、smtpfeed を起動することなく、すぐに
後続の mailer による配信にスキップ。

2. smtp (あるいは esmtp, smtp8 など) の呼び出しを smtpf に変更
#R$*<@$*>$*             $:$>88 <smtp:$2>.$1<@$2>$3 <--コメントアウト
R$*<@$*>$*             $:$>88 <smtpf:LMTP>.$1<@$2>$3
                        $#esmtp $@ $2 $: $1 < @ $2 > $3 <--後続のmailerの指定
3. $[ $] の使用の排除
特に必要な処置では無いらしい。遅延の原因になるので、ネーム
サーバを参照したメールアドレスの書き換えの必要がない場合は
コメントアウト。
これはどこなのかさっぱりわからない。

smtpfeedのinstall & sendmailの入れ替え

smtpfeedのドキュメントに書かれているテストを行って、大丈夫だと思
えるsendmail.cfができたら
# make install
# make install-sendmail
で、いよいよsendmailを再起動。
何とか動いているようだ。ふう。

めったにpostの無いメーリングリストだが、早くpostされないかな。
どのくらい配送が早くなったか楽しみだ。

trackbacks

trackbackURL:

comments

comment form
comment form