                                                        -*- Indented-text -*-
# CML Documents.
# Copyright 1993-2004 (C) SAITO Yasuhiro.
# All rights reserved.



CML の install
**************
　CML のパッケージ群は誰でも install することが可能です。このことは、root 
の管理負荷の軽減を意味します。メイリングリストを運営する人はえてして root 
であることが多いのですが:-) 将来的には、一般ユーザがメイリングリストを運営
することも増えてくることでしょう(*1)。

　まずは、以下の内容に従って cmld, cmdt, cmas をインストールして下さい。

*1 root になれない人が運用可能
++++++++++++++++++++++++++++++
　とはいえ、万が一の自体に備え、運用に際しては、root の方に理解を求めること
が重要です。少なくともテストの間は root になれる方につきあってもらった方が
良いでしょう。一般ユーザの資格では不慮の事態に対応できないことが多々ありま
す。


CMLドの環境設定
===============
　パッケージを展開(*2)したディレクトリで、

        % ./Configure

と入力して下さい。実行に必要なパスを自動で検索し、リストを作ります。万が一
必要なコマンドのパスが見つからなかった場合には問い合わせをしますので、入力
して下さい。

　各環境設定を終了すると、

        Do you want to execute 'make install' ? [n] 

と問い合わせてきます。y を入力すると、インストールが実施されます。そのまま
リターンキーを入力すると、インストールは行われません。この場合は、コマンド
ラインで、

	% make install

と入力してください。


*2 パッケージの展開
+++++++++++++++++++
　パッケージの展開は必ず JIS コードで行なって下さい。

　公式パッケージは JIS コードにて提供されていますが、幾つかのサーバにコピー
される場合などに漢字コードが JIS 以外になっている可能性があります。


インストールののヒント
======================
　make install を実行すると、Install.sh というシェルプロシジャが起動されま
す。中に Configure からの入力により設定した４つの環境変数がありますので、内
容を理解した上、必要であれば修正して下さい。しかし、きちんと Configure を実
行すれば、このファイルを修正する必要はないはずです。

        DOMAIN  ＭＬを運営するドメイン名を記述します。
                デフォルトで Configure を実行したマシンのドメイン名が入りま
                す。Configure でドメイン名が獲得できなかった場合はなにも入っ
                ていないので、運用するマシンのドメイン名を書いて下さい。

        DRIVER  cmld, cmdt, cmas を置くディレクトリを指定します。デフォルト
                は /usr/local/etc/cml になっています。

        MSPOOL  シーケンスファイル、アーカイブ機能を有効にした場合の記事の
                保存、自己紹介のファイルはすべてこのディレクトリ配下に置か
                れますので、これらの機能を使用する場合はディスクスペースに
                気をつけて下さい。

        CMAS    cmas をインストールするか否かを決定しています。１でインス
                トールし、０でインストールしません。

すでにわかっている問題
++++++++++++++++++++++
　処理系によっては$DOMAIN, $DRIVERに大文字／小文字の区別ができない（すべて
小文字であると判断されてしまう）ものがあるようです。


デフォルトの運用環境
====================
　make install を実行すると、Configure で設定したインストールディレクトリ
に config.default というファイルが置かれます。この中身は運用する全てのＭＬ
(*3) においてデフォルトの基本設定となります。

*3 全てのＭＬ
+++++++++++++
　cmld, cmdt, cmas は複数のメイリングリストに対してこれだけで運用が可能です。 


　それぞれの内容は以下の通りです。

ARCHIVE     ＭＬに流された記事をアーカイブする場合は DO、しない場合は DONT 
            を設定して下さい。

KEEP        記事をアーカイブする設定にした場合、古いアーカイブが必要無い場
            合保存したい記事の数を設定してください。すべてアーカイブしたい
            場合には ALL を設定してください。

ACCESSFREE  アーカイブされた記事のアクセスに制限をかけない場合は DO、会員番
            号と暗証番号でアクセス制限をかける場合は DONT と設定して下さい。

GENERICFROM ＭＬのアドレスに Configure で設定したアドレス($DOMAIN)以外のア
            ドレスを使用したい場合アドレスを設定して下さい。$DOMAIN のアド
            レスのままで良い場合はなにも設定しないで下さい（GENERICFROM=は
            消さないで下さい）。

REPLYSW     ヘッダに Replt-To: フィールドをつけるルールを指定します。
            　　1を指定した場合、決められたアドレスに書き変えます。
            　　2を指定した場合、オリジナルのメールに Reply-To: フィールド
            　　 がない場合のみ、決められたアドレスに書き変えます。
            　　3を指定した場合、Reply-To に関する書き換えは行ないません。

