<!doctype linuxdoctr system>

<article>

<!-- Title information -->

<title>mini-HOWTO install qmail with MH
<author>Christopher Richardson (rdn@tara.n.eunet.de)
<date>v1.1 22.03.97
<trans>松本庄司 (shom@i.h.kyoto-u.ac.jp)

<abstract>

上の email の組み合わせを使おうかと考えているユーザのために、なん
らかの助けになるよう、私のインストールの経験を書きます。

</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>イントロダクション

<p> 
私を助けてくれたネットワーカーの皆さんに感謝します。特に、次の人々は 
Linux のインストールを非常に簡単にしてくれ、また上のすばらしいプログラム
を作ってくれました。Tony Nugent 氏 (tony@trishul.sci.gu.edu.au)、 David
Summers 氏 (david@summersoft.fay.ar.us)、 S.u.S.E (Linux ディストリビュー
ション)

qmail ってなに？どうやって使うの？作者(Dan Bernstein 氏)による紹介か
ら引用しておきます。

<quote>qmail は、安全で、信頼でき、効率的で、単純なメッセージ転送エージェ
ントです。インターネット接続された典型的な UNIX ホスト上の 
sendmail-binmail システムを、完全に置きかえることができます。</quote>

<quote>安全性：セキュリティは目的ではありませんが、絶対に必要です。
メール配送はユーザにとって非常に重要です。止めることはできないので、完全
に安全でなければなりません。(これが qmail を書きはじめた理由です。
sendmail や他の MTA (Mail Trasfer Agent) のセキュリティホールにうんざり
していたんです。)</quote>

<quote>信頼性：qmail の straight-paper-path 哲学は、メッセージがシス
テムに受信されれば絶対に紛失しないことを保証します。また、maildir という、
新しい非常に信頼できるユーザ用メールボックスフォーマットをサポートしてい
ます。maildir は、mbox ファイルや MH フォルダとは違って、配送の途中でシ
ステムがクラッシュしても、壊れたりしません。ユーザが NFS 越しにでも安全
にメールを読めるだけでなく、たくさんの NFS クライアントが当時にその人に
メールを配送することもできます。</quote>

<quote>効率：Pentium で動いている BSD/OS 上で、一日 20 万のローカル
メッセージに簡単に耐えることができます。配送された各メッセージを取り込み、
メールボックスに分配するテストを実際にやってみました！リモート配送は、
DNS や SMTP が遲ければ制限されますが、デフォルトで 20 個同時に配送します。
だから、大きなメーリングリストでもすばやく配送できます。(これが qmail を
完成させた理由です。私は大きなメーリングリストを設定しなければならなかっ
たのです。)</quote>

<quote>簡便性：qmail は他のどんなインターネット MTA よりもかなり小さ
いです。以下に理由を挙げてみます。(1) 他の MTA では、フォワード(転送)、
エイリアス、メーリングリストの機構が別々になっています。qmail は、ユーザ
が自分のメーリングリストを管理できるようなフォワード機構だけを備えていま
す。(2) 他の MTA が備えている配送モードは「速くて安全でない」か「遲くて
キューにたまる」です。qmail の送信は、キューに新しいメッセージが来るとす
ぐに実行されます。つまり、qmail の配送モードはただひとつ、「速くてキュー
にたまる」です。(3) 他の MTA には、実際、ロードアベレージを見る inetd 用
特別バージョンが含まれています。qmail は、本質的にマシンに負荷をかけない
ような設計になっていますので、あなたのシステムの inetd から qmail-smtpd 
を起動するのは安全です。</quote>

<quote>sendmail との互換性：qmail には次のような特徴があります。ホス
ト、ユーザの仮装(masquarading)、ホストの完全な隠蔽、バーチャルドメイン、
ヌルクライアント、メーリングリスト管理者のアドレス書き換え、リレー制御、
ダブルバウンス記録、RFC822 準拠のアドレスリスト完全対応、クロスホストメー
リングリストループの検出、受信ごとのチェックポイント、ダウンしているホス
トのバックオフ、メッセージごとのリトライスケジュール、等々。要するに、今
どきの MTA の機能をしっかり備えているわけです。qmail には差し込み式の
「sendmail」ラッパーも入っています。これによって、現在使っている UA
(User Agent) をそのまま使うことができます。</quote>


<sect>私のシステム

<p>

