改訂 平成9年11月22日(土)
平成10年3月31日(火) abstractをつけてみた:Sep/18
こやまさん@国際大学にちょっとだけいい方法
をおしえてもらいました(1999/Jan/12)
qmailで他からのメールを一切受けとらなくていいひとは試してみるのも
よろしいかと。
MLの配送の遅さをすこしでも解消させようと思っているML管理者の人は 沢山いると思います。でも、現用のsendmailをqmailにするのはちょっと 面倒だったり、契約上それができなかったり、自信がなかったり、 別のqmailの動作できるマシンが無かったりするあなたのための ページです。
また、sendmailから乗り換えるはじめとして、sendmailを動かしたまま qmailの様子を見たい人の参考になるかもしれません。
ここでは、sendmail でメールを受信して、fmlで処理をして、 qmailで配送させる方法を紹介します。
私はこうやっている!というような 実績がある方がいましたら、是非 e-mailを 下さい。
http://www.daionet.gr.jp/%7Eknok/mail/に、 既にqmailを導入していて、qmailをベースにしつつsendmail を補助的に利用するためにqmailとsendmailを立ち上げる方法が あります。(by 野首@daionetさん)
今から説明することは、通常のメールの受信/配送にはsendmailを使い続けながら、 MLの配送だけはqmailを使うことを目的としています。
概念図:
sendmail <------------- ( )
通常--------------> ( )
ML向 ( )
| ( OTHER SITES )
\|/ ( インターネットのくもくも)
FML ( )
| (________________ )
| /|\
\|/ |
qmail ----------------------------|
通常、SMTPはWKSとして、終点ポートがtcp/25を利用して通信をします。 そこで、sendmailを通常どおりに動作させておけば、sendmailは とうぜんいつものように使うことができます。
また、FMLや、majordomo、distributeなどのMLサーバは、MTAから メールを受けとり、ヘッダの書きかえなどの処理を行なったあとで、 MTAに配送を依頼します。 このとき、配送を依頼するMTAをtcp/25とは異なるポートで受信するように 設定しておけば sendmailは動作させたままで、他のMTAを利用することができます。
ここでは、qmail を任意のポートで受信するように設定をして、sendmail を動かしたままで、qmailの配送の高速性を生かした利用をすることを 説明します。
Qmailについての解説などは、 http://www.jp.qmail.org/ Cover Page for qmailに詳細な日本語での解説、リンクがあります。
まずなんといってもqmailをインストールしないことにはおはなしになりません。 また、受信するのはsendmailですからそのような設定をする必要があります。
ソースは、ftp://ftp.jp.qmail.org/qmail/qmail-1.01.tar.gzにあります。
qmailの基本的なインストール方法は、
qmailのアーカイブについている文書を読んでください。
それが、あなたと、あなたのサイトの全てのユーザのためです。
#smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.smtpd smtp-qmail stream tcp nowait qmaild /usr/sbin/tcpd\ /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpdここでは、smtp-qmailを設定しました。
smtp 25/tcp mail smtp-qmail 10025/tcp qmail-smtpここでは、smtp-qmailを10025番に設定しました。
tcp-env: 192.168.25.25, localhost: setenv =RELAYCLIENTここに必要なアドレスを入れて下さい。
env - PATH="/var/qmail/bin:$PATH" /bin/csh -cf\
'qmail-start ./Mailbox splogger qmail &'
を記入するだけですし、debianなどでは、/etc/init.d/qmailなどをつくって、
そこに、
#!/bin/sh env - PATH="/var/qmail/bin:$PATH" /bin/csh -cf \ 'qmail-start ./Mailbox splogger qmail &'のように記述して、
update-rc.d qmail defaultsを実行するだけです。
somehost.co.jp:mx.somehost.co.jpを加えます。そのホストがドメインのMXならば、Aレコードを指定しておくべきでしょう。 この行の意味は、hogehoge@somehost.co.jpあてのメールはmx.somehost.co.jpに おくるという意味です。 さらに、/var/qmail/control/locals で
localhost mx.somehost.co.jp となっているところを localhost だけにしないと ~/Maildirに配送されてしまいます。
インストールの方法は非常に簡便ですので、 fmlに附属のINSTALLなどを見てください。
config.phには、配送に利用するSMTPサーバと通信する相手を 設定するための変数が定義されています。
その内容を変更/追加するだけで、qmailを配送用に使用することができます。
$PORT = 10025; $HOST = 'foo.bar.jp';ここでは、$PORT に先程設定した、smtp-qmailの 値を、$HOST には、そのqmailの動いているホストのFQDNを記入します。
これもやはりFMLのconfig.phを設定します。
config.phの1;の行の前に次の2行を書く。
$Envelope{'mci:mailer'} = 'prog';
$SENDMAIL = "/var/qmail/bin/qmail-smtpd";
別解1の場合にはqmail用のsmtp portを用意する 必要はないため、intedと/etc/services、/etc/hosts.allowの設定はいりません。
また、/var/qmail/control/rcpthosts は存在しないように してください。また、この場合は qmailは全てのメール中継を許容するので、 qmail-sendがnetworkから接続できないようにしてください。
socket ok connect ok 220 foo.bar.jp ESMTP HELO foo.bar.jp<INPUT 250-foo.bar.jp 250-PIPELINING 250 8BITMIME MAIL FROM:<qmail-relay@bar.jp><INPUT 250 ok RCPT TO:<aaa@dokoka.ac.jp><INPUT 250 ok . . . DATA<INPUT 354 go ahead ------------------------------ Return-Path: <qmail-relay@bar.jp> . . . .<INPUT 250 ok 874209259 qp 27988 QUIT<INPUT 221 foo.bar.jpさて、接続のときから、sendmailとは違うメッセージなのに 気がついたでしょうか? では次に、配送されてきたメールのヘッダを見てみましょう。
Received: (qmail 22573 invoked from network); 10 Sep 1997 02:03:42 -0000このように、qmailのヘッダがはいっていればまあうまくいっているでしょう。
contributer list