REPLYTO     REPLYSW で書き換えルールが指定されている場合、ヘッダに付加され
            るReply-To アドレス には、"ＭＬのアドレス@$DOMAIN" が使用されま
            す。このアドレスを違うものにしたい場合は、そのアドレスを設定し
            て下さい。変更しない場合は、何も設定しないで下さい（その場合も、
            REPLYTO=は消さないで下さい）。
            
SUBSTYLE    ヘッダの Subject: のスタイルを指定して下さい。
                1を指定した場合流されたものがそのまま使われます。
                2を指定した場合 "[$ML] オリジナルのサブジェクト" になります。
                3を指定した場合 "[$ML: 通し番号] オリジナルのサブジェクト”
                 になります。通し番号は０詰めで７桁になります。
                4を指定した場合 "[$ML: 通し番号] オリジナルのサブジェクト”
                 になります。通し番号は０詰めされません。
                5を指定した場合 "[$ML: 通し番号] オリジナルのサブジェクト”
                 になります。通し番号は以下のFIGURE 変数で指定された桁数ま
		 で０詰めされます。

OTHERNAME   上記の SUBSTYLE で 2 〜 5 を選択し、Subject に挿入される ML の
            名前を任意のものに変更したい場合、その文字列を指定します。

FIGURE	    上記の SUBSTYLE で 5 を選択した場合、何桁まで０詰め表示するかを
            指定します。

NOTMEMBER   ＭＬの会員以外からメールが届いた場合の処理をしていして下さい。
                1を指定した場合、そのメールを通常通りメンバーに配送します。
                2を指定した場合、送信者にメンバーでないと配送されない旨通知
                します。
                3を指定した場合、送信者にメンバーでないと配送されない旨通知
                します。また、ＭＬ管理者にそのカーボンコピーを送信します。

GENERIC     ＭＬの会員か否かを調べる場合に、登録されたアドレスとユーザID の
            間にホスト名などが入っていても会員と認める場合は DO、登録アドレ
            スのみを会員とする場合は DONT を設定して下さい。

ADMINONLY   DO を設定すると、MLには $ML/$ML-admins に記述されている人からし
	    か投稿できなくなります。

UNIXFROM    メールを配送するときの、envelop from を $ML-request 以外にする
	    ことができます。

	    変更するアドレスは、sendmail.cf で Trusted users に登録されてい
	    る必要があるでしょう。

	    また、/etc/aliases への追加なども忘れずに行ってください。

	    ※このオプションは通常設定しないことをおすすめします。

COUNT       ヘッダに "X-ML-Count: 通し番号" をつける場合は DO、つけない場合
            はDONT を設定して下さい。

MLNAME      ヘッダに "X-ML-Name: ＭＬの名前" をつける場合は DO、つけない場
            合はDONT を設定して下さい。

XHEADERS    ヘッダに ML 独自の X-???: ヘッダを付加したい場合、それらを記述
            したファイル名を指定して下さい。なお、このファイルは~cml/ML名/
            において下さい。ファイルに記述された中身のうち "^X-文字列:" で
            始まるもののみメールヘッダに付加します。なお、この記述には、CML
            が使用している変数（例えば MLの名前は $ML）を書くと展開されます。

                （例）X-Ml-Info と X-Hoge いうヘッダを入れたい場合
                  +-------------------------------------
                  |X-Ml-Info: This is $ML Mailing-List.
                  |X-Hoge: hogehoge
                  +-------------------------------------

SENDER      ヘッダに Sender: フィールドを付加する場合、Sender: のアドレスを
            指定して下さい。指定しない場合は、何も設定しないで下さい（その
            場合も、SENDER=は消さないで下さい） 。 

PRECEDENCE  ヘッダに Precedence: フィールド(*4)を付加する場合、Precedence: 
            につける種類を指定して下さい。指定しない場合は何も設定しないで
            下さい（その場合も、PRECEDENCE= は消さないで下さい）。

AUTOADD     cmas を用いる場合で、ユーザからの自動参加登録機能を用いる場合は 
            DO を、用いない場合は DONT を設定して下さい。DONT を指定した場
            合は、cmas の append コマンド（CMAS のマニュアル(*5)参照）は、
            ＭＬのリクエストアドレスに転送されます。

DGSTAPPEND  Default Digest Mode File（後述）に登録されたドメインから新規登
            録の依頼が来た場合、定時配送モード（DGST）で登録します。