Cyrix 6x86。SuSE Linux ディストリビューション。カーネルは 2.0.28 に 
Cyrix パッチ (http://www.escnet.com) を当てたもの。Elsa Winner Trio +64 
グラフィックカード。

PPP リンクで ISP に繋げています。


<sect>qmail のインストール

<p>

INSTALL の指示に従います。


注意：

<itemize>

ドキュメントはよくできていますので、きちんと読む時間をとってください。
INSTALL ドキュメントにあるインストール手順の数字を左に書いておきます。

<item> 2  - INSTALL.ids ごとに、グループとユーザを手動でセットアップ
        した

<item> 7  - 私のシステムでは ./qmail-makectl がうまく動かなかった。
        自分のドメイン名 (mickey.n.eunet.de) を手動で 
        /var/qmail/control/me に加えた。

<item> 23 - inetd-conf ファイル にきちんと qmail-smtpd が書かれてい
        るか(スペルミスしていないか)確認した。(私はスペルミスを発見する
        ために 2 日かかった:( )
        smtp  stream  tcp     nowait  qmaild   /var/qmail/bin/tcp-env tcp-env  
        /var/qmail/bin/qmail-smtpd 
</itemize>

<sect1>maildir2smtp

<p>

Dan Bernstein 氏が、キューにたまったメールを電話回線経由で ISP に送
信するパッケージを作ってくれました。彼のサイトの serialmailxxx です。

マニュアルページに書いてある通りにこのパッケージをインストールします
(Rupert Mazzucco (maz@pap.univie.ac.at) 氏に感謝)。何も難しいこと考えな
くても動きます！

<tscreen><verb>


       maildir2smtp - maildir の中身を SMTP で送信する

       maildir2smtp は SLIP や PPP 接続を経由してメッセージを渡すよう
       に設計されている。接続されていない側にこれをセットアップするに
       は、alias 内に新しい maildir を作る。

          # maildirmake ~alias/pppdir
          # chown -R alias ~alias/pppdir

       次に、

          :alias-ppp

       を control/virtualdomains に入れ、

          ./pppdir/

       を ~alias/.qmail-ppp-default に入れる。./pppdir/ の最後の / を
       忘れないように。そして、PPP 開始スクリプトの中で次のようなコマ
       ンドを実行する。

          maildir2smtp ~alias/pppdir alias-ppp- $IP `hostname`

       $IP はリモートの IP アドレスにおきかえること。

</verb></tscreen>

注意:

<itemize>

<item>マニュアルページはよくできているので、ちゃんと読んでください。

<item>maildir2smtp はメールサーバの IP アドレスを必要とします。もし
IP がわからなければ、ping &lt;メールホストの名前&gt; を実行してください。IP ア
ドレスがわかります。

<item>このコマンドをログインスクリプトに入れておくこともできます。
ISP にログインした後に、キューにたまったメールがすべて送信されます。

</itemize>

<sect>MH のインストール

 
<p>


私の mh-6.8.4/conf/MH は次のようにしました。

<tscreen><code>


bin	/usr/bin/mh
etc	/usr/lib/mh
#mail	
#mandir	/usr/man
#manuals	standard
chown	/bin/chown
#cp	cp
#ln	ln
#remove	mv -f
cc	gcc
ccoptions -traditional -O2 -m486 -D_NFILE='getdtablesize()' 
          -DSIGEMT=SIGUSR1
curses	-lncurses
#ldoptions	-s
#ldoptlibs
lex	flex
#oldload	off
#ranlib	on
mts	sendmail
#mf	off
#bboards	off
#bbdelivery	off
#bbhome	/usr/spool/bboards
pop	on
popdir	/usr/lib/mh
sharedlib	sys5
slflags	-fPIC
slibdir	/usr/lib
mailgroup	mail
signal	void
sprintf	int
#editor	prompter
#debug	off
#regtest	off
options	ATHENA
options	BIND
options	DPOP
options	DUMB
options	FCNTL
options	MHE
options	MHRC
options	MIME
options	MORE='"/usr/bin/less"'
options	OVERHEAD
options	POP2
options	POPSERVICE='"pop3"'
options	RENAME
options	RPATHS
options	RPOP
options	SOCKETS
options	SVR4
options	SYS5
options	SYS5DIR
options	TERMINFO
options	UNISTD
options	VSPRINTF


</code></tscreen>


注意：
<itemize>
<item>私は mts sendmail しかコンパイルしていません。/smtp でなにか問
題が起こったら、comp.mail.mh を読んでください。

<item> 私は mail をコメントアウトしました。mtstailor 経由でコントロー
ルしたかったからです。
</itemize>

<sect1>mtstailor
<p>

qmail はメールをホームディレクトリ (\&tilde;/Mailbox) に配送します。私は 
mtstailor に次のようにつけ加えました。

<tscreen><verb>

localname:	mickey
localdomain:	n.eunet.de
mmdfldir:	
mmdflfil:	Mailbox		
uucpldir:	
uucplfil:	
mmdelim1:	\001\001\001\001\n
mmdelim2:	\001\001\001\001\n
mmailid:	0
umincproc:
lockldir:
sendmail:	/usr/lib/sendmail

</verb></tscreen>


注意
<itemize>
<item>sendmail：/usr/lib/sendmail は、/var/qmail/bin にある qmail の 
sendmail ラッパーへのリンクです。

<item>MH では「&tilde;/(ホームディレクトリの意)」は使えません。フ
ルパスを書くか、何も付けないでおきましょう。付属ドキュメントによると、
何も付けなければデフォルトで &dollar;HOME になるそうです。&lsqb;訳注：
少し違うかもしれません。Path: Mail としておけば &dollar;HOME/Mail が 
MH の基準ディレクトリになり、/ ではじまっていないパスは基準ディレクト
リからの相対パスになるようです。詳しくは mh-profile(5) を参照すること
&rsqb;


</itemize>

<sect1>mh_profile
<p>

これが私の .mh_profile です。

<tscreen><verb>

Path: Mail
draft-folder: drafts
unseen-sequence: unseen
AliasFile: /home/rdn/.mh_aliases
send: -msgid
comp: -form /home/rdn/.mymh-components
MailDrop: /home/rdn/Mailbox
</verb></tscreen>

注意：

私は、非常に注意深く MailDrop 行を書きました。

&lsqb;訳注：scan 文字化け対策に、
<tscreen><verb>
file-coding: ja_JP.jis7
display-coding: ja_JP.jis7
process-coding: ja_JP.jis7
</verb></tscreen>
を加えておいたほうがよいでしょう。&rsqb;


<sect>fetchmail
<p>
複数のユーザがいるため(家族です:)、私は fetchmail を使うことにしまし
た。Linux と fetchmail は、qmail 越しに smtp ポートへメールを配送します。


インストールは何事もなく終わりましたが、まだマルチドロップがうまくいっ
ていません。

私の .fetchmailrc です。

<tscreen><verb>

poll PersonalMail.Germany.EU.net
protocol pop3
username myname
password mypassword

</verb></tscreen>

<sect>exmh
<p>
私が選んだメイラーです。大好き。

ひとつ問題があります。ほとんどのコンパイル済み Tcl/Tk パッケージは、
セキュリティオプション付きでコンパイルされています。SuSE に付いてくる次
のスクリプト .xserverrc.secure はこの問題を解決します。

<tscreen><code>

#!/bin/sh

#
# move this file to ~/.xserverrc, if you don't want to allow everybody to
# get access to your X-Server
#
if [ -x /usr/bin/keygen ]; then
    if [ ! -x /usr/bin/hostname -a ! -x /bin/hostname \
	 -a ! -x /usr/bsd/hostname ];
    then
        echo "startx: can't get my hostname - exiting"
	exit 1
    else
	host=`hostname`
    fi

    xauth add $host:0 . `/usr/bin/keygen`
    sleep 2
    xauth add $host/"unix":0 . `/usr/bin/keygen`
    exec X :0 -auth .Xauthority $*
else
    exec X :0 $*
fi

</code></tscreen>



<sect>免責事項
<p>
毎度おなじみの「無保証、無返金、各自の責任で使うこと」です。


<sect>Procmail
<p>

qmail FAQ には次のようなコマンドがありあす：

In ~/.qmail add the line &tilde;/.qmail に次の行を加えます

<tscreen><verb>
| preline procmail
</verb></tscreen>

私のシステムでは、.qmail ファイルを作るのに vi を使ったときだけうま
くいきました。コマンドの後に空行が入っています。

私は自分のデフォルトで procmail パッケージをリコンパイルしました。私
の作った /usr/local/bin/procmail から /bin/procmail にリンクを張っていま
す。コマンドが /usr/local/bin/ にある procmail を見付けてくれるかどうか
自信がなかったからです。

procmail には素晴らしいドキュメントが付いています。自分の .procmailrc ファイルを設定する時は、マニュアルページにある例を読んでくだ
さい。

<sect>情報
<p>

必要なパッケージ

<itemize>
<item>qmail,setserial は http://pobox.com/&tilde;djb/qmail.html にあります。
      他の qmail 関係のソフトウェアや、qmail メーリングリストへのポイン
      タもあります。

<item>MH は ftp.ics.uci.edu:/pub/mh にあります。

Tony Nugent 氏がオリジナルの mh-6.8.3 ソースへのパッチを作っています
(パッチは ftp://ftp.gw.com/pub/unix/mail/mh/patches/linux/ にあります)。

<item>metamail (8 ビットキャラクタセットを含む、MIME サポート) は 
      ftp.bellcore.com:/pub/nsb にあります。

<item>fetchmail は ftp://ftp.ccil.org/pub/esr/fetchmail か Eric 氏
       のホームページ http://www.ccil.org/&tilde;esr にあります。

<item>glimpse (テキストサーチエンジン) は University of Arizona にあ
      ります。(http://glimpse.cs.arizona.edu:1994/)

<item>exmh は ftp.sunlabs.com/pub/tcl/exmh/ にあります。

<item>Tcl/Tk は
    ftp.sunlabs.com:/pub/tcl
    ftp.aud.alcatel.com:/tcl
    ftp.cs.berkeley.edu:/ucb/tcl
    にあります。

<item>&lsqb;訳注：http://www.qmail.com が qmail のホームサイトです&rsqb;

</itemize>

</article>
