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

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

  目次

  1. イントロダクション
  2. 私のシステム
  3. qmail のインストール
     3.1 maildir2smtp

  4. MH のインストール
     4.1 mtstailor
     4.2 mh_profile

  5. fetchmail
  6. exmh
  7. 免責事項
  8. Procmail
  9. 情報

  ______________________________________________________________________

  1.  イントロダクション

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

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

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

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

       信頼性：qmail の straight-paper-path 哲学は、メッセージがシ
       ステムに受信されれば絶対に紛失しないことを保証します。ま
       た、maildir という、新しい非常に信頼できるユーザ用メールボッ
       クスフォーマットをサポートしています。maildir は、mbox ファ
       イルや MH フォルダとは違って、配送の途中でシステムがクラッ
       シュしても、壊れたりしません。ユーザが NFS 越しにでも安全に
       メールを読めるだけでなく、たくさんの NFS クライアントが当時
       にその人にメールを配送することもできます。
       効率：Pentium で動いている BSD/OS 上で、一日 20 万のローカル
       メッセージに簡単に耐えることができます。配送された各メッセー
       ジを取り込み、メールボックスに分配するテストを実際にやってみ
       ました！リモート配送は、 DNS や SMTP が遲ければ制限されます
       が、デフォルトで 20 個同時に配送します。だから、大きなメーリ
       ングリストでもすばやく配送できます。(これが qmail を完成させ
       た理由です。私は大きなメーリングリストを設定しなければならな
       かったのです。)

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

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

  2.  私のシステム

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

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

  3.  qmail のインストール

  INSTALL の指示に従います。

  注意：

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

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

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

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

  3.1.  maildir2smtp

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

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

              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 アドレスにおきかえること。

  注意:

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

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

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

  4.  MH のインストール

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

  ______________________________________________________________________

  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

  ______________________________________________________________________

  注意：

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

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

  4.1.  mtstailor

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

       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

  注意

  o  sendmail：/usr/lib/sendmail は、/var/qmail/bin にある qmail の
     sendmail ラッパーへのリンクです。

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

  4.2.  mh_profile

  これが私の .mh_profile です。

       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

  注意：

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

  [訳注：scan 文字化け対策に、

       file-coding: ja_JP.jis7
       display-coding: ja_JP.jis7
       process-coding: ja_JP.jis7

  を加えておいたほうがよいでしょう。]

  5.  fetchmail

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

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

  私の .fetchmailrc です。

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

  6.  exmh

  私が選んだメイラーです。大好き。

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

  ______________________________________________________________________

  #!/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
  ______________________________________________________________________

  7.  免責事項

  毎度おなじみの「無保証、無返金、各自の責任で使うこと」です。

  8.  Procmail

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

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

       | preline procmail

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

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

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

  9.  情報

  必要なパッケージ

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

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

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

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

  o  fetchmail は ftp://ftp.ccil.org/pub/esr/fetchmail か Eric 氏のホー
     ムページ http://www.ccil.org/~esr にあります。

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

  o  exmh は ftp.sunlabs.com/pub/tcl/exmh/ にあります。

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

  o  [訳注：http://www.qmail.com が qmail のホームサイトです]