AUTOMSG     cmas を用いる場合で、新規にユーザが追加された場合および、ユーザ
            が脱会した場合にシステムからメンバーに対してお知らせのメールを
            発行する場合は DO を、しない場合には DONT を設定して下さい。
            DONT を指定した場合は、ＭＬのリクエストアドレスに転送されます。

DLVMSG      cmas を用いる場合で、メンバーからの制御コマンドにより、配送状態
            が変化した場合にシステムからメンバーに対してお知らせのメールを
            発行する場合には DO を、しない場合には DONT を設定して下さい。
            DONT を指定した場合は、ＭＬのリクエストアドレスに転送されます。

DIGESTMAX   ダイジェストモードにおいて、記事が指定のサイズを越えた場合、設
            定時刻によらず、配送したい場合に設定して下さい（単位はＫＢ）。
            何も設定されていない場合は、指定時刻にのみ配送します。
            （例５０ＫＢを越えたら配送してしまいたい場合： DIGESTMAX=50）。

DIGESTLEN   ダイジェストモードにおいて、記事が指定の行数を越えた場合、設定
            時刻によらず、配送したい場合に設定して下さい（単位は行）。
            何も設定されていない場合は、指定時刻にのみ配送します。
            （例１０００行を越えたら配送してしまいたい場合： DIGESTLEN=1000）。

MYHEADER    この変数は廃止されました。XHEADERS 変数を使ってください。

CMDSUB	    ML に流された記事において、Subject にコマンドメールで使用するも
	    のが用いられていた場合、送信者にエラーとして返送することができ
	    ます。この機能を利用する場合は、DO を設定してください。

CMLDMAXLINE ML に送信できるメールサイズを行数で設定したい場合、許容する最大
	    行数を指定してください。

CMLDMAXBYTE ML に送信できるメールサイズをバイト数で設定したい場合、許容する
	    最大バイト数を指定してください。

MAXORGWITH  CMLDMAXLINE, CMLDMAXBYTE で最大サイズを設定し、送信されたメール
	    がその設定を越えた場合、送信者にオリジナルメールを含めてエラー
	    メッセージを返送しますが、オリジナルメールを全てでなく、指定行
	    数以内で返送したい場合、その行数を指定して下さい。

LISTLIMIT   LIST コマンドでアーカアイブの一覧を取り寄せ要求が来た場合、要求
            できる最大個数を制限したい場合に設定して下さい（単位は個）。

GETLIMIT    GET コマンドでアーカイブの取り寄せ要求が来た場合、要求でいる最
            大サイズを制限したい場合に設定して下さい（単位は KB）。ただし、
            要求が１個の記事の場合、このサイズ制限は無視されます。

MESSAGES    ＣＭＬが返すメッセージを日本語以外にしたい場合に設定します。詳
            細については、about-multilingual を参照して下さい。

ERRORLOG    DO を選択するとcmasに対して送信された制御メールを ~cml/ML名/LOGS 
	    に一旦保存し、何らかの不具合で cmas が異常終了した場合、そのメー
	    ルをそのまま保存します。cmas が正常終了した場合は、消去されます。 

ASLOGLEVEL  コマンドメールを受信した時に採取するログの内容を指定します。

	    	0: ログは保存しません。
		1: ヘッダ内の、From: Reply-To: Subject: を保存します。
		2: ヘッダ内の、From: Reply-To: Subject: と本文５行を保存し
		   ます。
		3: コマンドメールの全文を保存します。

	    保存先は、~cml/ML名/LOGS/cmaslog です。

GETADLOG    DO を選択すると、cmad の実行ログを ~cml/ML名/LOGS/cmadlog とい
	    うファイルに保存します。

STATIC	    特定のドメイン宛のメールの配送経路を決まった特別の経由に向けた
	    い場合、その経路リストを記述したファイル名を指定します。なお、
	    ファイル名は、CML のインストールされた場所からの相対ディレクト
	    リを指定して下さい。

	    記述の文法は、１行に１経路ずつ、

	    	    配送アドレス	経由アドレス

	    を記述して下さい。旧バージョンから移行の場合は、CMAS がアドレス
	    変更に関する作業を行うタイミングで反映されます。

	    ※この機能は、歴史的産物の要素があります。現在では、悪意を持っ
	    た中継を拒む、いわゆるSPAM対策等が施されたサイトが増えてきてい
	    ます。そのようなサイトをこの方法で中継しようとするとメールがエ
	    ラーになるので、十分注意が必要です。

CONFIRM	    APPEND コマンドが送信されてきた時、その場でアドレスの登録を行わ
	    ず、本当に登録してよいか確認のメールを送信します。ユーザより、
	    確認メールの返答を受信するとはじめてＭＬに登録します。

USECHECK    CHECK コマンドの利用の可否を設定することができます。

USEMEMBER   MEMBERコマンドの利用の可否を設定することができます。

MEMBMSG	    MEMBERコマンドを利用不可にした場合、ユーザに返送するメッセージ
	    を選択できます。1 の場合、文法エラーとしてあつかい、2の場合は、
	    「メンバーリストは取得できません」というメッセージになります。

CKECKDISKSPACE
            ML宛にメールが配送された場合に、temporaryファイルの残り容量が以
            下で設定するサイズ以下になっている場合、管理者にその旨メールで
            通知します。なお、このオプションを設定すると、活発なMLでチェッ
            クにひっかかると多くのメールが管理者宛に送信されますので十分ご
            注意下さい。

DISKLIMIT   CKECKDISKSPACE=DOを設定した時に、ディスクの残り容量の閾値を設定
	    します。なお、警告メールを送信するためにディスクスペースを使用
	    しますので、100以上の値に設定すると警告メールが正しく送信されな
	    い可能性があります。

なお、デフォルトの設定は、

        ARCHIVE=DONT
        KEEP=ALL
        ACCESSFREE=DO
        GENERICFROM=
        REPLYSW=1
        REPLYTO=
        SUBSTYLE=1
        OTHERNAME=
	FIGURE=5
        NOTMEMBER=1
        GENERIC=DONT
        COUNT=DONT
        MLNAME=DONT
        SENDER=
        PRECEDENCE=
        AUTOADD=DO
        DGSTAPPEND=DONT
        AUTOMSG=DO
        DLVMSG=DO
        DIGESTMAX=
        DIGESTLEN=
	CMDSUB=DONT
	CMLDMAXLINE=
	CMLDMAXBYTE=
	MAXORGWITH=
        LISTLIMIT=
        GETLIMIT=
        MESSAGES=
        ERRORLOG=DO
	GETADLOG=DONT
        STATIC=
        CONFIRM=DONT
        USECHECK=DO
        USEMEMBER=DO
	MEMBMSG=1
	CKECKDISKSPACE=DONE
	DISKLIMIT=95

となっています。

cmld, cmdt, cmas, cmad のインストールはこれで終りです。


すでにわかっている問題
++++++++++++++++++++++
　誰から送信されたかのアドレスチェックを行なう場合は、会員リストは、cmas の
自動登録機能で作成するか、addusr コマンドで作成するか、もしくはこれらと同等
の形式になっていないと、正しく動作しません。
　詳細については、~CML/Doc/make-ML 内の「メンバーリストの記述（自動機能を使
用しない場合）」
を参照して下さい。


*4 Precedence: ヘッダ
+++++++++++++++++++++
　Precedence ヘッダは RFC822 には定義されていませんが、sendmail に対してメー
ルの重要度を指示するために使用されます。従来の sendmail からの意味付けでは、 
queueing load ave と reject load ave の間で用いられる queue/deliver 決定関
数のパラメタの一つとなり、優先度が低く指定されているメールは queuing させら
れる確率が高くなります。
  通常 Precedence: ヘッダには文字列が記述されますが，文字列に対応する数値は 
sendmail.cf の P 行で定義されます。sendmail 8.6.8 では，次の設定が推奨され
ています。

        Pspecial-delivery=100
        Pfirst-class=0
        Plist=-30
        Pbulk=-60
        Pjunk=-100

Precedence: ヘッダが存在しない場合は，0 として扱われます。

　Precedence: はメールの返送動作の制御を行なうためにも使われることがありま
す。例えば、vacation （不在通知プログラム）では Precedence: に bulk または 
junk が指定されている場合には不在通知を返送しません。さらに sendmail R8 で
は、Precedence: に指定されている文字列に対応する値が負であった場合にはエラー
通知メールを返送しません。

　sendmail R8 では、Precedence: に指定されている文字列に対応する値が負であっ
た場合には、以下の動作をとります。

        ・未配送通知メール(warning message)を発信者に送り返さない。
          また、sendmail.cf にて OP オプションが定義されている場合であって
          も未配送通知メールをそのユーザに送らない。

        ・配送不能通知メール(returned message)を発信する場合に、本文を省略
          する。

*5 CMAS のマニュアル
++++++++++++++++++++
　CMAS のマニュアルは コマンドメールを送信することにより取り出すことができ
ますが、直接ファイルを読む場合は、~CML/messages/manual を、

        %CNtLAdRs%　→　MLの名前-control@ドメイン名

        %MlNaMe%　　→　MLの名前@ドメイン名

と読み替えて下さい。
