diff options
| author | fukachan <fukachan> | 2009-12-26 13:33:24 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2009-12-26 13:33:24 +0000 |
| commit | b1f1a72733efecaa0e5850dd24a8ab453d74caf3 (patch) | |
| tree | 333d8cba510c14be5540dcc517b46d8aa45296c0 /fml/doc | |
| parent | 29d002244ca20a88e7583dcadbde92d555ee3f17 (diff) | |
| download | fml8-b1f1a72733efecaa0e5850dd24a8ab453d74caf3.tar.gz fml8-b1f1a72733efecaa0e5850dd24a8ab453d74caf3.tar.bz2 fml8-b1f1a72733efecaa0e5850dd24a8ab453d74caf3.zip | |
clean up a little ...
Diffstat (limited to 'fml/doc')
65 files changed, 1323 insertions, 795 deletions
diff --git a/fml/doc/ja/tutorial/changes/chapter.sgml b/fml/doc/ja/tutorial/changes/chapter.sgml index cfd0ad6f..10577e81 100644 --- a/fml/doc/ja/tutorial/changes/chapter.sgml +++ b/fml/doc/ja/tutorial/changes/chapter.sgml @@ -1,23 +1,34 @@ <!-- - $FML: chapter.sgml,v 1.4 2005/06/25 15:11:28 fukachan Exp $ + $FML: chapter.sgml,v 1.5 2008/08/16 00:26:19 fukachan Exp $ --> <chapter id="changes"> <title> - &fml4; と &fml8; の違い + &fml4; と &fml8; の相違 </title> <para> -本章では、&fml4; と &fml8; の違いについて解説します。 +本章では、&fml4; と &fml8; の相違点について解説します。 +</para> + + +<sect1 id="changes.overview"> + <title> + &fml4; と &fml8; の違い: イメージ + </title> + +<para> +&fml4; vs &fml8; は sendmail vs postfix に相当する。 </para> <para> -&fml4; vs &fml8; は -sendmail vs postfix にあたるというのが直観的な捉え方です。 +作者の視点から見れば、これがもっとも短い説明と考えます。 </para> +</sect1> + <sect1 id="changes.license"> <title> @@ -25,36 +36,40 @@ sendmail vs postfix にあたるというのが直観的な捉え方です。 </title> <para> -大雑把に言えば、&fml8; のソースコードは GPL か BSD 準拠、もしくは +おおざっぱに言えば、&fml8; のソースコードは GPL か BSD 準拠、もしくは Artistic のいづれかになっているはずです。 </para> <para> -&fml4; は、ほとんどのコード(.plのもの)が独自に書かれています。このライ -センスは GNU Public License です。jcode.pl が例外で、詳しくは jcode.pl -の先頭部分のライセンスを参照して下さい。また、perl module (.pm) も使わ -れており、それはソースツリーの module/の下に入っています。この下のライ -センスも各モジュールに従います。 +&fml4; は、ほとんどのコード(.plのもの)が独自に書かれています。これらの +ライセンスは GNU Public License です。jcode.pl が例外で、詳しくは +jcode.plの先頭部分のライセンスを参照して下さい。また、perl module +(.pm) も使われており、それはソースツリーの module/の下に入っています。 +この下のライセンスは各モジュール依存です。 +そして、ソースツリーの上で、これらのファイル群は奇麗に並んでいません。 </para> <para> -&fml8; では、ソースツリーがプロジェクトもしくはライセンスごとに分かれ -ていますので、各分類ごとのライセンスにしたがうことになります。&fml8; -用に書かれたコードは fml/ 以下にあり、Artistic License となっています。 -cpan gnu はその名の通りです。img は BSD ライセンス準拠です。詳しくは、 +&fml8; では、ソースツリーがトップディレクトリでプロジェクトもしくはラ +イセンスごとに分類わけされています。たとえば &fml8; 用に書かれたコード +は fml/ 以下にあり、ライセンスは Artistic License です。cpan/ や gnu/ +もあります。その名の通りです。img/ は BSD ライセンス準拠です。詳しくは、 それぞれのライセンスを読んで下さい。 </para> <para> ディレクトリごとに分かれているため、 -特定のライセンスのコードを排除することも(原理的には)容易です。 +特定のライセンスのコードを排除することも容易です。 </para> <para> &fml8; は、インストール時に、これらすべてをインストールするため、 -インストールした先ではライセンスがいり乱れていますので注意して下さい。 -もしライセンスをクリアにしたいなら必要な代替品を用意し、 -インストール手順を変える必要があります。 +インストールした先ではライセンスがいり乱れますので注意して下さい。 +</para> + +<para> +もしライセンスをクリアにしたい場合は、必要な代替モジュールを用意し、 +インストーラの設定を変えて出荷してください。 </para> </sect1> @@ -77,7 +92,20 @@ cpan gnu はその名の通りです。img は BSD ライセンス準拠です。詳しくは、 <para> ファイルやメッセージを送り返す際の基本形式は MIME/Multipart です。 -また tar.gz や zip 形式などを実装する予定はありません。 +</para> + +<para> +&fml4; の設計された時代は Unix が普通でしたが、その後のインターネット +の発展は、さまざまな OS や環境を登場させてきました。 +インターネットの転送能力も桁違いに高速・大容量化しました。 +4〜5 倍くらい効率が悪いとは思いますが、 +標準化されている MIME/Multipart 以外を使うと +「読めない」ユーザが続出するでしょう。 +</para> + +<para> +ユーザからのクレーム対応のほうが負担といえます。よって +&fml4; にあった tar.gz や zip 形式などを実装する予定はありません。 </para> </sect1> @@ -94,21 +122,27 @@ makefml とシンタックスの異なる fml というコマンドがあります。 makefml コマンド ML名 オプション fml ML名 コマンド オプション </screen> -違いはML名とコマンドの順番だけで、実行される内容は全く一緒です。 +違いは引数の順番です。 +ML名とコマンドの順番が違うだけで、 +実行される内容は、まったく一緒です。 +</para> + +<para> +動作時の表示の仕方も異なります。&fml8; のほうが Unix 的です。 </para> <para> -&fml4; のコマンドは、可能な限り、処理の様子を表示し、最後に処理の変更 +&fml4; のコマンドは、可能なかぎり処理の様子を表示し、最後に処理の変更 点を表示するようになっています。逆に、&fml8; のコマンドは、できるだけ 静かに動きます。 <footnote> <para> 逆に、makefml/fml を他のスクリプトから呼び出す場合には、コンピュータ処 理向きの出力をさせるようにすることが出来ます。これは、けっこう出力され -るものが多く五月蝿いです。 +るものが多く、うるさい感じです。 </para> </footnote> -これは、そのほうが UNIX 風だということと、必ずしも操作対象がファイルと +これは、そのほうが Unix 風だということと、必ずしも操作対象がファイルと は限らないため差分が表示できるわけではないなどといったことがあるためで す。 </para> @@ -156,21 +190,26 @@ makefml から実行される各コマンドの相違点は以下の通りです。 <para> &fml8; では、newml 実行時に、GUI のスクリプトも自動的に生成されます。 -しかしながら、apache の設定変更が別途必要なのは &fml4; のころと一緒です。 +これは下準備をするだけです。 +実際に WWW インターフェイスを使う際には +apache の設定変更が別途必要で、これは &fml4; と一緒です。 +知らない間にインターネットから勝手に GUI でいろいろできるようになって +いたら、びっくりするでしょうから、これは良いですよね? </para> <para> インターフェイスの相違は、かなりあります。 -&fml4; は割と伝統的なベタベタな作りですが、 +&fml4; は、わりと伝統的なベタベタな作りですが、 &fml8; はテーブルベースのものになっています。 </para> <para> -将来の課題としては、GUI のスキンを選べるようにするなども考えなくてはい -けないでしょう。一応、今、実行ファイル名ごとに異なる複数のスキンがある -のですが、動的に切替えることは現状出来ません(出来てないことはないので -すが、現状、そのスキン設定を保存してないので、次回アクセスすると元に戻っ -ちゃう;-)。 +将来の課題としては、GUI の見栄え(スキン)を選べるようにするなども考えな +くてはいけないでしょう。一応、今、実行ファイル名ごとに異なる複数のスキ +ンがあるのですが、動的に切替えることが現状出来ません(出来てないことは +ないのですが、現状、そのスキン設定を保存してないので、次回アクセスする +と元に戻っちゃいます;-)。 +いや、部分的に出来るかな?いずれにせよ、ここは中途半端です。 </para> </sect1> @@ -182,15 +221,23 @@ makefml から実行される各コマンドの相違点は以下の通りです。 </title> <para> -ファイル名の命名ルールについての詳細は +ファイル名の命名ルールについては <link linkend="filename"> <xref linkend="filename"> </link> を参照して下さい。 -いずれにせよ、 -&fml4; から &fml8; に変換するツールが頑張って、よろしくファイル名の変 -更などはしてくれるはずなので、手作業で変換することはないとおもいます。 -しかしながら、読む時に困るでしょうから、ここで差分を書いておきます。 +</para> + +<para> +&fml4; から &fml8; に移行する際には、 +自動変換ツールが頑張って、よろしくファイル名の変更をする手はずになって +います。 +手作業で変換することは、まずないとおもいますが、 +以下に &fml4; と &fml8; のファイル名ルールの差分を述べます。 +</para> + +<para> +MLのディレクトリを見る時に役に立つでしょう。 </para> <para> diff --git a/fml/doc/ja/tutorial/command/dataflow.sgml b/fml/doc/ja/tutorial/command/dataflow.sgml index f3209c90..6ac30ba2 100644 --- a/fml/doc/ja/tutorial/command/dataflow.sgml +++ b/fml/doc/ja/tutorial/command/dataflow.sgml @@ -1,11 +1,11 @@ <!-- - $FML: dataflow.sgml,v 1.5 2005/06/25 15:11:28 fukachan Exp $ + $FML: dataflow.sgml,v 1.6 2008/08/17 18:28:36 fukachan Exp $ --> <sect1 id="fml.command.dataflow"> <title> - コマンドの処理のフロー + コマンド処理のフロー </title> @@ -14,13 +14,13 @@ --> <para> -すべての処理は最終的に「FML::Command」クラス経由で「FML::Command::モー -ド::コマンド」クラスを呼び出します。GUI および CUI、コマンドメールは、 -そこに至る前処理の段階が異なるだけです。 +すべてのコマンド(&fml8; への命令)処理は最終的に「FML::Command」クラス +経由で「FML::Command::モード::コマンド」クラスを呼び出します。GUI およ +び CUI、コマンドメールは、そこに至る前処理の段階が異なるだけです。 </para> -<sect2> +<sect2 id="fml.command.dataflow.newframework"> <title> コマンドメールの処理 </title> @@ -32,7 +32,13 @@ </caution> <para> -まず、コマンドは行単位で、解析されます。 +本節はコマンドメールの話です。 +メールの本文が複数行あり、それが複数の命令を含むと想定します。 +</para> + +<para> +まず、メールは行単位で解析されます。 +これは、一行に一つのコマンドが書いてあるという想定です。 </para> <para> @@ -41,21 +47,26 @@ </para> <para> -1) guideやsubscribeのようにメンバー以外にも許されるコマンドであれば、 - 直接コマンド呼び出しルーチンへ処理が移ります。 +1) guide や subscribe のようにメンバー以外にも許されるコマンドであれば、 + そこから直接、コマンド呼び出しルーチンへ処理が移ります。 ここで許されるコマンドは anonymous_command_mail_allowed_commands - で定義されているコマンドです。 + 変数で定義されているコマンドです。 </para> <para> -2) メンバーだけに許されるコマンドの場合、 - command_mail_restrictionsのルールに従って他の条件を確認し、 +2) あらかじめ指定されたユーザだけに許されるコマンドの場合、 + command_mail_restrictions のルールに従って他の条件を確認し、 許されたなら、呼び出しルーチンへ処理が移ります。 ここで許されるコマンドは user_command_mail_allowed_commands で定義されているコマンドです。 </para> <para> +「あらかじめ指定されたユーザ」には、一般ユーザと管理者が含まれます。 +ただし、それぞれの処理のフローが異なります。 +</para> + +<para> 「呼び出しルーチン」では、 (コマンドに依存した)返事の送り先の確認と (コマンドに依存する)シンタックスチェックを経て、 @@ -64,24 +75,25 @@ FML::Command クラス経由でコマンドが実行されます。 </para> <para> -admin コマンドの実行は、ここでは行なわれません。「admin ...」コマンド -は、まず一般ユーザ権限の admin コマンド +admin コマンドも「あらかじめ指定されたユーザ」ですが、 +admin コマンドの実行は、ここでは行なわれません。 +「admin ...」コマンドは、まず一般ユーザ権限の admin コマンド <footnote> <para> 注: admin コマンドは user_command_mail_allowed_commands で許されています </para> </footnote> -として処理が進められ、最終的に「FML::Command::User::admin」クラスが呼 -び出されます。このクラスの中で、$admin_command_mail_restrictions に基 -づいてリモート権限があるか?が確認され、もう一度「FML::Command」クラス -経由で管理者権限の「FML::Command::Admin::コマンド」クラスが呼び出され -ます(つまりトランポリンメカニズムです)。 +の実行として処理が進められ、最終的に「FML::Command::User::admin」クラ +スが呼び出されます。このクラスの中で、admin_command_mail_restrictions +変数 に基づいてリモート権限があるか?が確認され、もう一度 +「FML::Command」クラス経由で管理者権限の「FML::Command::Admin::コマン +ド」クラスが呼び出されます(つまりトランポリン・メカニズムです)。 </para> </sect2> -<sect2> +<sect2 id="fml.command.dataflow.cui"> <title> CUI (makefml/fml)の処理 </title> @@ -94,8 +106,9 @@ admin コマンドの実行は、ここでは行なわれません。「admin ...」コマンド </para> <para> -なお、サーバにリモートで入れるようにする際、SSH で「RSA 2048 bit 鍵の -み許す」といった設定および運用ルールにしてください。 +なお、サーバへリモートからログインするためには SSH で「RSA 2048 ビット +以上の鍵のみを許す、パスワード認証は認めない」といった強固な運用ルール +を課して下さい。 </para> </sect2> diff --git a/fml/doc/ja/tutorial/command/extension.sgml b/fml/doc/ja/tutorial/command/extension.sgml index 4f7e7b05..24469544 100644 --- a/fml/doc/ja/tutorial/command/extension.sgml +++ b/fml/doc/ja/tutorial/command/extension.sgml @@ -1,5 +1,5 @@ <!-- - $FML: extension.sgml,v 1.13 2005/06/25 15:11:28 fukachan Exp $ + $FML: extension.sgml,v 1.14 2008/08/17 18:28:36 fukachan Exp $ --> @@ -18,25 +18,35 @@ <warning> <para> -このホスト上の「全ての ML で利用可能な」コマンドを作りたい場合は、 +「拡張した機能を許可する範囲」が制御できます。 +</para> + +<para> +このホスト上の「全てのMLで利用可能な」コマンドを作りたい場合は、 拡張したモジュールを <screen> /usr/local/lib/fml/site_local/ </screen> 以下に配置して下さい。 -一方、特定のMLだけを拡張する場合は、各MLのホーム以下の local/lib/ -以下において下さい。 +</para> + +<para> +一方、特定のMLだけで利用可能な機能拡張であれば、 +各MLのホーム以下の local/lib/ 以下において下さい。 <screen> MLのホーム/local/lib/ -例: +例: elena ( ML のホームが /var/spool/ml/elena/ ) /var/spool/ml/elena/local/lib/ </screen> </para> <!-- <para> -以下では、このホスト全ての ML で有効にする場合を考えます。 +以下では、すべてのMLで有効にする場合を考えます。 +</para> + +<para> もちろん、どちらのケースでもモジュールの書き方は一緒です。 </para> --> @@ -51,25 +61,31 @@ <para> ユーザ向けのコマンド uja を作りたい場合、 -FML::Command::User 以下のモジュールから適当に cut and paste して +(1) +FML::Command::User 以下のモジュールから適当にコピー&ペーストして <screen> /usr/local/lib/fml/site_local/FML/Command/User/uja.pm </screen> -というファイルを作り、設定ファイルで -uja を許可するコマンドリストに追加して下さい。 +というファイルを作ってください。 +(2) 次に、設定ファイルで uja を許可してください。 +</para> -全ての ML で有効にする場合は、site_default_config.cf で、 -許可するコマンドリストに追加してください。 +<para> +すべてのMLで有効にする場合は、site_default_config.cf で、 +「許可するコマンドのリスト」に追加してください。 <screen> user_command_mail_allowed_commands += uja </screen> +user_command_mail_allowed_commands 変数は、 +一般ユーザに許すコマンドのリスト一覧です。 +</para> -elena ML だけで有効にする場合は、elena ML の config.cf で、 +<para> +elena MLだけで有効にする場合は、elena MLの config.cf で、 許可するコマンドリストに追加してください。 <screen> user_command_mail_allowed_commands += uja </screen> - </para> </sect2> @@ -81,23 +97,26 @@ user_command_mail_allowed_commands += uja </title> <para> -admin 向けのコマンド uja を作りたい場合、 -FML::Command::Admin 以下から適当に cut and paste して +管理者向けのコマンド(admin コマンド)の uja を作りたい場合、 +FML::Command::Admin 以下から適当にコピー&ペーストして <screen> /usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm </screen> というファイルをつくってください。 +</para> - -全ての ML で有効にする場合は、site_default_config.cf で、 +<para> +すべてのMLでコマンドを有効にする場合は、site_default_config.cf で、 許可するコマンドリストに追加してください。 <screen> admin_command_mail_allowed_commands += uja </screen> +admin_command_mail_allowed_commands 変数は +管理者に許すコマンドのリスト一覧です。 </para> <para> -elena ML だけで有効にする場合は、elena ML の config.cf で、 +elena MLだけで有効にする場合は、elena MLの config.cf で、 許可するコマンドリストに追加してください。 <screen> admin_command_mail_allowed_commands += uja @@ -134,20 +153,28 @@ admin_command_mail_allowed_commands += uja </para> <para> -以下では、このホスト全ての ML で有効にする場合を考えます。 +以下では、すべてのMLで有効にする場合を考えます。 </para> </warning> <para> -makefml でコマンド uja を作いたい場合、 -FML::Command::Admin 以下から適当に cut and paste して +makefml でコマンド uja を作りたい場合、 +FML::Command::Admin 以下から適当にコピー&ペーストして <screen> /usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm </screen> というファイルをつくるだけで有効になります -つまりモジュールを置くだけで有効になります。 -*_allowed_commands 系の変数の設定変更は不要です。 +</para> + +<para> +makefml では「モジュールを置くだけで有効」になります。 +許されるコマンド一覧 *_allowed_commands 系の変数設定変更は不要です。 +</para> + +<para> +makefml を利用できる時点で、そのMLサーバの特権権限を奪取できているわ +けですから、それ以上複雑な制限をつけても使いにくいだけでしょうから。 </para> @@ -164,17 +191,20 @@ FML::Command::Admin 以下から適当に cut and paste して <warning> <para> -以下の記述で利用可能な機能を追加することが出来ますが、 -別途、画面の作り込みが必要です。 +以下の記述で「利用可能な機能の追加」が出来ますが、 +それとは別に CGI 画面の作り込みは必要です。 </para> <para> -このホスト全ての ML で有効にする場合、 +このホスト上のすべてのMLで有効にする場合、 拡張するモジュールを <screen> /usr/local/lib/fml/site_local/ </screen> 以下に配置して下さい。 +</para> + +<para> 一方、特定のMLだけを拡張する場合は、各MLのホーム以下の local/lib/ 以下において下さい。 <screen> @@ -186,30 +216,37 @@ FML::Command::Admin 以下から適当に cut and paste して </para> <para> -以下では、このホスト全ての ML で有効にする場合を考えます。 +以下では、すべてのMLで有効にする場合を考えます。 </para> </warning> +<para> +CGI での拡張は、一般ユーザ向けということは少なく、 +たいていは管理者向けのものと考えます。 +よって、以下、管理者向け機能拡張のみを取り上げます。 +</para> <para> -admin 向けのコマンド uja を作りたい場合、 -FML::Command 以下から適当に cut and paste して +管理者向けのコマンド uja を作りたい場合、 +FML::Command 以下から適当にコピー&ペーストして <screen> /usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm </screen> -というファイルを置いてください。 +というファイルを作ってください。 </para> <para> -全ての ML で有効にする場合は、site_default_config.cf で、 +すべてのMLで uja コマンドを有効にしたい場合、site_default_config.cf で、 許可するコマンドリストに追加してください。 <screen> admin_cgi_allowed_commands += uja </screen> +admin_cgi_allowed_commands 変数は管理者用 CGI インターフェイスで許可す +るコマンドの一覧です。 </para> <para> -elena ML だけで有効にする場合は、elena ML の config.cf で、 +elena MLだけで有効にする場合は、elena MLの config.cf で、 許可するコマンドリストに追加してください。 <screen> admin_cgi_allowed_commands += uja diff --git a/fml/doc/ja/tutorial/command/internal.sgml b/fml/doc/ja/tutorial/command/internal.sgml index da15a09a..7a0e8cb5 100644 --- a/fml/doc/ja/tutorial/command/internal.sgml +++ b/fml/doc/ja/tutorial/command/internal.sgml @@ -1,5 +1,5 @@ <!-- - $FML: internal.sgml,v 1.12 2005/08/03 13:44:54 fukachan Exp $ + $FML: internal.sgml,v 1.13 2008/08/17 18:28:36 fukachan Exp $ --> @@ -43,10 +43,10 @@ FML::Process::Command クラスから <warning> <para> -全てのコマンドは FML::Command::User::コマンドもしくは -FML::Command::Admin::コマンドクラスとして実装されています。なお -makefml や CGI は FML::Command::Admin::コマンド を使います。コマンドメー -ルは User や Admin を権限に応じて適宜使い分けます。 +全てのコマンドは「FML::Command::User::コマンド」クラスもしくは +「FML::Command::Admin::コマンド」クラスとして実装されています。なお +makefml は「FML::Command::Admin::コマンド」を使います。 +コマンドメールや CGI は User や Admin を権限に応じて適宜使い分けます。 </para> </warning> @@ -56,7 +56,7 @@ help コマンドの実体は FML::Command::User::help の process() 関数です。 sub process { my ($self, $curproc, $optargs) = @_; - my $config = $curproc->{ config }; + my $config = $curproc->config(); my $charset = $config->{ report_mail_charset_ja }; my $help_file = $config->{ help_file }; @@ -80,27 +80,29 @@ sub process } } </screen> -ここで $curproc はハッシュリファレンスで、&fml4; の %Envelope に概ね相 -当します。名前の通り、Unix カーネルでおなじみの current process 構造体 -へのポインタのようなもので、プロセスに関連するいろいろなデータ構造やオ -ブジェクトへのリファレンスを含んでいます。 +ここで $curproc はハッシュリファレンスで、&fml4; の %Envelope におおむ +ね相当します。名前の通り、Unix カーネルでおなじみの current process 構 +造体へのポインタのようなもので、プロセスに関連するいろいろなデータ構造 +やオブジェクトへのリファレンスを含んでいます。 </para> <para> -変数ですが、&fml4; では全てグローバルです。一方 &fml8; では $config オ -ブジェクトを通じてアクセスできる設定変数空間の中にあります。 +&fml4; の変数は、すべてグローバル変数です。一方 &fml8; では $config オ +ブジェクトを通じてアクセスできる設定変数空間の中にあります。常に +$config オブジェクトを通じて読み書きをしてください。 </para> <para> -reply_message_prepare_template() はメッセージテンプレートの中にある変 -数の展開や文字コード変換を適宜行ない、準備したテンプレートへのファイル -パスを返します。 +reply_message_prepare_template() メソッドは送り返すメッセージのテンプ +レート中にある変数の展開や文字コード変換を行ない、生成されたテンプレー +トへのファイルパスを返します(テンプレートファイルは $tmp_dir ディレク +トリに作られます)。 </para> <para> 首尾良くテンプレートファイルを用意できたら、 $curproc->reply_message() というプロセス全体のメッセージ処理を行なう関 -数群ののトップレベルメソッドを呼び出し、メッセージの処理を依頼します。 +数群のトップレベルメソッドを呼び出し、メッセージの返送処理を依頼します。 </para> <para> @@ -109,6 +111,11 @@ $curproc->reply_message() は引数によって振舞いがことなりますが、 </para> <para> +コマンドモジュールでの処理は、キューに入れたところで終りとなります。 +以下の返送処理は、どんな時でも行なわれる通常のフローの一部です。 +</para> + +<para> メッセージキューに入れられたメッセージ群は、プロセスの終了直前に受信者 ごとにメッセージがまとめられ一通のメールとして組み立てなおされます。 メッセージキューの種類がファイルとメッセージが混在している場合は適宜 @@ -123,16 +130,16 @@ Mail::Delivery クラスが送信処理を担当するモジュールです。 </para> <para> -この仕組みは &fml4; の Notify() と同様ですが、あらゆるメッセージがキュー -に入れられ、最後に一気に処理されるという点で大きく異なります。 +この返送の大筋は &fml4; の Notify() と同様ですが、あらゆるメッセージが +一度キューに入れられ、最後に一気に処理されるという点で大きく異なります。 </para> <para> なお get コマンドなども同じキューイングの仕組みを使っています。つまり &fml4; の Notify() 相当部分が(通常の記事配送以外の)あらゆる送信機能を -担当し、かつキューイングのみをしています。そしてキューイングされたメッ -セージは最後に一気に処理されます。この点において、送信のキューイングの -メカニズムは &fml4; と大きく異なっています。 +担当し、かつキューイングのみをします。そしてキューイングされたメッセー +ジは最後に一気に処理されます。この点において、送信のキューイングのメカ +ニズムが &fml4; と大きく異なっているわけです。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/command/module.sgml b/fml/doc/ja/tutorial/command/module.sgml index 0d34d49f..a3de06ac 100644 --- a/fml/doc/ja/tutorial/command/module.sgml +++ b/fml/doc/ja/tutorial/command/module.sgml @@ -1,5 +1,5 @@ <!-- - $FML: module.sgml,v 1.5 2004/04/07 11:07:00 fukachan Exp $ + $FML: module.sgml,v 1.6 2008/08/17 18:28:36 fukachan Exp $ --> @@ -25,9 +25,10 @@ FML::Command::Admin 管理者用コマンド群 例えば、(コマンドメールでの)ユーザ用コマンドの場合 FML::Command を経由して FML::Command::User::コマンド -モジュールを使うことになります。 +モジュールを呼び出しています。 </para> + <sect2> <title> (コマンドメールでの)一般ユーザ用コマンド @@ -36,33 +37,34 @@ FML::Command::User::コマンド <para> FML::Process::Command から FML::Command 経由で -FML::Command::User::コマンド +「FML::Command::User::コマンド」 を呼び出しています。 </para> <para> 最終的に -FML::Command::Admin::コマンド +「FML::Command::Admin::コマンド」 を使うモジュールもあります。 -例えば登録と削除の実作業は -FML::Command::Admin::コマンド -内のコードが行なっています。 -登録/削除の実体のコードをすべてのプログラムで共有するためです。 +たとえば登録と削除の実作業は +「FML::Command::Admin::コマンド」 +にあるコードが行なっています。 +すべてのプログラムで登録/削除作業の実体部分を共有するためです。 この場合、 -FML::Command::User::コマンド -のコマンドは confirm を行なうための wrapper という位置付けになります。 +「FML::Command::User::コマンド」は +confirm を行なうための wrapper という位置付けになります。 </para> </sect2> + <sect2> <title> - (メールでの) adminコマンド + (コマンドメールでの) 管理者用コマンド (admin コマンド) </title> <para> FML::Process::Command から FML::Command 経由で -FML::Command::Admin::コマンド +「FML::Command::Admin::コマンド」 を呼び出しています。 </para> @@ -71,13 +73,20 @@ FML::Command::Admin::コマンド <sect2> <title> - makefml のコマンド + makefml </title> +<warning> +<para> +makefml を実行できる時点で、 +サーバにログインできる管理者権限があるとみなされています。 +</para> +</warning> + <para> FML::Process::Configure から FML::Command 経由で -FML::Command::Admin::コマンド +「FML::Command::Admin::コマンド」 を呼び出しています。 </para> @@ -89,11 +98,30 @@ FML::Command::Admin::コマンド CGI </title> +<warning> +<para> +CGI も一般ユーザむけの CGI と管理者用の CGI があります。 +</para> <para> +管理者用の CGI については、それを実行できる時点で、 +管理者権限があるとみなされています。 +</para> +</warning> + +<para> +アドレス登録/削除などのためにある一般ユーザ用の CGI は、 FML::Process::CGI から FML::Command 経由で -FML::Command::Admin::コマンド +「FML::Command::User::コマンド」 +を呼び出しています。 +コマンドメールと同様に confirm のための wrapper という位置付けです。 +</para> + +<para> +管理者用の CGI は、FML::Process::CGI から +FML::Command 経由で +「FML::Command::Admin::コマンド」 を呼び出しています。 </para> diff --git a/fml/doc/ja/tutorial/customize/autoreply.sgml b/fml/doc/ja/tutorial/customize/autoreply.sgml index 2a7d9d40..dbaa84dc 100644 --- a/fml/doc/ja/tutorial/customize/autoreply.sgml +++ b/fml/doc/ja/tutorial/customize/autoreply.sgml @@ -1,5 +1,5 @@ <!-- - $FML: autoreply.sgml,v 1.6 2005/11/30 21:58:04 fukachan Exp $ + $FML: autoreply.sgml,v 1.7 2008/08/18 02:23:59 fukachan Exp $ --> @@ -9,9 +9,9 @@ </title> <para> -配送プロセス( libexec/distribute )を改造して -/some/where/help ファイルを送り返すことを考えます。 -例えば help@fml.org MLを作り、このアドレスにメールを送ると +配送プロセス( /usr/local/libexec/fml/distribute )を改造し、 +どんなときでも /some/where/help ファイルを送り返すことを考えます。 +たとえば help@fml.org MLを作り、このアドレスにメールを送ると (うむをいわさず:-)ヘルプファイルを送り返すというものです。 </para> @@ -46,9 +46,9 @@ $curproc->stop_this_process(); </para> <para> -ただ、身のある処理は何も実行されませんが、 +正確には「身のある処理は何も実行されません」が、 reply_message() メソッドでメッセージキューに入れられたメッセージを -送信する処理は行なわれるので、メッセージの送信が行なわれます。 +送信する処理は行なわれるので、メッセージの送信は行なわれます。 </para> diff --git a/fml/doc/ja/tutorial/customize/case_studies.sgml b/fml/doc/ja/tutorial/customize/case_studies.sgml index 62099fbd..1c62f93b 100644 --- a/fml/doc/ja/tutorial/customize/case_studies.sgml +++ b/fml/doc/ja/tutorial/customize/case_studies.sgml @@ -1,5 +1,5 @@ <!-- - $FML: case_studies.sgml,v 1.11 2005/12/07 11:50:57 fukachan Exp $ + $FML: case_studies.sgml,v 1.12 2008/08/18 02:23:59 fukachan Exp $ --> @@ -10,11 +10,12 @@ <para> 以下の設定を /usr/local/etc/fml/site_default_config.cf に書き、全ML -に反映させてください。 +に反映させてください。このファイルに設定を書けば、今あるMLも今後作る +すべてのMLも同じ仕様になります。 </para> <para> -ヘッダ関連では、まず Subject: にタグをつけない +ヘッダ関連では、まず「Subject: にタグをつけない」 <footnote> <para> なお、この設定はデフォルトの site_default_config.cf に仕込まれています。 @@ -29,7 +30,7 @@ article_header_rewrite_rules -= rewrite_article_subject_tag </para> <para> -そして、X-ML-Name: 部分の mlname にオフィス名をつける(prepend する)、 +そして「X-ML-Name: 部分の mlname にオフィス名をつける(prepend する)」 つまり mlname から office#mlname へ変更するようにします。 <screen> outgoing_mail_header_x_ml_name = office#$ml_name @@ -37,18 +38,23 @@ outgoing_mail_header_x_ml_name = office#$ml_name </para> <para> -記事は誰でも投稿可能としましょう。 +仕事用ですから、記事は「誰でも投稿可能」としましょう。 <screen> article_post_restrictions = permit_anyone </screen> この例では root さんからのシステムメールなども許していることに注意して -ください( root などは弾きたい場合 reject_system_accounts permit_anyone -です)。 +ください(root などシステムからのメールを弾きたい場合は +reject_system_accounts permit_anyone です)。 </para> <para> -そして、社内用途のMLなので、フィルタの多くは使えません。 -使うと問題だらけのようです;) +そして、「社内用途のMLなのでフィルタの多くは不要」です。 +正確には「フィルタを使うと問題だらけ」になります;) +<screen> +use_article_filter = no +</screen> +として、全てのフィルタを切ってしまうのが良いでしょう。 +個別にフィルタを抑制するには、次のように個別に no を設定してください。 <screen> use_article_body_filter = no use_article_non_mime_filter = no @@ -58,9 +64,10 @@ use_article_text_plain_filter = no </para> <para> -記事のスプールですが、長期的な展望を踏まえるなら、仕事のメールは数が多 -いので、数万通単位で記事を保存すると思います。よって、記事のスプールは -subdir 形式としました。 +記事のスプールを考えます。 +仕事のメールは数が多いので、長期的な展望をふまえるなら、 +数万通単位で記事を保存するという仮定が必要です。 +よって、記事のスプールは subdir 形式としました。 <screen> spool_type = subdir </screen> @@ -88,11 +95,12 @@ use_command_mail_function = no <para> 以下の設定を /usr/local/etc/fml/site_default_config.cf に書き、全ML -に反映させてください。 +に反映させてください。このファイルに設定を書けば、今あるMLも今後作る +すべてのMLも同じ仕様になります。 </para> <para> -まず、記事の subject にはML名を大文字にしたタグをつけます。 +まず「記事の subject にはML名を大文字にしたタグ」をつけます。 <screen> article_subject_tag = (\U$ml_name\E %05d) </screen> @@ -101,12 +109,14 @@ support@example.co.jp MLでは <screen> Subject: (SUPPORT 10000) </screen> -などとするわけです。 +とするわけです。 +( や [ が多いですが、特殊文字は好きなものを使ってかまいません +(正規表現ですので、適当なエスケープは必要です)。 </para> <para> そして、過去記事を参照させるために、コマンドメールの使用を許します。 -ただし、自ドメイン(例: example.co.jp )からのリクエストに対してのみ、 +ただし、自ドメイン( 例: example.co.jp )からのリクエストに対してのみ、 コマンドメールの使用を許すこととします。 これは、HOOK で実現します。 <screen> diff --git a/fml/doc/ja/tutorial/customize/chapter.command.sgml b/fml/doc/ja/tutorial/customize/chapter.command.sgml index 5d5b89a9..d0a8ebf2 100644 --- a/fml/doc/ja/tutorial/customize/chapter.command.sgml +++ b/fml/doc/ja/tutorial/customize/chapter.command.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.command.sgml,v 1.6 2006/01/19 10:14:04 fukachan Exp $ + $FML: chapter.command.sgml,v 1.7 2008/08/18 02:23:59 fukachan Exp $ --> @@ -20,10 +20,18 @@ elena MLに独自の help コマンドを作ることを考えます。 <para> 独自の help コマンドは、独自のモジュール help.pm を用意して、MLロー -カルのライブラリパスへおくだけでOKです。オリジナルの help.pm を参考に -して、独自の help.pm を作り、以下のパスにおいてください。 +カルのライブラリパスへおくだけで OK です。 +同じ名前のモジュール(つまり同じコマンド)でも、 +サーチパスの優先順位にしたがって、この独自モジュールのほうが使われます。 +</para> + +<para> +モジュールは、オリジナルの help.pm を参考にして、 +独自の help.pm を作りってください。 +そして、以下のパスにおいてください。 <screen> -例: +例: elena MLの場合 + /var/spool/ml/elena/local/lib/FML/Command/User/help.pm </screen> モジュールをロードする際には、 @@ -33,7 +41,7 @@ help コマンドの応答には、このモジュール help.pm が使われます。 <caution> <para> -他のファイルからカット&ペーストする時は、 +他のファイルからカット&ペーストする際には、 package の名前空間に気をつけてください。 </para> </caution> diff --git a/fml/doc/ja/tutorial/customize/chapter.message.sgml b/fml/doc/ja/tutorial/customize/chapter.message.sgml index c357e4b2..4d2c97dd 100644 --- a/fml/doc/ja/tutorial/customize/chapter.message.sgml +++ b/fml/doc/ja/tutorial/customize/chapter.message.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.message.sgml,v 1.3 2004/10/06 09:07:34 fukachan Exp $ + $FML: chapter.message.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $ --> @@ -20,7 +20,11 @@ elena ML (ML のホームが /var/spool/ml/elena)の場合、 /var/spool/ml/elena/local/share/message/euc-jp/クラス </screen> にファイルをつくって下さい。 -そのファイルフォーマットは /usr/local/fml/share/fml/ の下を参考に、 +</para> + +<para> +これが、メッセージのテンプレートです。 +ファイルフォーマットは /usr/local/fml/share/fml/ の下を参考に、 コピー&ペーストして編集してください。 </para> @@ -30,7 +34,11 @@ elena ML (ML のホームが /var/spool/ml/elena)の場合、 渡します。 そして、メッセージ内では「$_arg_変数名」という特殊な変数名を使い、 それを渡されたハッシュの値で置換したものが送り返されるメッセージです。 -なお config.cf に書く変数(e.g. $ml_name )は全て使えます。 +</para> + +<para> +なおテンプレート中では、 +config.cf で利用できる全変数(e.g. $ml_name )が使えます。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/customize/chapter.www.sgml b/fml/doc/ja/tutorial/customize/chapter.www.sgml index 5563095f..1d27529b 100644 --- a/fml/doc/ja/tutorial/customize/chapter.www.sgml +++ b/fml/doc/ja/tutorial/customize/chapter.www.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.www.sgml,v 1.1 2006/01/19 10:18:41 fukachan Exp $ + $FML: chapter.www.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> @@ -9,7 +9,7 @@ </title> <para> -デフォルトで &fml8; は +デフォルトで &fml8; はユーザ fml の個人領域 <screen> ~fml/public_html/fml/mlarchive/ドメイン名/ML名/ </screen> diff --git a/fml/doc/ja/tutorial/customize/command_check_pgp_signature.sgml b/fml/doc/ja/tutorial/customize/command_check_pgp_signature.sgml index b3f4aa5c..269fda04 100644 --- a/fml/doc/ja/tutorial/customize/command_check_pgp_signature.sgml +++ b/fml/doc/ja/tutorial/customize/command_check_pgp_signature.sgml @@ -1,5 +1,5 @@ <!-- - $FML: command_check_pgp_signature.sgml,v 1.1 2005/12/15 03:07:25 fukachan Exp $ + $FML: command_check_pgp_signature.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> @@ -37,11 +37,10 @@ fmlgpg fmlgpgv fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv % fmlpgp --command-mail-auth ML名 -kg </screen> -また <link linkend="config.post.check.pgp"> <xref linkend="config.post.check.pgp"> </link> -を参考にしてみて下さい。 +を参考にして下さい。 </para> </answer> @@ -75,11 +74,10 @@ fmlgpg fmlgpgv fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv % fmlpgp --admin-command-mail-auth ML名 -kg </screen> -また <link linkend="config.post.check.pgp"> <xref linkend="config.post.check.pgp"> </link> -を参考にしてみて下さい。 +を参考にして下さい。 </para> </answer> diff --git a/fml/doc/ja/tutorial/customize/command_permit_anyone.sgml b/fml/doc/ja/tutorial/customize/command_permit_anyone.sgml index 1db758b7..f17c3245 100644 --- a/fml/doc/ja/tutorial/customize/command_permit_anyone.sgml +++ b/fml/doc/ja/tutorial/customize/command_permit_anyone.sgml @@ -1,5 +1,5 @@ <!-- - $FML: command_permit_anyone.sgml,v 1.5 2005/12/14 12:39:16 fukachan Exp $ + $FML: command_permit_anyone.sgml,v 1.6 2008/08/18 02:23:59 fukachan Exp $ --> @@ -62,10 +62,9 @@ command_mail_restrictions = permit_anyone <screen> command_mail_restrictions = isolate_system_accounts permit_anyone - -注: 以前は reject_system_accounts でした。 -fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 </screen> +注: 以前は reject_system_accounts でした。 +&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 </para> </answer> @@ -84,10 +83,9 @@ fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 <para> <screen> command_mail_restrictions = isolate - -注: 以前は reject でした。 -fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 </screen> +注: 以前は reject でした。 +&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 </para> <para> diff --git a/fml/doc/ja/tutorial/customize/command_rejectall.sgml b/fml/doc/ja/tutorial/customize/command_rejectall.sgml index ae25f40c..1e214759 100644 --- a/fml/doc/ja/tutorial/customize/command_rejectall.sgml +++ b/fml/doc/ja/tutorial/customize/command_rejectall.sgml @@ -1,5 +1,5 @@ <!-- - $FML: command_rejectall.sgml,v 1.6 2005/06/25 15:11:29 fukachan Exp $ + $FML: command_rejectall.sgml,v 1.7 2008/08/18 02:23:59 fukachan Exp $ --> @@ -22,7 +22,7 @@ use_command_mail_function = no </para> <para> -プロセスが動いてしまうのですが、別解として次のやり方もありでしょう。 +プロセスが動いてしまうのですが、別解として次のやり方もアリでしょう。 <screen> use_command_mail_function = yes @@ -33,16 +33,17 @@ command_mail_restrictions = reject </para> <para> -この設定の問題点は「各行を評価してしまう」つまり無駄ということです。 +この設定の問題点は「各行を評価してしまう」つまり無駄な動作をしてしまう、 +ということです。 </para> <para> 注: この解答は「コマンドメールが使えないことを教えてあげる」ことを想定して います。社内MLなどでは、これで問題ないと思いますが、一般のMLでは、 -SPAM がほとんど全部なので、親切がアダになります。 +SPAM メールに対して応答してしまうため親切がアダになります。 そこで、 -fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)命令が推奨です。 +&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)命令が推奨です。 <screen> use_command_mail_function = yes diff --git a/fml/doc/ja/tutorial/customize/mailmagazine.sgml b/fml/doc/ja/tutorial/customize/mailmagazine.sgml index 77fe6387..e8942622 100644 --- a/fml/doc/ja/tutorial/customize/mailmagazine.sgml +++ b/fml/doc/ja/tutorial/customize/mailmagazine.sgml @@ -1,5 +1,5 @@ <!-- - $FML: mailmagazine.sgml,v 1.8 2005/08/03 13:45:11 fukachan Exp $ + $FML: mailmagazine.sgml,v 1.9 2008/08/18 02:23:59 fukachan Exp $ --> @@ -25,8 +25,8 @@ fml8 単体で処理できる <link linkend="config.post.check.pgp"> PGP 認証 </link> -のほうがよい気がしますが、 -メールマガジンの担当者が PGP/GPG を使える必要があります。 +が理想ですが、この場合、 +メールマガジンの担当者に PGP/GPG を使える技術力が要求されます。 ここが PGP 話のネックです。 </para> @@ -34,49 +34,81 @@ PGP 認証 <para> -メールマガジンは投稿可能なメンバーリストをカスタマイズすることで行なえ -ます。 +メールマガジンは +「投稿可能なメンバーリストをカスタマイズ」することで行なえます。 </para> <para> -member_maps から $primary_member_map を抜き、 +$member_maps から $primary_member_map を抜き、 代わりに投稿可能なメンバーのリスト(ここでは -$ml_home_dir/members-mailmag としましょう)を -member_maps を追加します。 +$ml_home_dir/members-mailmag ファイルとしましょう)を +$member_maps に追加します。 <screen> member_maps = $ml_home_dir/members-mailmag </screen> +このファイルに、メールマガジンの投稿者のアドレスを書いて下さい。 </para> <para> -なお subscribe コマンドの利用方法はデフォルトのままで構いません。 +なお subscribe コマンドの利用方法はデフォルトのままでかまいません。 <footnote> <para> -fml 4.0 のように subscribe コマンドの仕方を変更するといったやり方 -ではありません。 -メンバーの認証方法を config.cf できめ細かくコントロールできるので、 -それを使う方が、subscribe コマンドを変更するより簡単ですしね。 +fml 4.0 のように +subscribe コマンドの仕方を変更するといったやり方で実装していません。 +メンバーの認証方法を config.cf で細かくコントロールできるので、 +それを使う方法が subscribe コマンドを変更するより簡単です。 </para> </footnote> -というのは subscribe や unsubscribe は primary_member_map や -primary_recipient_map に対する変更を加えるものだからです。一方、メンバー -認証時の探索には member_maps や recipient_maps を使うのです。よって、こ -れらの値をうまく設定すれば、こういった動作が可能というわけです。 +というのは subscribe や unsubscribe コマンドは「 $primary_member_map +や$primary_recipient_map に対する変更を加える」という仕様だからです。 +一方、メンバー認証時の探索には member_maps や recipient_maps を使うの +です。なお、それぞれのデフォルト値は次のようになっています。 +<screen> +member_maps = $primary_member_map + $admin_member_maps + +recipient_maps = $primary_recipient_map + file:$ml_home_dir/actives +</screen> +$recipient_maps に actives ファイルが入っているのは互換性のためです( +&fml8; では、actives ファイルを使いませんが、&fml4; のディレクトリ構造 +そのままでも動作するようにするための互換性です)。 +よって、これらの値をうまく設定すれば、 +こういった設定が容易という具合になっているわけです。 +</para> + +<para> +さて、上述の +<screen> +member_maps = $ml_home_dir/members-mailmag +</screen> +という設定をした場合、動作は次のようになります。 +</para> + +<para> +ユーザが subscribe すると、そのアドレスは +recipients ファイル($primary_recipient_map) +と +members ファイル($primary_member_map)に追加されていきます。 +認証は members-mailmag にたいして行なわれるので、 +members ファイルは認証時の探索に使われません。 +そのため、一般ユーザは投稿できません。 +投稿可能なユーザは members-mailmag ファイルにあるアドレスのユーザだけです。 </para> <para> -この場合 subscribe したアドレスが members というファイル -(primary_member_map)に追加されていきますが、このファイルは認証時の探索 -に使われない設定なので良いわけです。気にはなるかも知れませんが… +一方、配送は recipients ファイル($primary_recipient_map)を元に、 +subscribe したユーザ宛にたいして行なわれます。 +ここの部分は普通のMLと一緒です。 </para> <para> -別解としては、逆に +別解としては、逆の方法も可能です。 <screen> primary_member_map = $tmp_dir/members-dummy </screen> -などとメンバーリストの新規分追加先を変更して闇に葬り、 -membersには投稿可能なアドレスだけを書くというやり方もあります。 +などと設定し、メンバーリストの新規分追加先を変更して闇に葬る案です。 +members には投稿可能なアドレスだけを書きます。 このほうが &fml4; 風で分かりやすいでしょうか。 </para> @@ -91,13 +123,15 @@ membersには投稿可能なアドレスだけを書くというやり方もあります。 <para> 2004/06 後半以降: キューイングシステムの改変により、「わざとエラーにし てメールキューに落し、メールの中身を確認してから flush する(配送する)」 -なんて技もできるようになりました。 +技が可能になりました。 </para> <para> -これにより、まず一度送信し、キューに入れ、キューの中身を確認したのちに -配送をはじめることが出来ます。つまり間違った内容のメールを出す可能性が -低くなりえます。 +これにより、 +(1) まず一度送信してキューに入れ、 +(2) キューの中身を確認したのちに配送をはじめる、 +ことが出来ます。 +つまり間違った内容のメールを出す可能性が非常に低くなり得ます。 </para> <para> @@ -114,8 +148,7 @@ smtp_servers = 無意味なトランスポート smtp_servers = 127.0.0.1:2025 </screen> こうしておくと、 -記事を投稿したさいには配送エラーになり、 -fml8 のメールキューに落ちます。 +記事を投稿したさいには配送エラーになり、&fml8; のメールキューに落ちます。 </para> <para> @@ -134,8 +167,9 @@ flushq が打ちづらいので flush コマンドも作ってみました。 </para> <para> -いちいち、これを打ち込むのは面倒なので、シェルスクリプトを作っておくと -良いでしょう。 +もっとも、毎回、いちいち、 +これらのコマンド群を打ち込むのは面倒なので、 +シェルスクリプトを作っておくと良いでしょう。 </para> <para> @@ -148,9 +182,9 @@ OK なら、そのシェルスクリプトを CGI で実行可能にしておくという方法も </para> <para> -さらに、OK を出すのが、送信者と異なる人にしておけば、より優れたメール -マガジンの運用になります。というのは、送信者が自分で自分に OK を出すと、 -検査が甘くなるからです。 +さらに「配送 OK 」を出すのが「送信者と異なる人」にしておけば、より優れ +たメールマガジンの運用になります。というのは、送信者が自分で自分に OK +を出すと、検査が甘くなるからです。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/customize/ml.hier.sgml b/fml/doc/ja/tutorial/customize/ml.hier.sgml index 09930f65..f6c25bfd 100644 --- a/fml/doc/ja/tutorial/customize/ml.hier.sgml +++ b/fml/doc/ja/tutorial/customize/ml.hier.sgml @@ -1,5 +1,5 @@ <!-- - $FML: ml.hier.sgml,v 1.1 2006/01/21 10:40:04 fukachan Exp $ + $FML: ml.hier.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ 階層化されたML: $member_maps $recipient_maps をよろしく書く @@ -11,24 +11,26 @@ </title> <para> -メンバー制限をする普通の ML 群を考えます。 +メンバー制限をする普通のML群があたっとして、それらの階層化を考えます。 ( <ulink url="http://www.oreilly.co.jp/BOOK/fml/"> fml バイブル </ulink> -にあるように)例えば営業部に営業 1、 2、 3 課がある場合です。 +にあるように) +たとえば営業部に営業 1、 2、 3 課がある場合が、これに該当します。 </para> <para> -まず、それぞれの課用に sales-1、 sales-2、 sales-3 ML を作り、 - ML のメンバーはそれぞれの課で管理してもらうことにします。 -また別途、営業部全体の連絡用に sales ML も作り、 -sales ML へメールを送信すると、 -sales-1 sales-2 sales-3 のメンバーにも配送されます。 +まず、それぞれの課用に sales-1、 sales-2、 sales-3 MLを作り、 +各MLのメンバーは、それぞれの課で管理してもらうことにします。 +また別途、営業部全体の連絡用に sales MLも作り、 +sales MLへメールを送信すると、 +sales-1 sales-2 sales-3 のメンバーにも配送されるようにしましょう。 </para> <para> -配送先は sales MLの config.cf で +設定は簡単で、sales MLの配送先を増やすだけです。 +sales MLの config.cf で <screen> recipient_maps += $ml_home_dir/../sales-1/recipients recipient_maps += $ml_home_dir/../sales-2/recipients @@ -45,12 +47,15 @@ member_maps += $ml_home_dir/../sales-2/members member_maps += $ml_home_dir/../sales-3/members </screen> としてください。 -社内用の場合はか、member_maps を変更せずとも -誰でも投稿できるように +</para> + +<para> +社内用MLの場合は誰でも投稿できるように、 +$member_maps を変更するのではなく <screen> article_post_restrictions = permit_anyone </screen> -と設定してしまうのもアリでしょう。 +と設定して「誰でも投稿可能」としてしまうのもアリでしょう。 </para> <para> @@ -65,4 +70,8 @@ article_post_restrictions = permit_anyone さい。 </para> +<para> +ちなみに &fml8; は MySQL PostgreSQL LDAP との通信が可能です。 +</para> + </sect1> diff --git a/fml/doc/ja/tutorial/customize/post_check_article_thread.sgml b/fml/doc/ja/tutorial/customize/post_check_article_thread.sgml index 0451198f..095bdc0b 100644 --- a/fml/doc/ja/tutorial/customize/post_check_article_thread.sgml +++ b/fml/doc/ja/tutorial/customize/post_check_article_thread.sgml @@ -1,5 +1,5 @@ <!-- - $FML: post_check_article_thread.sgml,v 1.5 2005/12/14 12:43:52 fukachan Exp $ + $FML: post_check_article_thread.sgml,v 1.6 2008/08/18 02:23:59 fukachan Exp $ --> @@ -60,12 +60,13 @@ article_post_restrictions = reject_system_special_accounts permit_member_maps reject </screen> -もちろんデフォルトでは使いません。 -利用したい場合は、明示的に article_post_restrictions を変更して下さい。 +これをデフォルト設定にしておいたほうが便利な気もしますが、いまのところ、 +そういう設定になっていません。 +この機能を利用したい場合、明示的に article_post_restrictions を変更して下さい。 </para> <para> -注: fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 +注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 <screen> article_post_restrictions = isolate_system_special_accounts check_article_thread @@ -107,7 +108,7 @@ $article_post_article_thread_lifetime という変数で制御できるようにして スレッドの始まった時からN秒? それとも スレッドで最後に投稿された記事からN秒? -どちらが妥当だろうか? +どちらが妥当なのでしょうか? </para> <para> @@ -146,56 +147,65 @@ $article_post_article_thread_lifetime という変数で制御できるようにして <question> <para> -特定少数の人だけがスレッドをたてられるML +特定少数の人だけがスレッドをたてられるML。 </para> + </question> <answer> <para> +これ、モデレータシステムより便利だと思うのですが、どうでしょうか? +</para> + +<para> +たとえば次のような設定です。こうすると、疑似的に「スレッドをたてる小数 +の人(管理者) + スレッドへのリプライをする管理者以外の人たち」という運 +用になりますね。 +</para> + +<para> <screen> member_maps = $tmp_dir/members-thread-init article_post_restrictions = reject_system_special_accounts check_article_thread permit_member_maps - reject - -注: fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 + isolate </screen> -などと設定すると、疑似的に「スレッドをたてる小数の人(管理者) + スレッ -ドへのリプライをする管理者以外の人たち」という運用になりますね。 +注: &fml8; 2008/08/17 以降のバージョンでは +reject ではなく isolate (SPAM の隔離)が推奨です。 </para> <para> まず members-thread-init に登録されている人だけは -いつでも投稿ができます。これ以外のメンバーは、通常は投稿を拒否されます。 -しかし、これらの投稿されたにリプライをすると check_article_thread により -投稿が許されるというわけです。 +「いつでも投稿」できます。これ以外のメンバーは、通常、投稿を拒否されます。 +しかし、投稿されたメールに返信をした場合にかぎり +check_article_thread 命令で投稿が許されるという仕組みです。 </para> <para> つまり、最初に管理者の人が話題をふる。その話題へのフォローだけはMLに -流れる。ようするに、新規の話題は管理者の人しかふれない。 -モデレータ風だけど、ちっと違う感じです。 +流れる。ようするに、管理者の人だけが「新規の話題を紹介する」ことが出来 +る仕組みです。モデレータ風だけど、少し違う仕掛けです。 </para> <para> -いや、このほうがモデレータより簡単で便利だと思うんですが、どうですかね? +このほうがモデレータより簡単で便利だと思うんですが、どうですかね? </para> <para> -また、ネタふりをする人の認証も PGP のほうがより良いでしょう。 +また、ネタふりをする人の認証も PGP を使うとより良いです。 <screen> member_maps = $tmp_dir/members-thread-init article_post_restrictions = reject_system_special_accounts check_article_thread check_pgp_signature - reject - -注: fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 + isolate </screen> +注: &fml8; 2008/08/17 以降のバージョンでは +reject より isolate (SPAM の隔離)が推奨です。 </para> </answer> diff --git a/fml/doc/ja/tutorial/customize/post_check_pgp_signature.sgml b/fml/doc/ja/tutorial/customize/post_check_pgp_signature.sgml index 839b1c24..6cc28074 100644 --- a/fml/doc/ja/tutorial/customize/post_check_pgp_signature.sgml +++ b/fml/doc/ja/tutorial/customize/post_check_pgp_signature.sgml @@ -1,5 +1,5 @@ <!-- - $FML: post_check_pgp_signature.sgml,v 1.3 2005/12/14 12:39:16 fukachan Exp $ + $FML: post_check_pgp_signature.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $ --> @@ -13,7 +13,8 @@ この機能を使うには Crypt::OpenPGP モジュールが必要です。 OS 附属のパッケージシステムなどでインストールして下さい。 このモジュールが依存しているモジュールがたくさんあるので、 -OS 附属のパッケージシステムを使えないとインストールは、かなり面倒です。 +OS 附属のパッケージシステムが使えないと、 +インストールは、かなり面倒です。 </para> </caution> @@ -35,19 +36,26 @@ PGP/GPG の電子署名で投稿制限をするML <para> 設定例は次のようになります。 -check_pgp_signature が、このオプションです。 -電子署名が正当なユーザだけが投稿を許されます。 +check_pgp_signature が、この PGP/GPG 認証オプション部分です。 +電子署名が正当なユーザだけに投稿が許されます。 <screen> article_post_restrictions = reject_system_special_accounts check_pgp_signature reject - -注: fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 </screen> もちろんデフォルトでは使いません。 利用したい場合は、明示的に article_post_restrictions を変更して下さい。 </para> +<para> +注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 +<screen> +article_post_restrictions = reject_system_special_accounts + check_pgp_signature + isolate +</screen> +</para> + </answer> </qandaentry> @@ -63,7 +71,8 @@ article_post_restrictions = reject_system_special_accounts </title> <para> -PGP のキーリングは、動作条件ごとに別々に用意されます。たとえば記事投稿 +PGP のキーリングは、 +動作条件ごとに別に保存するようになっています。たとえば記事投稿 用のキーは $ml_home_dir/etc/pgp-article-post-auth/ ディレクトリ以下に、 リモート管理用のキーは $ml_home_dir/etc/pgp-admin-command-mail-auth/ ディレクトリ以下に置くといった具合です。 @@ -72,7 +81,7 @@ PGP のキーリングは、動作条件ごとに別々に用意されます。たとえば記事投稿 <para> これらのキーは pgp2 pgp5 gpg コマンドで操作してください。ただ、デフォ ルトのディレクトリではないこと、モードごとに異なるディレクトリを使うた -め、fmlpgp などの wrapper を利用すると便利です。 +め、fmlpgp などのユーティリティプログラム( wrapper )を利用すると便利です。 <screen> 例: elena ML で記事投稿で使うキーの生成 @@ -86,7 +95,7 @@ fmlpgp elena --article-post-auth -kg --article-post-encrypt (記事を暗号化(未実装)) </screen> などと使用する条件を指定してください。 -それぞれの条件に対して異なるキーリングのディレクトリが用意されています。 +それぞれの条件に対して異なるキーリングのディレクトリが使われます。 </para> <para> @@ -94,12 +103,12 @@ fmlpgp elena --article-post-auth -kg </para> <para> -pgp2: +pgp2 用: fmlpgp </para> <para> -pgp5: +pgp5 用: fmlpgp5 fmlpgpe fmlpgpk @@ -108,7 +117,7 @@ fmlpgpv </para> <para> -gpg: +gpg 用: fmlgpg fmlgpgv </para> diff --git a/fml/doc/ja/tutorial/customize/post_permit_anyone.sgml b/fml/doc/ja/tutorial/customize/post_permit_anyone.sgml index 65148371..ebf7422d 100644 --- a/fml/doc/ja/tutorial/customize/post_permit_anyone.sgml +++ b/fml/doc/ja/tutorial/customize/post_permit_anyone.sgml @@ -1,5 +1,5 @@ <!-- - $FML: post_permit_anyone.sgml,v 1.9 2006/01/22 16:12:47 fukachan Exp $ + $FML: post_permit_anyone.sgml,v 1.10 2008/08/18 02:23:59 fukachan Exp $ --> @@ -9,31 +9,31 @@ </title> <para> -article_post_restrictions は記事の投稿を許すメンバーを定義しています。 -これを permit_anyone とすると、だれでも投稿可能になります。 +article_post_restrictions 変数は「記事の投稿を許すメンバー」を定義して +います。これを permit_anyone とすると、だれでも投稿可能になります。 <screen> article_post_restrictions = permit_anyone </screen> </para> <para> -&fml4; と異なり、上のように書くと本当に「誰でも投稿可能」であることに +&fml4; と異なり、上のように書くと本当に「誰でも投稿可能」となることに 注意して下さい。 -*_restrictions には reject_system_special_accounts という root などを -弾くルールが別途あります。デフォルトでは、それらを明示的に指定していま -す(&fml4; では、このあたり曖昧でした)。 +*_restrictions 変数には reject_system_special_accounts という root な +どを弾くルールが別途あります。デフォルトでは、それらを明示的に指定して +います(&fml4; では、このあたり曖昧でした)。 </para> <para> -&fml4; のように、rootなどシステムの特別なアカウントは弾き、それ以外の +&fml4; のように、root などシステムの特別なアカウントは弾き、それ以外の ユーザからのメールは受け付けるという場合、次のようにします。 <screen> article_post_restrictions = reject_system_special_accounts permit_anyone - -注: 以前は reject でした。 -fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 - +</screen> +注: 以前は reject でしたが、 +&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 +<screen> article_post_restrictions = isolate_system_special_accounts permit_anyone </screen> @@ -55,18 +55,18 @@ article_post_restrictions = reject_system_special_accounts </para> <para> -なお「rejectなになに」および「 permitなになに」という命令はマッチした -ところで処理が終りに、マッチしない場合は次の条件を試すことになっていま -す。 +なお「reject_なになに」および「permit_なになに」という命令は、マッチし +たところで処理が終りになります。マッチしない場合には次の条件を試します。 </para> <para> -2008/08/17 以降のバージョンでは SPAM を隔離するのがデフォルトです。 +2008/08/17 以降のバージョンでは SPAM を隔離するのがデフォルトです <screen> article_post_restrictions = isolate_system_special_accounts permit_member_maps isolate </screen> +注: reject ではなく isolate となっている。 </para> @@ -104,13 +104,13 @@ article_post_restrictions = reject_system_special_accounts member_maps = pcre:$ml_home_dir/sender.pcre [$ml_home_dir/domains] - \S+\@example.co.jp + +\S+\@example.co.jp </screen> </para> <para> -注: fml8 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 - +注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。 <screen> [/var/spool/ml/elena/config.cf] @@ -121,7 +121,8 @@ article_post_restrictions = isolate_system_special_accounts member_maps = pcre:$ml_home_dir/sender.pcre [$ml_home_dir/domains] - \S+\@example.co.jp + +\S+\@example.co.jp </screen> </para> diff --git a/fml/doc/ja/tutorial/customize/recipes.auth.sgml b/fml/doc/ja/tutorial/customize/recipes.auth.sgml index 68505ba9..7e1c111a 100644 --- a/fml/doc/ja/tutorial/customize/recipes.auth.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.auth.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.auth.sgml,v 1.1 2005/10/29 04:28:42 fukachan Exp $ + $FML: recipes.auth.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -18,7 +18,7 @@ デフォルトの From アドレス認証で ドメインの比較するレベルを変更したい場合は、 config.cf で -address_compare_function_domain_matching_level を設定して下さい。 +$address_compare_function_domain_matching_level を設定して下さい。 <footnote> <para> &fml4; の ADDRESS_CHECK_MAX に相当する変数です。 @@ -42,7 +42,7 @@ From アドレス認証以外に PGP/GPG 認証を使うことも出来ます。 <link linkend="config.post.check.pgp"> <xref linkend="config.post.check.pgp"> </link> -の節を見て下さい。 +の節を参照してください。 </para> </answer> @@ -79,7 +79,7 @@ use_address_compare_function = no <para> また、 各 restrictions で permit_anyone を指定すると、 -実質認証をしていないので「アドレス認証していない」設定になりますね。 +実質認証をしていないので「アドレス認証していない」設定になります。 </para> </answer> diff --git a/fml/doc/ja/tutorial/customize/recipes.autoreply.sgml b/fml/doc/ja/tutorial/customize/recipes.autoreply.sgml index ca30b44c..97916a01 100644 --- a/fml/doc/ja/tutorial/customize/recipes.autoreply.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.autoreply.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.autoreply.sgml,v 1.1 2005/11/30 21:58:04 fukachan Exp $ + $FML: recipes.autoreply.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -15,19 +15,26 @@ <answer> <para> -ガイドを送り返す仕組みを応用すると良いでしょう。デフォルトではテンプレー -トのガイド案内が使われますが、各MLのホームディレクトリに guide ファ -イルをおけばそれを送り返してくれます。 +コマンドメールで guide というコマンドを受けるとガイドを送り返します。 +この仕組みを応用すると良いでしょう。 </para> <para> -「メールの内容にかかわらず常にガイドを送り返す」には、もうひとひねり必 -要です。 +デフォルトではメッセージテンプレートのガイド案内が使われます。 +&fml4; のようにMLのホームに guide ファイルがあるわけではありません。 +もっとも &fml4; との互換性維持のために、 +各MLのホームディレクトリに guide ファイルをおけば、 +それを送り返してくれます。 +</para> + +<para> +「メールの内容にかかわらず常にガイドを送り返す」には、 +もうひとひねり必要です。 </para> <para> このためには次のように HOOK で常に guide コマンドを実行するようにする -とよいでしょう。なお通常の処理は行なわないようにしています。 +とよいでしょう。なお、この例では通常の処理は行なわないようにしています。 <screen> $distribute_run_start_hook = q{ @@ -48,9 +55,9 @@ $distribute_run_start_hook = q{ $command_mail_run_start_hook = $distribute_run_start_hook; </screen> -&fml4; と異なり、配送用とコマンドメール用それぞれのプロセスごとにHOOK +&fml4; と異なり、配送用とコマンドメール用それぞれのプロセスごとに HOOK が分かれていることに注意して下さい。このため最後に同じ内容のコマンドメー -ル用の HOOK も定義しています(コピーしています)。 +ル用の HOOK も定義する必要があります(コピーしてください)。 <screen> $command_mail_run_start_hook = $distribute_run_start_hook; </screen> @@ -72,20 +79,24 @@ $command_mail_run_start_hook = $distribute_run_start_hook; <answer> <para> +「意見受付」用のMLを考えてみましょう。 +</para> + +<para> 前レシピに似ていますが、少し違います。 </para> <para> -たとえば意見受付用のMLを考えてみましょう。 このMLに意見を送ってくれた人には、 とりあえずお礼の返事 「ご意見ありがとうございました。返事はしばらく待ってね。」を出し、 -メールは関係者に配送します。 +投稿されたメールを関係者に配送します。 よって、 (1) だれでも投稿できて、 (2) お礼を常に出し、 (3) さらに普通のMLとして動作する、 ように設定します。 +(3) は「返事の前に、関係者が議論するため」の機能という想定です。 </para> <para> diff --git a/fml/doc/ja/tutorial/customize/recipes.body.sgml b/fml/doc/ja/tutorial/customize/recipes.body.sgml index de913375..846c05c6 100644 --- a/fml/doc/ja/tutorial/customize/recipes.body.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.body.sgml @@ -1,5 +1,5 @@ <!-- - $FML$ + $FML: recipes.body.sgml,v 1.1 2005/11/27 09:13:34 fukachan Exp $ --> <qandaset> @@ -8,19 +8,19 @@ <question> <para> -メールの本文に◯◯さんへと宛名文をいれたい +メールの本文に「◯◯さんへ」と宛名文をいれたい </para> </question> <answer> <para> -MLは一つの記事をMLの受信者全員に配送するサービスです。 +MLは「一つの記事をMLの受信者全員に配送」するサービスです。 </para> <para> MLドライバは一つの記事と受信者のリストを MTA に渡して配送を委ねます。 -そのため一つ一つの記事を異なるものにするということができません。 +そのため、一つ一つの記事を異なるものにするということができません。 </para> <para> @@ -34,7 +34,7 @@ </para> <para> -未実装 +未実装です。 </para> </answer> diff --git a/fml/doc/ja/tutorial/customize/recipes.command.admin.sgml b/fml/doc/ja/tutorial/customize/recipes.command.admin.sgml index a106aee0..b876edb7 100644 --- a/fml/doc/ja/tutorial/customize/recipes.command.admin.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.command.admin.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.command.admin.sgml,v 1.1 2006/01/19 10:14:04 fukachan Exp $ + $FML: recipes.command.admin.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -16,7 +16,7 @@ admin コマンドでMLの再初期化をしたい <answer> <para> そういう危ないことは出来ません。 -CUI を実行する権限のある人に頼んで下さい。 +makefml (CUI) を実行する権限のある人に頼んで下さい。 </para> </answer> @@ -42,6 +42,10 @@ admin コマンドでMLのメンバーリストを一気に削除/登録 実装する気はあります。考え中です。 </para> +<para> +ようは「リスト.xls ファイルを、ぺしっとはるとかしたい」んですよね? +</para> + </answer> </qandaentry> @@ -83,7 +87,8 @@ FML::Restriction::Base をみてください。 </para> <para> -subscribe 可能な人を特定のドメインだけに限りたいといった機能は未実装です。 +subscribe 可能な人を特定のドメインだけに限りたいといった機能は未実装です( +いや HOOK を使えば出来ますけど)。 </para> </answer> diff --git a/fml/doc/ja/tutorial/customize/recipes.command.sgml b/fml/doc/ja/tutorial/customize/recipes.command.sgml index 69f16139..486775f6 100644 --- a/fml/doc/ja/tutorial/customize/recipes.command.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.command.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.command.sgml,v 1.1 2006/01/16 12:02:07 fukachan Exp $ + $FML: recipes.command.sgml,v 1.2 2008/08/18 02:23:59 fukachan Exp $ --> @@ -17,10 +17,6 @@ <answer> <para> コマンドメールの送信者(From:)へ返事を返すのがデフォルトの挙動です。 -<screen> - -</screen> - </para> </answer> @@ -94,12 +90,12 @@ help メッセージの元ファイルをカスタマイズする。 <para> なおMLのホームディレクトリに help ファイルがある場合は -それが help コマンドの返事に使われています。 +それが help コマンドの返事に使われています(優先されます)。 よって help ファイルを自分で用意しているなら 自分で編集してください。 この場合も、常にこのファイルが使われるので、 バージョンアップしても内容は変わりません。 -それが欠点です。 +逆に言えば、それが欠点です。 </para> </answer> @@ -178,7 +174,7 @@ sub process <link linkend="fml.command.hack.commandmail"> <xref linkend="fml.command.hack.commandmail"> </link> -も参照してみてください。 +も参照してください。 </para> </answer> @@ -218,7 +214,7 @@ get コマンドを mget mp と同じ意味にする <answer> <para> -&fml8; ではデフォルトでそういう意味になっています。 +&fml8; ではデフォルトで、その意味(MIME/Multipart モード)になっています。 </para> <para> diff --git a/fml/doc/ja/tutorial/customize/recipes.delivery.sgml b/fml/doc/ja/tutorial/customize/recipes.delivery.sgml index cfd3ed69..f6d0403c 100644 --- a/fml/doc/ja/tutorial/customize/recipes.delivery.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.delivery.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.delivery.sgml,v 1.3 2006/01/17 04:27:01 fukachan Exp $ + $FML: recipes.delivery.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -25,6 +25,9 @@ maintainer = admin@example.co.jp </screen> 設定するアドレス( admin@example.co.jp )でメールを受けとれるように しておいてください。 +</para> + +<para> なおメールサーバによってはメールの送信者が自ドメイン以外からの場合、 受信を拒否することがあるので注意して下さい。 </para> @@ -35,9 +38,20 @@ maintainer ( elena ML なら elena-admin@fml.org ) のフォワード先を変更する方が簡単です。 その設定は /etc/mail/aliases を変更するか、 $maintainer_recipient_maps で行なえます。 +</para> + +<para> 前者は MTA がフォワード先を変更していますが、 -後者では elena-admin 宛のメールを fml8 が受けて、 -fml8 が $maintainer_recipient_maps にしたがって再配送を行なっています。 +後者では一度 elena-admin 宛のメールを &fml8; が受け、 +&fml8; が $maintainer_recipient_maps にしたがって再配送を行ないます。 +</para> + +<para> +”エラーメール”を &fml8; が再配送するという意味で若干不安のある実装で +すが、エラーメールを受けとる管理者リストを MTA ではなく &fml8; 側で管 +理するために必要なので実装されています。これは、たとえば WWW インター +フェイスでエラーメールを受けとる管理者リストを設定するといったケースを +想定した機能です。 </para> </answer> @@ -55,8 +69,8 @@ fml8 が $maintainer_recipient_maps にしたがって再配送を行なっています。 <answer> <para> -なにもしなくても構いません。 -次のように設定されているので、&fml8; のデフォルトでそのように動きます。 +なにもしなくても OK です。 +&fml8; のデフォルトが次のように設定されているので、そのように動きます。 <screen> member_maps = $primary_member_map $admin_member_maps @@ -81,12 +95,13 @@ Subject のキーワードによって受信者を切替えることを考えます。 </para> <para> -たとえばSubjectに「資料請求」とあるメールであれば、MLドライバが直接 -資料請求を担当する人たちへフォワードしてあげると効率がよい。 +たとえば Subject に「資料請求」とあるメールであれば、MLドライバが直 +接資料請求を担当する人たちへフォワードしてあげると効率がよい。 +そういうケースです。 </para> <para> -これを実現するためには、こんな HOOK が考えられます。 +これを実現するためには、次のような HOOK が考えられます。 <screen> $distribute_run_start_hook = q{ @@ -199,7 +214,7 @@ recipient_maps = unix.group:fml <question> <para> -送信者(投稿者)には ML の記事は配送しない +送信者(投稿者)にはMLの記事は配送しない </para> </question> diff --git a/fml/doc/ja/tutorial/customize/recipes.filter.sgml b/fml/doc/ja/tutorial/customize/recipes.filter.sgml index 20edc9d9..d675ac14 100644 --- a/fml/doc/ja/tutorial/customize/recipes.filter.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.filter.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.filter.sgml,v 1.3 2006/01/17 04:27:20 fukachan Exp $ + $FML: recipes.filter.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -125,12 +125,12 @@ HOOK でなんとかする/ごまかす例は次の通りです。 <para> 返事をしてあげたいなら、 reply_message() で、何か返事を返してあげてく -ださい…が、たぶんウィルスとかなので、返事してあげなくてもいいとおもふ。 +ださい…が、たぶんウィルスとかなので返事をしないほうが良いでしょう。 </para> <para> .exe など特定のファイル拡張子にマッチするか?を調べる例。 -に昔の &fml8; (2004/12/08 以前)なら、こんな感じ。 +昔の &fml8; (2004/12/08 以前)なら、こんな感じ。 <screen> $distribute_verify_request_start_hook = q{ my $msg = $curproc->incoming_message() || undef; @@ -143,7 +143,7 @@ $distribute_verify_request_start_hook = q{ } }; </screen> -2004/12/08 以降なら、こんなかんじ。 +2004/12/08 以降の &fml8; なら、こんなかんじ。 <screen> $distribute_verify_request_start_hook = q{ my $msg = $curproc->incoming_message() || undef; @@ -160,7 +160,7 @@ $distribute_verify_request_start_hook = q{ </para> <para> -別の解としては、 +別解としては、 <screen> Content-Disposition: attachment; </screen> @@ -177,7 +177,7 @@ $distribute_verify_request_start_hook = q{ } }; </screen> -2004/12/08 以降なら、こんなかんじ。 +2004/12/08 の &fml8; 以降なら、こんなかんじ。 <screen> $distribute_verify_request_start_hook = q{ my $msg = $curproc->incoming_message() || undef; @@ -215,7 +215,10 @@ use_article_filter_reject_notice = yes article_filter_reject_notice_recipient = maintainer sender </screen> となっています。 -つまり、エラーメールを返し、返す先はMLの管理者と送信者の両方です。 +つまり、 +(1) エラーメールを返し(yes)、 +(2) 返す先はMLの管理者と送信者の両方(maintainer sender) +です。 </para> @@ -405,6 +408,11 @@ $article_filter_end_hook = q{ </para> <para> +HOOK でなんとかすることは出来ます。 +「記事に ML 独自の Message-ID: をつけたい」というレシピを参照して下さい。 +</para> + +<para> &fml4; では「In-Reply-To: や References: をつけてくれない MUA があるた めにスレッドがうまく扱えない」という問題を解決するために、ML独自の Message-ID: をつけて矯正するという機能がありました。現代では、そういっ diff --git a/fml/doc/ja/tutorial/customize/recipes.header.sgml b/fml/doc/ja/tutorial/customize/recipes.header.sgml index ad03880f..271b3be1 100644 --- a/fml/doc/ja/tutorial/customize/recipes.header.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.header.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.header.sgml,v 1.6 2006/03/20 09:31:34 fukachan Exp $ + $FML: recipes.header.sgml,v 1.7 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -16,7 +16,8 @@ Subject: に [elena:00100] のようなタグをつける <answer> <para> デフォルトではタグはつきません。 -また &fml8; ではタグを sprintf 形式で指定することになっています。 +また &fml8; ではタグを sprintf などで使われる形式で指定することになっています +(strftime(3) を参照)。 <screen> [/var/spool/ml/elena/config.cf] @@ -43,7 +44,8 @@ Subject: [elena:00100] の数字部分(00100)の桁数を変える <answer> <para> -&fml8; ではタグを sprintf 形式で指定することになっています。 +&fml8; ではタグを sprintf 形式で指定することになっています +(strftime(3) を参照)。 たとえば7桁なら %07 などとすればよいだけです。 <screen> [/var/spool/ml/elena/config.cf] @@ -65,7 +67,8 @@ article_subject_tag = [$ml_name:%07d] <question> <para> -Subject: のタグの数字(00100)の0パディングをなくしたい。 +Subject: のタグの数字(00100)の0パディングをなくしたい +(strftime(3) を参照)。 </para> </question> @@ -92,7 +95,7 @@ article_subject_tag = [$ml_name:%d] <question> <para> -記事のヘッダの Subject: のタグを大文字にしたい +Subject: のタグを大文字にしたい。 </para> </question> @@ -115,7 +118,7 @@ article_subject_tag = [\U$ml_name\E:%05d] <question> <para> -記事のヘッダの Subject: のタグを小文字にしたい +Subject: のタグを小文字にしたい </para> </question> @@ -158,7 +161,7 @@ $distribute_verify_request_start_hook = q{ }; </screen> なお strftime(3) では様々なフォーマットが利用できます。 -詳しくは Unix マニュアルを参照。 +詳しくは Unix マニュアル strftime(3) を参照。 </para> </answer> @@ -169,13 +172,13 @@ $distribute_verify_request_start_hook = q{ <question> <para> -いつでも Reply-To: を投稿用アドレスに強制する。 +Reply-To: を常に投稿用アドレスに強制変更する。 </para> </question> <answer> <para> -次の HOOK を config.cf の最後(=cutより後)に書いて下さい。 +次の HOOK を config.cf の最後(=cut 行より下側)に書いて下さい。 <screen> $article_header_rewrite_end_hook = q{ my $ml = $config->{ article_post_address }; @@ -202,7 +205,7 @@ Reply-To: を送信者に設定する。 <answer> <para> -次の HOOK を config.cf の最後(=cutより後)に書いて下さい。 +次の HOOK を config.cf の最後(=cut 行より下側)に書いて下さい。 <screen> $article_header_rewrite_end_hook = q{ my $cred = $curproc->credential(); @@ -228,7 +231,7 @@ Reply-To: を「送信者 + ML」に設定する。 <answer> <para> -次の HOOK を config.cf の最後(=cutより後)に書いて下さい。 +次の HOOK を config.cf の最後(=cut 行より下側)に書いて下さい。 <screen> $article_header_rewrite_end_hook = q{ my $ml = $config->{ article_post_address }; @@ -249,13 +252,14 @@ $article_header_rewrite_end_hook = q{ <question> <para> -MLメンバーからの投稿であれば、Reply-To: を「送信者+ML」にする。 +MLメンバーからの投稿であれば、 +Reply-To: を「送信者+ML」に設定する。 </para> </question> <answer> <para> -次の HOOK を config.cf の最後(=cutより後)に書いて下さい。 +次の HOOK を config.cf の最後(=cut 行より下側)に書いて下さい。 <screen> $article_header_rewrite_end_hook = q{ my $ml = $config->{ article_post_address }; @@ -279,15 +283,25 @@ $article_header_rewrite_end_hook = q{ <question> <para> -To: と Cc: の中にある fml8 が管理しているMLのアドレスだけを +To: と Cc: の中にある &fml8; が管理しているMLのアドレスだけを Reply-To: に設定する。 </para> </question> <answer> <para> -だいぶ複雑ですが HOOK で実現できます。 -次の HOOK を config.cf の最後(=cutより後)に書いて下さい。 +説明しにくい動作ですが、 +ようするに記事から自分の知らないアドレスを削除するということです。 +</para> + +<para> +ヘッダに書いてある全てのアドレスへ返信する人が多いので、 +こういった動作が有用であることがあります。 +</para> + +<para> +設定は、だいぶ複雑ですが HOOK だけで実現できます。 +次の HOOK を config.cf の最後(=cut 行より下側)に書いて下さい。 <screen> $article_header_rewrite_end_hook = q{ my $to = $header->get('to'); @@ -345,14 +359,28 @@ Sender: を X-Sender: にコピーする。 <answer> <para> +<para> +投稿されたメールの Sender: を X-Sender: にコピーしておきます。 +配送後、どこかで Sender: が変更されたとしても、オリジナルの送信者が +分かるということです。 +</para> + +<para> +もっとも Sender: をつけない人もいるので、 +そういったメールに対しては対応できません。 +Sender: がないなら From: を X-Sender: にコピーしておくといった +条件文も必要かもしれません。 +</para> + +<para> <screen> $article_header_rewrite_end_hook = q{ my $header = $curproc->article_message_header(); $header->add('X-Sender', $header->get('Sender')); }; </screen> - </para> + </answer> </qandaentry> @@ -362,7 +390,7 @@ $article_header_rewrite_end_hook = q{ <question> <para> -Received: を X-Received: へ移動させる。 +Received: を X-Received: へ移動する。 </para> </question> @@ -401,10 +429,10 @@ article_header_rewrite_rules -= rewrite_reply_to </para> <para> -デフォルトでは Reply-To: のないメールのヘッダに対し「Reply-To: 投稿用 -アドレス」が追加されます。これは article_header_rewrite_rules にある +デフォルトでは Reply-To: のないメールヘッダに対し「Reply-To: 投稿用ア +ドレス」が追加されます。これは $article_header_rewrite_rules にある rewrite_reply_to 命令によります。よって、これをルールから削除してしま -えば Reply-To: に対する書き換えルールが無効となるというわけです。 +えば「Reply-To: に対する書き換えルールが無効となる」というわけです。 </para> </answer> @@ -464,6 +492,10 @@ article_header_rewrite_rules -= rewrite_reply_to <answer> <para> +特殊な需要ですが、可能です。 +</para> + +<para> <screen> [/var/spool/ml/elena/config.cf] @@ -483,8 +515,12 @@ $article_header_rewrite_end_hook = q{ $header->replace('Message-Id', $new_id); }; </screen> +</para> +<para> +もともとは某MLで遊び心で始めた話が元ネタ。 </para> + </answer> </qandaentry> @@ -525,7 +561,7 @@ $article_header_rewrite_end_hook = q{ <answer> <para> 未実装です。 -現在の fml8 でも +現在の &fml8; でも <screen> outgoing_mail_header_reply_to = アドレス </screen> @@ -591,10 +627,16 @@ In-Reply-To: か References: を強制したい。 <answer> <para> -記事への返事にも関わらず In-Reply-To: も References: もないメールがあります。 -一つには、スレッド関係が分からないので見づらいという問題があります。 -二つには、通常そういったメールはないので普通のメールではなく SPAM などの -類ではないかという可能性です。 +記事への返信であるにも関わらず In-Reply-To: も References: もないメー +ルを送ってくる人が現実にいます。 +これをされると、いくつかの問題が生じます。 +</para> + +<para> +第一に、メール間のスレッド関係が分からなくなるので見づらいです。 +第二に、通常そういったメールは無い(少ない)ので、 +そういったメールは「普通のメール」ではなく +「SPAM メール」などの可能性が高いとみなされます。 </para> <para> diff --git a/fml/doc/ja/tutorial/customize/recipes.subscribe.sgml b/fml/doc/ja/tutorial/customize/recipes.subscribe.sgml index 98c62b28..0005819b 100644 --- a/fml/doc/ja/tutorial/customize/recipes.subscribe.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.subscribe.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.subscribe.sgml,v 1.3 2006/01/26 12:10:10 fukachan Exp $ + $FML: recipes.subscribe.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -15,7 +15,7 @@ subscribe の登録作業は手動でしたい <answer> <para> -subscribe は confirmation つきの自動登録がデフォルトです。 +&fml8; の subscribe は confirmation つきの自動登録がデフォルトです。 <screen> [config.cf のデフォルト値] @@ -26,6 +26,7 @@ subscribe_command_operation_mode = automatic </para> <para> +「手動操作」併用方式にするには、次のような設定があります。 <screen> [config.cf] @@ -35,20 +36,21 @@ subscribe_command_operation_mode = manual </screen> と設定した場合は、次のような挙動になります。 (1) &fml8; が confirmation を行ないリクエストの正当性を確認します。 +「正当性を確認した」という報告を管理者へ行ないます。 (2) 一方、アドレスの登録作業は自動では行なわれません。 - 管理者へは登録作業を依頼するメールが &fml8; から出されます。 - そのメールを見たら登録作業(admin コマンド、CUI、GUI)をして下さい。 +管理者へは登録作業を依頼するメールが &fml8; から出されます。 +そのメールを見たら、 +管理者は登録作業(admin コマンド、CUI、GUI)を手動でして下さい。 </para> <para> -ようするにデフォルトの自動登録過程の最後が自動ではなく手動に変わっただ -けです。 +ようするに登録過程の最終段階が「自動」から「手動」に変わっただけです。 </para> <para> confirmation も登録も管理者が自ら行なう場合は次のようにして下さい。 -まぁこの場合MLドライバを使う意義がないような気もしますが、 -いや SPAM よけになるから意味がありますね。 +この場合、MLドライバを使う意義がないような気もしますが、 +いや SPAM よけになるから若干の意味があるでしょう。 <screen> [config.cf] @@ -115,19 +117,19 @@ unsubscribe_command_operation_mode = manual </screen> と設定した場合は、次のような挙動になります。 (1) &fml8; が confirmation を行ないリクエストの正当性を確認します。 +管理者へ作業依頼のメールが &fml8; から出されます。 (2) 一方、アドレスの登録作業は自動では行なわれません。 - 管理者へは登録作業を依頼するメールが &fml8; から出されます。 - そのメールを見たら登録作業(admin コマンド、CUI、GUI)をして下さい。 +管理者へは登録作業を依頼するメールが &fml8; から出されます。 +そのメールを見たら登録作業(admin コマンド、CUI、GUI)をして下さい。 </para> <para> -ようするにデフォルトの自動登録過程の最後が自動ではなく手動に変わっただ -けです。 +ようするに登録過程の最終段階が「自動」から「手動」に変わっただけです。 </para> <para> confirmation も登録も管理者が自ら行なう場合は次のようにして下さい。 -まぁこの場合MLドライバを使う意義がないような気もしますが、 +この場合、MLドライバを使う意義がないような気もしますが、 いや SPAM よけになるから意味がありますね。 <screen> [config.cf] @@ -201,13 +203,12 @@ chaddr_command_operation_mode = manual </para> <para> -ようするにデフォルトの自動登録過程の最後が自動ではなく手動に変わっただ -けです。 +ようするに登録過程の最後が「自動」から「手動」に変わっただけです。 </para> <para> confirmation も登録も管理者が自ら行なう場合は次のようにして下さい。 -まぁこの場合MLドライバを使う意義がないような気もしますが、 +この場合、MLドライバを使う意義がないような気もしますが、 いや SPAM よけになるから意味がありますね。 <screen> [config.cf] @@ -281,7 +282,7 @@ fml 3.0 以前の auto_regist を使い続けたい </para> <para> -いまさら、これの需要があるとは思えませんが、一応。 +いまさら、この機能の需要があるとは思えませんが、一応、解説します。 </para> <para> @@ -289,10 +290,11 @@ fml 3.0 以前の auto_regist を使い続けたい <screen> primary_recipient_map = $primary_member_map </screen> -とすればよいことになりますが、自動登録時にエラーがでます(すでにメンバー -です)。エラーを回避するため登録対象である primary_recipient_map はその -ままダミーのファイルとして残し、実際の配送リスト(recipient_maps)は -members になるようにしてしまうのがよいでしょう。 +とすればよいことになります。 +ただ、自動登録時にエラーがでます(すでにメンバーですから)。エラーを回避 +するため登録対象である primary_recipient_map はそのままダミーのファイ +ルとして残し、実際の配送リスト(recipient_maps)は members になるように +してしまうのがよいでしょう。 <screen> recipient_maps = $primary_member_map </screen> diff --git a/fml/doc/ja/tutorial/customize/recipes.www.sgml b/fml/doc/ja/tutorial/customize/recipes.www.sgml index c528e1a4..d29cbeae 100644 --- a/fml/doc/ja/tutorial/customize/recipes.www.sgml +++ b/fml/doc/ja/tutorial/customize/recipes.www.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.www.sgml,v 1.2 2006/01/19 14:36:54 fukachan Exp $ + $FML: recipes.www.sgml,v 1.3 2008/08/18 02:23:59 fukachan Exp $ --> <qandaset> @@ -20,7 +20,7 @@ </para> <para> - でも、そもそも記事を HTML 化しないというのが安全策です。 + でも、そもそも記事を HTML 化しないほうがより安全です。 <screen> [config.cf] @@ -44,7 +44,7 @@ <screen> Alias /mlarchive/ "/home/fml/public_html/" </screen> - とかすれば OK だと思うのですが、それじゃ駄目? + とかすれば OK だと思うのですが、それじゃ駄目ですかね? </para> </answer> </qandaentry> @@ -60,13 +60,14 @@ <answer> <para> -まず、デフォルトで HTML 化されているので、あえて機能を無効にしていなければ、 -公開するために WWW サーバを設定すれば良いだけです。 +はじめから HTML 化された記事が用意されています。そもそもデフォルトで +HTML 化されているので、あえて HTML 化機能を無効にしていなければ、公開 +するために WWW サーバを設定すれば良いだけです。 </para> <para> -一度無効にした場合ですが、fmlhtmlify コマンドで HTML 化をすることがで -きます。 +一度 HTML 化を無効にしていて、ふたたび有効にしたくなった場合が問題ですが、 +fmlhtmlify コマンドで記事の HTML 化をすることができます。 <screen> % fmlhtmlify 記事のあるディレクトリ HTMLを置くディレクトリ @@ -132,7 +133,7 @@ rsync over ssh を自動で実行するには少し特殊な ssh の設定が必要ですので 案 3 として WWW サーバのファイルシステムに NFS 経由でアクセスするとい うのもありえますが、NFS サーバがインターネットから見える場所にあるよう なネットワーク構成はいけません。構成を良く考える必要があります(裏ネッ -トワーク経由でアクセス)。 +トワーク経由でアクセスするように設計しましょう)。 </para> <para> diff --git a/fml/doc/ja/tutorial/delivery/chapter.sgml b/fml/doc/ja/tutorial/delivery/chapter.sgml index bde207d1..692ab877 100644 --- a/fml/doc/ja/tutorial/delivery/chapter.sgml +++ b/fml/doc/ja/tutorial/delivery/chapter.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.sgml,v 1.16 2006/01/17 04:46:03 fukachan Exp $ + $FML: chapter.sgml,v 1.17 2008/08/18 13:21:42 fukachan Exp $ --> @@ -9,15 +9,18 @@ </TITLE> -<sect1 id="fml8-delivery"> +<sect1 id="delivery.fml8-and-fml4-difference"> <title> &fml4; と &fml8; の相違点 </title> <para> -&fml8; の最大の目的の一つは、メンバーリストの取得操作におけるコードの -統合と抽象化です。もちろん配送システムも抽象化された IO 層を利用して配 -送先の情報を取得しています。 +&fml8; 最大の目的の一つは、メンバーリストの取得操作におけるコードの +統合と抽象化です。 +</para> + +<para> +配送システムも抽象化された IO 層を利用して配送先の情報を取得しています。 </para> <para> @@ -62,7 +65,7 @@ Mail::Message </sect1> -<sect1> +<sect1 id="delivery.message-object"> <title> <link linkend="module.mail.message"> Mail::Message @@ -76,7 +79,7 @@ Mail::Message header -> body header -> preamble -> part1 -> part2 -> trailor (multipart) </screen> -のようにオブジェクトが数珠つなぎになったデータ構造を作ります。 +のようにオブジェクトが「じゅずつなぎ」になったデータ構造を作ります。 </para> <para> @@ -104,7 +107,9 @@ Mail::Message <para> 2004 夏以降、&fml8; の配送システムはキュー管理システムのもとで動いてい -ます。これにより fml8 自力での再送処理が可能となりました。 +ます。これにより &fml8; 自力での再送処理が可能となりました。 +別の言い方をすれば、 +実質的に &fml8; をメールサーバと言ってよくなったわけです。 </para> </sect1> @@ -117,18 +122,22 @@ Mail::Message <para> FML::Process::QueueManager が使っているのみなので -独立したモジュールである必要があるだろうか? +独立したモジュールである必要があるだろうか?という疑問です。 </para> <para> -reply_message() が何でもしてしまうので、 -FML::Mailer を呼ぶことはないかもしれない。 -でも、 reply_message() 以外の送信メソッドがあり得るかもしれないね。 +現状 reply_message() メソッドが何でもしてしまうので、 +FML::Mailer を呼ぶことはないかもしれません。 +もっとも reply_message() 以外の送信メソッドがあり得るかもしれません。 </para> <para> 将来、どうも使ってないようなら -FML::Process::QueueManager に合併するべきかもしれない。 +FML::Process::QueueManager に合併するべきなのでしょう。 +</para> + +<para> +ねんのため、HOOK などでは FML::Mailer は使わないようにして下さい。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/delivery/queue.sgml b/fml/doc/ja/tutorial/delivery/queue.sgml index df71af35..41aa383e 100644 --- a/fml/doc/ja/tutorial/delivery/queue.sgml +++ b/fml/doc/ja/tutorial/delivery/queue.sgml @@ -1,16 +1,16 @@ <!-- - $FML: queue.sgml,v 1.8 2005/06/25 15:11:30 fukachan Exp $ + $FML: queue.sgml,v 1.9 2008/08/18 13:21:42 fukachan Exp $ --> <sect1 id="message.queue.incoming"> <TITLE> - fml がメールを読みこむ際のキューイング + &fml8; がメールを読みこむ際のキューイング </TITLE> <para> -fmlの各プロセスは MTA から起動され、STDIN(標準入力)からメールを読みこ -みます。 +&fml8; (以下 fml)の各プロセスは MTA から起動され、STDIN(標準入力)から +メールを読みこみます。 </para> <para> @@ -23,12 +23,13 @@ fml は、いったんメールを読みこみ、まずはディスクに書き込みます <para> もし、失敗した場合、exit(EX_TEMPFAIL)します。たいていの OS では exit(75) です。このエラーコードをうけとると、MTA は一時的なエラーがお -こったとみなすため、このメッセージの再送処理を試みてくれます。 +こったとみなすため、このメッセージの再送処理を試みてくれます(つまり、 +何分か後に、もう一度、最初から処理が試みられます)。 </para> <para> -失敗が一時的なディスク溢れ(file system full)なら、MTA の再送処理でリト -ライが行なわれMLの処理が行なわれます。 +失敗が一時的なディスク溢れ(file system full)なら、 +MTA の再送処理でリトライが行なわれ、MLの処理が行なわれます。 ただ、MLのスプールに用意したファイルシステムでのディスク溢れ(file system full)が一時的とは考えにくいので、システム管理者が気づかないと、 ずっとエラーになり続ける可能性が高いと思います。 @@ -45,16 +46,16 @@ incoming queue の処理は Mail::Delivery::Queue を使い、ML固有の queue <sect1 id="message.queue.outgoing"> <TITLE> - fml からメールで返事を送り返す + &fml8; からメールで返事を送り返す </TITLE> <para> 送り返すべきメールは Mail::Delivery::Queue -を使いML固有の queue に入れます。 -queue に入ったメールは、のちに +を使いML固有のキューに入ります。 +キューに入ったメールは、のちに FML::Process::QueueManager -クラス経由で(配送)処理をします。 +クラス経由で(配送)処理が行なわれます。 </para> <para> @@ -66,16 +67,16 @@ Mail::Delivery::Queue ベースのキューイング処理をしています。そのため、 <sect2> <title> - &fml8; の中では、どう書くのか? + &fml8; の中では送信処理をどのように書くのか? </title> <para> -あるメッセージ(テキストメッセージ)を送り返したい場合は、次のように書きます。 +あるメッセージ(テキストメッセージ)を送り返したい場合、次のように書きます。 <screen> $curproc->reply_message( "you are not a ML member." ); </screen> -この場合の受信者はコマンドの結果などを受けとる人、 -&fml8; にリクエストをした人です。 +この場合の受信者は、投稿を拒否された人やコマンドの結果などを受けとる人、 +つまり &fml8; に何かの処理を要求した人です。 </para> @@ -105,15 +106,14 @@ $curproc->reply_message( { <sect1 id="message.queue"> <TITLE> - mail queue と配送の仕組み + &fml8; におけるメールキューと配送の仕組み </TITLE> <para> FML::Process::QueueManager により -特定の queue ファイルが queue ディレクトリから pickup され、 -Mail::Message で parse され、 -FML::Mailer 経由で -Mail::Delivery が実際にメール配送処理をします。 +(1) 特定のキューファイルがメールキューディレクトリから pickup され、 +(2) Mail::Message で parse され、 +(3) FML::Mailer 経由で Mail::Delivery が実際のメール配送処理を行ないます。 <screen> Mail::Delivery::Queue ↓ @@ -139,13 +139,13 @@ ATOMIC 操作を使って実装してもよいのですが、 </sect1> -<sect1> +<sect1 id="message.queue.directory"> <TITLE> - mail queue ディレクトリ + メールキューディレクトリ </TITLE> <para> -queue ディレクトリは複数のディレクトリからなります。 +キューディレクトリは次のように複数のディレクトリからなります。 <screen> new/ active/ @@ -163,12 +163,18 @@ outgoing 用です。 </para> <para> -(outgoing の) queue ファイルを作る時は、一旦 new/ に作成します。 -queue ファイルを作る作業が終了し、配送準備 OK となったら +outgoing の キューファイルを作る時は、一旦 new/ に作成します。 +キューファイルを作る作業が終了し、配送準備 OK となったら new/ から active/ に移動されます。 つまり active/ にあるファイルは配送準備ができているものです。 </para> +<para> +処理の途中でエラーが起こったら、new/ に残骸が残ります。 +定期的にゴミは消すようにしていますが、しばらくは残るわけです。 +そのあいだは救出するチャンスともいえますね。 +</para> + <sect2> <title> queue ディレクトリをロックする diff --git a/fml/doc/ja/tutorial/delivery/recipes.forward.sgml b/fml/doc/ja/tutorial/delivery/recipes.forward.sgml index 8b30eccd..6e23f468 100644 --- a/fml/doc/ja/tutorial/delivery/recipes.forward.sgml +++ b/fml/doc/ja/tutorial/delivery/recipes.forward.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.forward.sgml,v 1.1 2006/01/17 04:46:03 fukachan Exp $ + $FML: recipes.forward.sgml,v 1.2 2008/08/18 13:21:42 fukachan Exp $ --> @@ -12,22 +12,29 @@ <answer> <para> -転送先をファイルで指定して良いなら、簡単です。 -例えば、条件 A B C に応じて +一番簡単な例として、転送先をファイルで指定する例を考えましょう。 +たとえば、条件 A B C に応じて <screen> recipients.A recipients.B recipients.C </screen> -が用意されているとしましょう。 -この場合は HOOK で条件をチェックしつつ +が用意されているとします。 +この場合 HOOK で条件をチェックしつつ <screen> if (条件 A にマッチした) { $config->set('recipient_maps', "recipients.A"); } </screen> -のようなコード(hook)を書けば動きます。 +のようなコードを書けば「本文の内容に応じて転送先を変える」ことが出来ます。 </para> + +<para> +recipient_maps 変数にはファイル以外の指定も可能です。 +指定可能なパラメータは IO::Adapter クラスが扱えるものすべてです。 +MySQL や LDAP から配送リストを取り出すといったこともできます。 +</para> + </answer> </qandaentry> diff --git a/fml/doc/ja/tutorial/devel/create_program.sgml b/fml/doc/ja/tutorial/devel/create_program.sgml index e4bf79f5..d7c2a589 100644 --- a/fml/doc/ja/tutorial/devel/create_program.sgml +++ b/fml/doc/ja/tutorial/devel/create_program.sgml @@ -1,5 +1,5 @@ <!-- - $FML: create_program.sgml,v 1.10 2005/06/25 15:11:30 fukachan Exp $ + $FML: create_program.sgml,v 1.11 2008/08/18 13:21:42 fukachan Exp $ --> @@ -9,20 +9,20 @@ </title> -<sect1> +<sect1 id="program.create.cui"> <title> プログラムを作る(コマンドライン用) </title> <para> -まず FML::Process:: にモジュールを用意します。 +まず FML::Process:: クラス以下にモジュールを用意します。 最小構成の見本としては FML::Process::Calender 、 最大構成としては FML::Process::Distribute (記事配送プログラムの本体) を参考にすると良いでしょう。 </para> <para> -各 FML::Process::* モジュールが用意しなければいけない関数(メソッド)は +各 FML::Process::○○○ モジュールが用意しなければいけない関数(メソッド)は FML::Process::Flow::ProcessStart() を見ると分かります。 FML::Process::Flow::ProcessStart() @@ -38,7 +38,7 @@ help() </screen> ダミーでもよいので、これらのメソッドを適宜用意しておいて下さい。各メソッ ドの具体例は、FML::Process 以下のモジュールを見て下さい。メソッドの役 -割を知るためには最大構成の FML::Process::Distribute が一番適当かも知れ +割を知るためには最大構成の FML::Process::Distribute が一番適当かもしれ ません。 </para> @@ -60,10 +60,13 @@ FML::Process::○○○ を用意したら、 etc/modules にプログラムとクラスの関係を定義して下さい。 +これはプログラム名からロードするべきモジュールを定義するファイルです。 また、 etc/command_line_options -にオプションとML名の有無などを定義してください -(書き方は、これらのファイルの中身を見て推測して下さい)。 +にオプションとML名の有無などを定義してください。 +名前の通り、可能なオプションについて指定するファイルです。 +これらのファイルフォーマットは、これらの中身を見て推測して下さい。 +Unix 伝統のスペース区切りなので、すぐ分かります。 </para> <para> @@ -107,7 +110,7 @@ lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 mead@ -> loader </sect1> -<sect1> +<sect1 id="program.create.gui"> <title> プログラムを作る( CGI 用) </title> @@ -121,7 +124,7 @@ lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 mead@ -> loader <link linkend="cgi.internal"> <xref linkend="cgi.internal"> </link> -を参照してみて下さい。 +を参照してください。 </para> <para> @@ -146,7 +149,7 @@ CGI 系列では次のような、オブジェクトの関係があります。 <para> CGI のプログラムの書き方もコマンドラインプログラムと同様です。 名前空間で区別するために CGI スクリプトのモジュールは -FML::Process ではなく FML::CGI に配置されています。 +FML::Process ではなく FML::CGI 以下に配置されています。 既存の FML::CGI のモジュールを見本にして、 FML::CGI::○○○ を適宜用意して下さい。 @@ -174,7 +177,7 @@ run_cgi_options() <footnote> <para> 正確には、画面は3×3の合計9個のブロックからなりますが、 -そのうちの6つしか使っていません。 +たいてい、そのうちの6つしか使っていません。 </para> </footnote> が構成されています。 diff --git a/fml/doc/ja/tutorial/devel/cvstree.sgml b/fml/doc/ja/tutorial/devel/cvstree.sgml index 3dc86b59..f1d37260 100644 --- a/fml/doc/ja/tutorial/devel/cvstree.sgml +++ b/fml/doc/ja/tutorial/devel/cvstree.sgml @@ -1,5 +1,5 @@ <!-- - $FML: cvstree.sgml,v 1.10 2004/10/06 09:07:36 fukachan Exp $ + $FML: cvstree.sgml,v 1.11 2005/06/25 15:11:30 fukachan Exp $ --> @@ -12,19 +12,20 @@ <!-- ===================================================== --> <sect1 id="cvs.dirhier.summary"> <title> - ソースツリーの構造の概要 + ソースツリー構造の概要 </title> <para> -&fml8; の基本方針として、使えるもの(例えば CPAN )は片っ端から使い -ます。そうしないと、自分で保守するべき項目が増えるだけだからです。 +&fml4; と異なり、 +「使えるもの(たとえば CPAN )は何でも使え」が &fml8; の基本方針です。 +そうしないと、自分で保守するべき項目が増えるだけだからです。 </para> <para> -また、保守する人とライセンスをはっきり区別するためにベンダーごとにディ -レクトリを分けています。例えば CPAN で保守されているものは cpan/ ディ -レクトリ以下に入れています。ライセンスなどによっては、将来さらに区分を -分ける必要が出てくるかも知れません。 +ただし、保守する人もしくはライセンスをはっきりさせておくために、ベンダー +ごとにディレクトリを分けています。たとえば CPAN で保守されているものは +cpan/ ディレクトリ以下に入れています。ライセンスなどによっては、将来さ +らに区分を分ける必要が出てくるかもしれません。 </para> <para> @@ -182,8 +183,8 @@ cpan/ 以下をアップデートをすることが望ましいやり方です。cpan/lib/ に直 <entry> fml/libexec/ </entry> <entry> 実行されるプログラムの実体。 - すぐにモジュールを - 呼び出すので、正確には wrapper です。 + すぐにモジュールを呼び出すので、 + 正確には wrapper です。 重要なのは loader だけです。 </entry> </row> @@ -197,7 +198,7 @@ cpan/ 以下をアップデートをすることが望ましいやり方です。cpan/lib/ に直 <entry> fml/utils/ </entry> <entry> ユーティリティですが、 これは開発者が fml のソース内で使うだけのものです。 - インストール対象にはなりえません。 + インストール対象ではありません。 </entry> </row> </tbody> diff --git a/fml/doc/ja/tutorial/devel/docbook.sgml b/fml/doc/ja/tutorial/devel/docbook.sgml index bfa48f0c..b9beef96 100644 --- a/fml/doc/ja/tutorial/devel/docbook.sgml +++ b/fml/doc/ja/tutorial/devel/docbook.sgml @@ -1,5 +1,5 @@ <!-- - $FML: docbook.sgml,v 1.7 2004/10/06 09:07:36 fukachan Exp $ + $FML: docbook.sgml,v 1.8 2008/08/17 12:36:19 fukachan Exp $ --> @@ -9,17 +9,17 @@ </title> <para> -&fml8; のドキュメントでは、SGML の DTD は +&fml8; のドキュメントでは、SGML の DTD <ulink url="http://www.oasis-open.org/docbook/"> - DOCBOOK + "DOCBOOK" </ulink> -をごくごく普通に使うことにします。 +をごくごく普通に使うことにしています。 </para> <para> -本章では、SGML を書くために最小限必要な知識についてメモします。 +本章は SGML で書くために最小限必要な知識についてのメモです。 </para> <para> @@ -31,8 +31,8 @@ </para> </footnote> ですが、正しい HTML の書き方と同様です。 -本 Appendix で、2、3 の典型的な SGML テンプレートをメモしておくので、 -それらを適当に切り剥ぎしていけばなんとかなるはずです。 +本付録で、2、3 の典型的な SGML テンプレートをメモしておくので、 +それらを適当に切り剥ぎしていけば、なんとかなるはずです。 </para> @@ -43,12 +43,12 @@ </title> <para> -SGML は本や短い文書(記事)を作成するに使います。 -本や記事の論理構造を記述するための規格です。 -HTML のもっと厳密なものだと思って下さい +SGML は本や短い文書(記事)を作成する際に使われます。 +文章の論理構造を記述するための規格です。 +HTML のもっと厳密なものだと思って下さい。 <footnote> <para> - 正確には HTML が SGML の一部にフォーマッタの要素が合体してしまったものです。 + 正確には「SGML の一部にフォーマッタの要素が合体したもの」が HTML です。 HTML の方がはるかに有名になってしまったので、 「HTML のもっと厳密なもの…」といった説明が良くされます :) </para> @@ -65,13 +65,16 @@ HTML のもっと厳密なものだと思って下さい <para> これらの概念には、ある関係があります。 例えば”章”は”節”を含みますが、”節”は”章”を含みません。 -そして、文は必ずあるパラグラフの中にあるものです。 +そして、文は必ず「あるパラグラフ」の中に「ある」ものです。 </para> <para> -そういった概念をどう表現するべきか?を規定したものが DTD (Data Type -Definition)といえます。 -DTD は自由に定義すれば良いのですが、かなり大変です。 +そういった概念をどう表現するべきか?を規定したものが +DTD (Data Type Definition)といえます。 +</para> + +<para> +DTD は自由に定義できますが、定義自体が大変な作業です。 しかしながら 誰かが作った DTD コレクションが世の中にはあるので、それを 使うのが便利です。 我々は DTD として docbook というものを使う @@ -79,7 +82,7 @@ DTD は自由に定義すれば良いのですが、かなり大変です。 <para> 我々が DOCBOOK を選んだ理由は簡単で、 多くの場所で使われているからです。 - つまり、docbook のタグを書ける人は世の中に多いという意味です。 + つまり、docbook のタグを書ける人が世の中に多いという意味でもあります。 </para> </footnote> ことにしています。 @@ -102,17 +105,17 @@ DOCBOOK は OASIS-0PEN.ORG が保守している DTD 集です。非常に有名なもの <para> ここで”概念”といっているのであって、”見栄え”については ふれていないことに注意して下さい。 -例えば HTML では概念と見栄えは(むしろ意識的に)はっきり分離していません。 +たとえば HTML では概念と見栄えは(むしろ意識的に)はっきり分離していません。 </para> <para> 見栄えは DTD とは別の何かで定義されます。 通常スタイルシートというものです。 -HTML 4.0 などでご存知の CSS と同じ概念です。 +HTML 4.0 の CSS と同じ概念です。 </para> <para> -スタイルシートの記述をするプログラミング言語が必要です。 +スタイルシートの記述にもプログラミング言語が必要です。 docbook では schema (lisp の一種) ベースの DSSSL (Document Style Semantics and Specification Language) を使います。 @@ -176,7 +179,7 @@ part や title は文字通りの意味です。 <para> ここで注目するべきは、SYSTEM というキーワードのある、 2 行目です。 -これは include.sgml を include する命令です。 +これは include.sgml を読み込む( include する)命令です。 C 言語の #include や perl の require() と同様の働きをしています。 </para> @@ -229,7 +232,7 @@ include するべき定義ファイルを </screen> <para> -例えば +たとえば <screen> <itemizedlist> @@ -311,7 +314,7 @@ include するべき定義ファイルを </screen> <para> -例えば +たとえば <screen> <para> @@ -422,7 +425,7 @@ fml.dsl を定義として使っています。各 Makefile 内に、これらのファイルを ン)が記述されています。 </para> - +<!-- <warning> <para> NetBSD 1.5-stable 系列(およびそれ以前のバージョン)上で @@ -433,10 +436,11 @@ openjade をうまく compile できないことがありました。 うまくいかない時はまっさらにして全部やり直してみましょう。 </para> </warning> +--> </sect1> -<!-- ========================================================= --> +<!-- <sect1> <title> 例: SGML から HTML を作る (sgmltools を使う例) @@ -474,6 +478,7 @@ sgmltools は /etc/sgml/catalog ファイルを使います。 </para> </sect1> +--> <!-- ========================================================= --> diff --git a/fml/doc/ja/tutorial/digest/chapter.sgml b/fml/doc/ja/tutorial/digest/chapter.sgml index fb120cac..c538876b 100644 --- a/fml/doc/ja/tutorial/digest/chapter.sgml +++ b/fml/doc/ja/tutorial/digest/chapter.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.sgml,v 1.8 2005/11/19 03:45:06 fukachan Exp $ + $FML: chapter.sgml,v 1.9 2008/08/18 13:21:42 fukachan Exp $ --> @@ -9,17 +9,22 @@ </title> <para> +記事の「まとめ送り」をするには、 <screen> /usr/local/libexec/fml/digest ML名 </screen> -を定期的に cron から起動すれば、まとめ送りができます。 +を定期的に cron から実行して下さい。 </para> <warning> <para> -まだ、簡易版です。 &fml4; のようなキメの細かい設定は出来ません。 </para> + +<para> +というより、 +&fml8; では、&fml4; のようなキメの細かい設定を実装する予定がありません。 +</para> </warning> @@ -125,6 +130,10 @@ admin digest $address off digest on digest off </screen> +</para> + +<para> +(未実装) これは confirmation を返す。で、よい? </para> diff --git a/fml/doc/ja/tutorial/digest/recipes.sgml b/fml/doc/ja/tutorial/digest/recipes.sgml index f919fbcb..b99ecea4 100644 --- a/fml/doc/ja/tutorial/digest/recipes.sgml +++ b/fml/doc/ja/tutorial/digest/recipes.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.sgml,v 1.1 2005/10/08 03:37:42 fukachan Exp $ + $FML: recipes.sgml,v 1.2 2008/08/18 13:21:42 fukachan Exp $ --> <qandaset> @@ -33,8 +33,7 @@ <answer> <para> できません。 -現在は MIME/Multipart しかサポートしていないので、 -変更ということがそもそもありえません。 +現在は MIME/Multipart しかサポートしていないので他の選択肢がありません。 </para> </answer> @@ -52,8 +51,7 @@ makefml add の時にまとめ送りパラメータも指定したい <answer> <para> できません。 -現在は MIME/Multipart しかサポートしていないので、 -まとめ送りパラメータの指定ということがそもそもありえません。 +現在は MIME/Multipart しかサポートしていないので他の選択肢がありません。 </para> </answer> @@ -70,7 +68,7 @@ makefml add の時にまとめ送りパラメータも指定したい <answer> <para> -変数はありません。HOOK を書けばできます。 +変数はありませんが、HOOK を書けばできます。 <screen> [Example] @@ -78,7 +76,12 @@ $article_digest_prepare_start_hook = q{ $config->{ log_file } = "/some/where/log.digest"; }; </screen> +&fml8; では、HOOK が、各プロセスごとに別個に定義されているので、 +この方法が使えます。 +逆に言うと &fml4; ではメインのコードは共有されていて +HOOK がはっきり分離されていなかったので、この手の手法が使えませんでした。 </para> + </answer> </qandaentry> diff --git a/fml/doc/ja/tutorial/glossary.sgml b/fml/doc/ja/tutorial/glossary.sgml index ce3d6849..a98d97bd 100644 --- a/fml/doc/ja/tutorial/glossary.sgml +++ b/fml/doc/ja/tutorial/glossary.sgml @@ -1,5 +1,5 @@ <!-- - $FML: glossary.sgml,v 1.7 2005/06/25 15:11:27 fukachan Exp $ + $FML: glossary.sgml,v 1.8 2008/08/17 12:36:19 fukachan Exp $ --> <glossary id="glossary"> @@ -9,20 +9,20 @@ <glossentry> - <glossterm> fml 4 </glossterm> + <glossterm> &fml4; </glossterm> <glossdef> <para> - &fml4; シリーズのこと + &fml4; (fml バージョン 4)シリーズのこと </para> </glossdef> </glossentry> <glossentry> - <glossterm> fml 8 </glossterm> + <glossterm> &fml8; </glossterm> <glossdef> <para> - &fml8; シリーズのこと + &fml8; (fml バージョン 8)シリーズのこと </para> </glossdef> </glossentry> @@ -32,7 +32,7 @@ <glossterm> fml-devel </glossterm> <glossdef> <para> - &fml8 の開発時の名称。 + &fml8; 開発初期のコードネーム。 </para> </glossdef> </glossentry> @@ -42,12 +42,13 @@ <glossterm> curproc </glossterm> <glossdef> <para> - "current process"の略。 + "current process" の略。 </para> <para> - UNIX カーネルで伝統的に使われている省略名の典型例 + Unix カーネルで伝統的に使われている省略名の典型例。 </para> + </glossdef> </glossentry> @@ -55,16 +56,17 @@ <glossentry> <glossterm> PCB </glossterm> <glossdef> + <para> Process Control Block の略で、そのプロセス固有の情報を含む。 MLごとに内容は異なる。 fml 内部でのコンテキスト切替は、 - listserve スタイルのMLなどエミュレータプログラムの中で - 起こり得ます。 + listserv スタイルのMLなどエミュレータプログラムの中で + 起こり得る。 </para> <para> - UNIX カーネルで伝統的に使われている省略名の典型例 + Uni カーネルで伝統的に使われている省略名の典型例。 </para> </glossdef> </glossentry> @@ -74,7 +76,7 @@ <glossterm> config </glossterm> <glossdef> <para> - configuration の略 + configuration の略。 </para> </glossdef> </glossentry> @@ -84,7 +86,7 @@ <glossterm> conf </glossterm> <glossdef> <para> - configuration の略 + configuration の略。 </para> </glossdef> </glossentry> @@ -94,7 +96,7 @@ <glossterm> arg / args </glossterm> <glossdef> <para> - アーギュメント( argument )の略 + アーギュメント( argument )の略。 </para> </glossdef> </glossentry> @@ -104,7 +106,7 @@ <glossterm> fh </glossterm> <glossdef> <para> - ファイルハンドル( file handle ) + ファイルハンドル( file handle )。 </para> </glossdef> </glossentry> @@ -114,7 +116,7 @@ <glossterm> dh </glossterm> <glossdef> <para> - ディレクトリハンドル( directory handle ) + ディレクトリハンドル( directory handle )。 </para> </glossdef> </glossentry> @@ -123,12 +125,17 @@ <glossentry> <glossterm> fp </glossterm> <glossdef> + <para> 関数へのポインタ( function pointer )。 - perl では CODE リファレンスと呼ぶべきだが、 + </para> + + <para> + Perl では本来 CODE リファレンスと呼ぶべきだが、 cr などと書くより分かりやすいので、 プログラム中では $fp を使うことが多い。 </para> + </glossdef> </glossentry> @@ -136,6 +143,7 @@ <glossentry> <glossterm> _なになに </glossterm> <glossdef> + <para> 慣習的にパッケージ、クラス、オブジェクト内部で使う 変数や関数名に _ ではじまるキーワードを使う。 @@ -144,10 +152,11 @@ <para> つまり private ということ( ここで - OO の厳密な意味で private method という意味か?などとは - つっこまないようにされたい + オブジェクト指向言語でいうところの厳密な意味で + private method という意味か?などと、つっこまないようにされたい :-) </para> + </glossdef> </glossentry> @@ -157,14 +166,16 @@ <glossdef> <para> r はリファレンス(reference)の略。 - これは世間ではハンガリアン記法と呼ぶことが多い。 + これを + "世間では" + ハンガリアン記法と呼ぶことが多い。 </para> <para> 型を特別に強調したい場合に使うことがあるが、 - fml 内部では、ほとんど使っていない。 - 適宜コメントを参照してください。 + &fml8; では、ほとんど使わない。 </para> + </glossdef> </glossentry> @@ -173,7 +184,7 @@ <glossterm> STR </glossterm> <glossdef> <para> - 文字列 ( string ) の略 + 文字列 ( string ) の略。 </para> </glossdef> </glossentry> @@ -183,7 +194,7 @@ <glossterm> 日本語コードの略称 </glossterm> <glossdef> <para> - JIS SJIS EUC などおなじみのもの… + JIS SJIS EUC などおなじみのたぐい… </para> </glossdef> </glossentry> @@ -193,8 +204,8 @@ <glossterm> 2 </glossterm> <glossdef> <para> - to と発音が一緒のため省略形としてよく使う。 - 類似品として 4 ( for の意味)もある + to と発音が一緒のため省略形としてよく使われる。 + 類似品として 4 ( for の意味)がある。 </para> <para> 例: STR2EUC (STRing to EUC の略) @@ -212,7 +223,7 @@ $euc_string = STR2EUC($string); <glossdef> <para> for と発音が同じために用いる。 - 例はまだなし。 + いまのところ使っている例は無い。 </para> </glossdef> </glossentry> @@ -224,8 +235,8 @@ $euc_string = STR2EUC($string); <para> メールの本文に fml への命令(コマンド)を書いて送ることで 何らかの処理をしてもらう操作の総称。 - 一般ユーザ用のコマンドと、 - リモート管理用のコマンド(通称 admin コマンド)の2つのクラスがある。 + 一般ユーザ用のコマンドと + リモート管理用のコマンド(通称 admin コマンド)がある。 </para> </glossdef> </glossentry> diff --git a/fml/doc/ja/tutorial/include/bookinfo.sgml b/fml/doc/ja/tutorial/include/bookinfo.sgml index 0fe2936c..75a46c79 100644 --- a/fml/doc/ja/tutorial/include/bookinfo.sgml +++ b/fml/doc/ja/tutorial/include/bookinfo.sgml @@ -1,11 +1,12 @@ <!-- - $FML: bookinfo.sgml,v 1.17 2008/07/12 12:53:05 fukachan Exp $ + $FML: bookinfo.sgml,v 1.18 2008/08/17 12:36:06 fukachan Exp $ --> <bookinfo> <bookbiblio> <title> - fml8 チュートリアル + &fml8; チュートリアル + <!-- __FML_CURRENT_VERSION__ --> </title> <author> @@ -25,7 +26,7 @@ </author> <copyright> - <year> 2001,2002,2003,2004,2005,2006,2008 </year> + <year> 2001,2002,2003,2004,2005,2006,2008,2009 </year> <holder> Ken'ichi Fukamachi </holder> </copyright> @@ -39,18 +40,19 @@ <para> - fml 8 の現在のステータスは PRE ALPHA です。 + &fml8; 自体は、すでにプロダクションクオリティと考えていますが、 + 一応、現在のステータスは PRE ALPHA です。 そのためバージョン番号として 7.98.x という番号をつけています。 - fml 8 ALPHA 〜 fml 8 BETA および fml 8 RC の間は 7.99.x の予定です。 + &fml8; ALPHA 〜 &fml8; BETA および &fml8; RC の間は 7.99.x の予定です。 </para> <para> - 現在の fml8 で動く機能そして TODO リストは + 現在の &fml8; で動く機能そして TODO リストは <ulink url="../../../fml/doc/ja/todo/STATUS.txt"> http://www.fml.org/software/fml8/fml/doc/ja/todo/STATUS.txt </ulink> を、 - fml4 と fml8 の相違点については、 + &fml4; と &fml8; の相違点については、 <link linkend="changes"> <xref linkend="changes"> </link> @@ -65,6 +67,7 @@ </ulink> ドキュメントを参照して下さい)。 <screen> + perl 5.10.0 on NetBSD 5.0 perl 5.8.8 on NetBSD 4.0 perl 5.8.8 on NetBSD 2.0.2 perl 5.8.8 on NetBSD 2.0 diff --git a/fml/doc/ja/tutorial/internals/bootloader.sgml b/fml/doc/ja/tutorial/internals/bootloader.sgml index 5d71d328..73fd03b4 100644 --- a/fml/doc/ja/tutorial/internals/bootloader.sgml +++ b/fml/doc/ja/tutorial/internals/bootloader.sgml @@ -1,5 +1,5 @@ <!-- - $FML: bootloader.sgml,v 1.13 2005/06/25 15:11:33 fukachan Exp $ + $FML: bootloader.sgml,v 1.14 2008/08/18 13:21:42 fukachan Exp $ --> @@ -40,30 +40,30 @@ fml (libexec/distribute) が boot していく様子 </title> <para> -loader から次々と呼ばれていく様子は、例えば配送処理の場合、次のよう -になります。 +たとえば配送処理の場合、 +loader から次々とモジュールが呼ばれていく様子は次のようになります。 </para> <para> -/usr/local/libexec/fml/distributre (の実体は +/usr/local/libexec/fml/distributre (の実体 /usr/local/libexec/fml/loader) は /usr/local/etc/fml/main.cf を読みこ -み、fml_version 変数から使うべきライブラリのバージョンを決めます。例え -ば fml_vesrion が current-20010501 となっていたら +み、fml_version 変数から使うべきライブラリのバージョンを決めます。 +たとえば fml_vesrion が current-20010501 となっていたら /usr/local/lib/fml/current-20010501/ 以下にあるライブラリを使うといっ -た具合です。 +たぐあいです。 </para> <para> @INC を再設定した後、 loader は FML::Process::Switch をロードし、 -$0 を調べます。 -その名前から自分の仕事は配送処理配送処理なので +$0 (プロセス名)を調べます。 +その名前から自分の仕事は配送処理なので FML::Process::Distribute クラスをロードし、配送処理に移ります。 </para> <para> なお、プログラム名とクラスの対応関係は -etc/fml/defaults/バージョン/modules +/usr/local/etc/fml/defaults/バージョン/modules で定義されています。 </para> @@ -106,10 +106,10 @@ FML::Process::Mead >-| | <listitem> <para> - libexec/loader (wrapper) - Bootstrap() を実行する。 - libexec/distribute などは、皆この loader へのシンボリックリンクです。 - /usr/local/libexec/fml/ 以下を参照して下さい。 + /usr/local/libexec/fml/loader (wrapper)。 + これは Bootstrap() を実行します。 + distribute などは、皆この loader へのシンボリックリンクです。 + /usr/local/libexec/fml/ 以下を参照してください。 </para> </listitem> @@ -117,9 +117,10 @@ FML::Process::Mead >-| | <itemizedlist> <listitem> <para> - /usr/local/etc/fml/main.cf を読み込む。 - 読み込むと fml のバージョンが分かる。 - main.cf の値から @INC を再設定しバージョン依存性を解決します。 + /usr/local/etc/fml/main.cf を読み込み、 + fml のバージョンを知ります。 + また、main.cf の値から @INC (Perl のライブラリサーチパス)を再設定し、 + 読み込むべきライブラリのバージョン依存性を解決します。 default_config.cf.{ja,en} はバージョン依存ですので、 設定ファイルを読み込む前に、 この段階でバージョンを評価しなければいけないことに注意してください。 @@ -128,8 +129,8 @@ FML::Process::Mead >-| | <listitem> <para> - @ARGV を評価し、 - どのMLの config.cf 群をロードすればいいのかを準備します。 + @ARGV (実行されたプログラムの引数 )を評価し、 + どのMLの config.cf (設定ファイル)群を読み込むのかを判断します。 </para> </listitem> @@ -137,18 +138,16 @@ FML::Process::Mead >-| | <para> 次に FML::Process::Switch - (バージョン依存)クラスを - ロードします。 + (バージョン依存)クラスをロードします。 </para> <itemizedlist> <listitem> <para> Bootstrap2() および ProcessSwitch() を実行し、 - 配送用、コマンドメール用の各プロセスへ - 制御を移します。 - この時は $0 から自分の名前を知り、 - どのプロセスへ分岐すればいいのかを判断しています。 + 配送用、コマンドメール用などの各プロセスへ制御を移します。 + この時点で、すでに $0 から、 + どのプロセスへ成りかわればいいのかは分かっています。 </para> </listitem> @@ -161,7 +160,7 @@ FML::Process::Mead >-| | FML::Process::Flow の中に、 どのように fml8 プロセスを実行するかが - 定義されています。大雑把には + 定義されています。おおまかには <screen> $process = new FML::Process::なにか; $process->prepare($args); @@ -171,7 +170,7 @@ $process->finish($args); </screen> のような実行順です。 各プロセスは、それぞれについて適当なメソッドを - FML::Process:: 以下に用意する必要があります。 + FML::Process:: 以下のクラスで用意する必要があります。 </para> </listitem> </itemizedlist> @@ -193,7 +192,8 @@ $process->finish($args); <para> 以下、内部構造について、2、3の走り書き/おぼえがきを残しておきます。 -一応、こういった構造を鑑みて、prepare() のあたりに持ってきているわけです。 +一応、こういった構造を考慮して、 +prepare() メソッドあたりに持ってきているわけです。 <screen> main::Bootstrap() diff --git a/fml/doc/ja/tutorial/internals/cgi.examples.sgml b/fml/doc/ja/tutorial/internals/cgi.examples.sgml index ea2987aa..d28f88d1 100644 --- a/fml/doc/ja/tutorial/internals/cgi.examples.sgml +++ b/fml/doc/ja/tutorial/internals/cgi.examples.sgml @@ -1,5 +1,5 @@ <!-- - $FML: cgi.examples.sgml,v 1.2 2004/10/06 09:07:37 fukachan Exp $ + $FML: cgi.examples.sgml,v 1.3 2005/06/25 15:11:33 fukachan Exp $ 注意: cgi.sgml の中にはめ込むので <chapter> は不必要だ。 --> @@ -26,11 +26,21 @@ FML::CGI::Thread FML::Process::CGI::Kernel FML::Process::CGI::Param </para> <para> -FML::Process::CGI::Kernel には、 +固有でないコード(.cgi 群で共有するコード)は +FML::Process::CGI::Kernel に定義されています。 +ここには、 プロセス全体の制御部分と、 -デフォルトの CGI 固有の関数「run_cgi_なんとか()」を置きます。 -必要に応じて FML::CGI:: の階層でオーバーロードしてください。 -なお、FML::Process::CGI::Kernel の以下のメソッドは使われていません。 +デフォルトの CGI 固有関数「run_cgi_なんとか()」が定義されています。 +</para> + +<para> +必要に応じて FML::CGI:: の階層で、 +これらのメソッドをオーバーロードしてください。 +</para> + +<para> +なお、FML::Process::CGI::Kernel の以下のメソッドは定義されているだけで、 +実際には使われていません。 <screen> run_cgi_log run_cgi_dummy @@ -75,53 +85,63 @@ FML::Process::CGI::Kernel では $curproc->_drive_cgi_by_table(); (FML::Process::CGI::Kernel) $curproc->html_end(); (FML::CGI::Menu) </screen> -を実行します。画面を作るのは _drive_cgi_by_table() の部分です。 -この関数から呼ばれる関数が CGI のメイン部分です。 +を実行します。 +CGI の画面を作る実体は _drive_cgi_by_table() メソッドです。 +このメソッド内から呼ばれる関数が CGI のメイン部分です。 </para> <para> -$curproc->_drive_cgi_by_table() -は、以下の各「run_いろいろ()」メソッド群を呼び出します。 -<screen> -run_cgi_main (FML::CGI::Menu) -</screen> -cgi_execute_command (FML::Process::CGI::Kernel) を使い、 -FML::Command 経由で FML::Command::Admin::コマンドを実行します。 +$curproc->_drive_cgi_by_table() メソッドは、 +以下の各「run_いろいろ()」メソッド群を呼び出します。 +</para> + +<para> +たとえばコマンドを実行するメイン部分が run_cgi_main です。これは、 +cgi_execute_command (FML::Process::CGI::Kernel) を呼び出し、 +FML::Command 経由で「FML::Command::Admin::コマンド」クラスを実行します。 これが、GUI からコマンドを実行するコードの本体です。 -ただし、画面の表示は別です。 +</para> + +<para> +画面の表示をするには別のメソッド群が呼ばれています。 </para> <para> たとえば GUI から「ユーザのメールアドレスを登録する」場合、 -run_cgi_main() が実際の登録作業を行ないます。 -run_cgi_menu() は、入力画面の生成をおこないます。 -前者は FML::Command::Admin::subscribe::process() メソッド、 -後者は FML::Command::Admin::subscribe::cgi_menu() メソッドを呼び出しています。 +run_cgi_menu() が入力画面の生成をおこないます。 +run_cgi_menu() は cgi_execute_cgi_menu() 経由で各コマンドクラスの +「FML::Command::Admin::コマンド::cgi_menu()」を実行しています。 +この場合 FML::Command::Admin::subscribe::cgi_menu() +メソッドを呼び出しています。 +</para> + +<para> +ちなみに、実際の登録作業をする run_cgi_main() は、 +FML::Command::Admin::subscribe::process() +メソッドを呼び出しています。 </para> <para> -他にも run_cgi_* 関数がありますが、これらは画面の作りに関係する補助的 -なものたちといってよいでしょう。 +他にも run_cgi_* 関数がありますが、 +これらは画面の作りに関係する補助的なものたちといってよいでしょう。 </para> <para> -この2つは、たいていデフォルトのものを使っています。 +次の2つのメソッドは、たいていデフォルトのものを使っています。 <screen> run_cgi_title FML::Process::CGI::Kernel クラス (タイトル表示) run_cgi_options FML::Process::CGI::Kernel クラス (言語選択画面) </screen> -また、この .cgi 固有のメソッド群として次のものがあります。 +また、この .cgi 固有の画面作り関連メソッド群として次のものがあります。 <screen> run_cgi_navigator FML::CGI::Menu クラス run_cgi_help FML::CGI::Menu クラス run_cgi_command_help FML::CGI::Menu クラス run_cgi_menu FML::CGI::Menu クラス </screen> -</para> - -<para> -ちなみに run_cgi_menu() は cgi_execute_cgi_menu() 経由で -FML::Command::Admin::コマンド::cgi_menu() を実行しています。 +ヘルプなどはコマンドごとに違うわけですから、当たり前ですね? +ただ、メッセージが異なるとかいうだけで、モジュールが違っても、 +ほぼ似たようなつくりです。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/internals/cgi.sgml b/fml/doc/ja/tutorial/internals/cgi.sgml index f153a420..7fe86a68 100644 --- a/fml/doc/ja/tutorial/internals/cgi.sgml +++ b/fml/doc/ja/tutorial/internals/cgi.sgml @@ -1,5 +1,5 @@ <!-- - $FML: cgi.sgml,v 1.13 2004/10/06 09:07:38 fukachan Exp $ + $FML: cgi.sgml,v 1.14 2005/06/25 15:11:33 fukachan Exp $ --> @@ -15,7 +15,8 @@ </title> <para> -FML::CGI のクラスは以下のメソッド群を実装して下さい。 +FML::CGI:: の階層にあるクラス(たとえば FML::CGI::ML)は、 +以下のメソッド群を実装して下さい。 <screen> html_start() run_cgi_main() @@ -31,14 +32,14 @@ html_start() は、 ようするに HTML の先頭部分、たとえば DOCTYPE から BODY あたりを、 html_end() は /BODY と /HTML を表示する部分をカスタマイズするために用います。 -run_◎◎ メソッド群では BODY の部分を定義しています。 +「run_なんとか」は HTML BODY の中身を定義するメソッド群です。 </para> <para> $curproc の run() メソッドは <screen> html_start() -run_cgi_XXX() 群を実行(テーブル状に出力を配置する) +run_cgi_XXX() 群を実行(3x3 テーブル状に出力を配置、9 メソッドあります) html_end() </screen> を順番に実行しています。 @@ -49,7 +50,7 @@ prepare() verify_request() run() html_start() - run_cgi_○○() + run_cgi_○○() (9 メソッドあります) html_end() finish() </screen> @@ -65,7 +66,7 @@ finish() </title> <para> -fml CGI スクリプトでは典型的な画面が次のように分割されると考えています。 +&fml8; CGI スクリプトでは典型的な画面が次のように分割されると考えています。 <screen> ヘッダ ◎ メニュー ◎ @@ -82,7 +83,7 @@ fml CGI スクリプトでは典型的な画面が次のように分割されると考えています。 </para> <para> -一方、BODY の中身は真中の3x3のテーブル状の部分で、run_cgi() から呼 +一方、HTML BODY の中身は真中の3x3のテーブル状の部分で、run_cgi() から呼 ばれるメソッドが生成しています。 </para> @@ -112,9 +113,9 @@ run_cgi_main run_cgi_navigator run_cgi_menu run_cgi_command_help run_cgi_options </screen> -HTML のレベルでは、TABLE 命令を使って疑似的なナビゲーションバーのよう -なものを作っています。そして、ハッシュテーブルで定義されている関数を決 -められた順番で実行し、テーブルを作成しています。 +HTML のレベルでは、TABLE 命令を使って疑似的なナビゲーションバーを作っ +ています。そして、ハッシュテーブルで定義されている関数を決められた順番 +で実行し、テーブルを作成しています。 </para> <para> @@ -149,7 +150,7 @@ run_cgi_main() ではなく run_cgi_menu() 経由で表示しているともいえるの </title> <para> -CGI の表示部分は +CGI を表示する実体部分は FML::Command:: 以下のクラスに移動させました。 しかしながら、 @@ -166,7 +167,7 @@ FML::CGI::Admin::User → メニューの表示 </screen> などとなっていて、 -Mach のトランポリン機構のように、いったりきたりします。 +Mach のトランポリン機構のように、いったりきたりしています。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/internals/db_modules.sgml b/fml/doc/ja/tutorial/internals/db_modules.sgml index 200e7eb2..de4aec68 100644 --- a/fml/doc/ja/tutorial/internals/db_modules.sgml +++ b/fml/doc/ja/tutorial/internals/db_modules.sgml @@ -1,5 +1,5 @@ <!-- - $FML: db_modules.sgml,v 1.3 2005/06/25 15:11:33 fukachan Exp $ + $FML: db_modules.sgml,v 1.4 2008/08/18 13:21:42 fukachan Exp $ --> <!-- @@ -20,8 +20,8 @@ <para> MLドライバはメールのさまざまな要素をデータとして保存する必要がありま -す。しかしながら、同じ要素でも、永続的に持つべき場合と、一定時間経過後 -に捨てて良い扱いの場合とがあります。 +す。しかしながら、永続的に持つべきデータと、一定時間経過後に捨てて良い +データがあります。 </para> <para> @@ -44,18 +44,19 @@ message-id のデータを持っていますし、記事の分については重複しています。 <link linkend="threadtrack.db"> Mail::Message::DB </link> -のようなものとし、各種アダプタ層が頑張って欲しい。 -また、キャッシュの方ですが、現在では Tie::JournaledDir もしくは +のようなものとし、アダプタ層が差異を吸収して欲しい。 +キャッシュについては、現在のところ Tie::JournaledDir もしくは FML::Cache::Ring のいづれかが使われることとなっています。 </para> <para> -なお、メンバーリストなどの永続性の必要なデータに対するデータベースはき -ちんと DBMS (データベース管理システム)を使うべきです。 +なお、 +メンバーリストなどの永続性の必要なデータに対してデータベースを使う場合は、 +本来、きちんとした DBMS (データベース管理システム)を使うべきです。 </para> <para> -本章で述べるデータベースは +本章で述べるデータベースはそれとは異なり、 &fml8; が動作する上で内部的に使っているデータベースのことです。 </para> @@ -86,13 +87,16 @@ DBMS </para> <para> -ここでは &fml8; 内部で使っているモジュールの話をします。 +ここでは &fml8; 内部で使っているモジュールの解説をします。 </para> <para> &fml8; では、データの expire の仕方に応じて2つのデータ保持クラスを用 -意しています。それは「サイズを気にせず、時間を区切って expire するのか?」 -もしくは「使用する領域のサイズをある程度気にするか?」の2種類です。 +意しています。 +それは +「サイズを気にせず、時間を区切って expire するのか?」 +「使用する領域のサイズをある程度気にするか?」 +の2種類です。 </para> </sect1> @@ -123,14 +127,14 @@ DBMS <para> 参照する際は最後に追加したデータが取り出されます。 つまり、値は追加された値を last match で取り出しています。 -</para> - - +<footnote> <para> -逆に、それ以上の情報が必要な場合には、過去のログを追跡していくことがで -きます。 +原理上 last match 以上の情報抽出も可能です。 +過去のログを追跡していくことで、全データ一覧の生成ができます。 +また、 last match を first match に切替えることも出来ます。 +</para> +</footnote> </para> - <para> このクラスは、サイズを度外視して一定期間のあいだ記録しておきたいデータ @@ -180,23 +184,25 @@ get_all_values_as_hash_ref() FML::Cache::Ring </ulink> クラスは、主にサイズに上限を設けたいタイプのデータを蓄える場合に用 -います。expire の時間については気にしません。 -サイズで有無を言わさず切ってしまいます。 +います。時間(expire)については気にしません。 +時間ではなくデータのサイズで有無を言わさずデータを廃棄します。 </para> <para> -デバッグ等に用いるデータはこれで十分と考えます。 -普段は使わないデバッグのために、サイズを食われるのも嫌ですから。 +デバッグ等に用いるデータであれば、こういった扱いで十分と考えます。 +普段は使わないデバッグのために、 +ハードディスクを使われてしまうのは嫌ですから。 </para> <para> -このクラスは、あるディレクトリ(例: db/)の有限の複数のファイル群の中に -データを蓄えます。 -例えば db/ ディレクトリに 1 〜 100 の名前のファイルがつくられ、 +このクラスは、あるディレクトリ(例: db/)中に作られた有限個のファイル群 +の中にデータを蓄えています。 +たとえば db/ ディレクトリに 1 〜 100 の名前のファイルがつくられ、 順番に使われてきます。 -これらのファイルはぐるぐる回って使われ、上書きされます。 +これらのファイルはぐるぐる回って(1 2 3 4 ...)使われ、 +一周してしまう(100 を超えると)と、元に戻って上書き(1 2 3 4 ...)されます。 </para> diff --git a/fml/doc/ja/tutorial/operations/log.sgml b/fml/doc/ja/tutorial/operations/log.sgml index 2c5b73e2..d70918e3 100644 --- a/fml/doc/ja/tutorial/operations/log.sgml +++ b/fml/doc/ja/tutorial/operations/log.sgml @@ -1,5 +1,5 @@ <!-- - $FML: log.sgml,v 1.2 2004/10/06 09:07:41 fukachan Exp $ + $FML: log.sgml,v 1.3 2006/01/16 10:24:27 fukachan Exp $ --> @@ -23,7 +23,7 @@ </para> <para> -GUI からも log コマンドを実行可能です。 +GUI からもログを見ることが可能です(裏では log コマンドを実行している)。 </para> </sect1> @@ -35,8 +35,9 @@ GUI からも log コマンドを実行可能です。 </title> <para> -別のコマンドや独自の CGI などから &fml8; CUI を呼びだし処理をさせたい -場合に STDERR などでログを受けとりたいことがあります。 +&fml8; 以外の別のコマンドや独自の CGI などから +&fml8; CUI を呼びだし処理をさせたい場合に +STDERR などで &fml8; からのログを受けとりたいことがあります。 </para> <para> @@ -73,8 +74,8 @@ use_log_computer_output = yes <para> しかしながら、この変数を yes にすると、makefml や fml だけでなく、配送 -やコマンドメールのプログラムもSTDERRにログの出力をしてしまいますので注 -意が必要です。 +やコマンドメールのプログラムも STDERR にログを出力してしまいますので注 +意してください。 </para> <para> @@ -83,7 +84,7 @@ module のなかに押し込めてあります。このモジュール(デフォルトは FML::Log::Print::Simple)は config.cf で log_computer_output_engine を 変数を使えば変更可能です。出力を切替えたい場合は、自分用のモジュールを 作り、それを、この変数に指定してください。モジュールは -FML::Log::Print::Simpleを参考に、hack してみてください:) +FML::Log::Print::Simple を参考に、hack してみてください:) </para> </sect1> diff --git a/fml/doc/ja/tutorial/operations/recipes.log.sgml b/fml/doc/ja/tutorial/operations/recipes.log.sgml index ea654fcc..27100882 100644 --- a/fml/doc/ja/tutorial/operations/recipes.log.sgml +++ b/fml/doc/ja/tutorial/operations/recipes.log.sgml @@ -1,5 +1,5 @@ <!-- - $FML$ + $FML: recipes.log.sgml,v 1.1 2006/01/16 10:24:27 fukachan Exp $ --> <qandaset> @@ -36,8 +36,8 @@ <answer> <para> &fml8; はデフォルトではMLのホームディレクトリにあるログファイルにひ -たすら書き込んでいきます。MLが始まった時からの記録が全てここにありま -す。 +たすら書き込んでいきます。MLが始まった時からの記録がすべてここにあり +ます。 </para> <para> @@ -107,7 +107,7 @@ log_type = syslog <answer> <para> -fml8 の問題というより Unix コマンドの使い方の話です。 +&fml8; の問題というより Unix コマンドの使い方の話です。 </para> <para> @@ -133,7 +133,7 @@ fml8 の問題というより Unix コマンドの使い方の話です。 <answer> <para> -fml8 の問題というより Unix コマンドの使い方の話です。 +&fml8; の問題というより Unix コマンドの使い方の話です。 </para> <para> diff --git a/fml/doc/ja/tutorial/terms.sgml b/fml/doc/ja/tutorial/terms.sgml index 97325ffd..ba26f539 100644 --- a/fml/doc/ja/tutorial/terms.sgml +++ b/fml/doc/ja/tutorial/terms.sgml @@ -1,5 +1,5 @@ <!-- - $FML: terms.sgml,v 1.6 2005/09/30 13:22:44 fukachan Exp $ + $FML: terms.sgml,v 1.7 2008/08/16 00:26:19 fukachan Exp $ --> <sect1 id="terms"> @@ -79,7 +79,7 @@ </varlistentry> <varlistentry> - <term> fml4 </term> + <term> &fml4; </term> <listitem> <para> &fml4; シリーズのこと @@ -88,7 +88,7 @@ </varlistentry> <varlistentry> - <term> fml8 </term> + <term> &fml8; </term> <listitem> <para> &fml8; シリーズのこと。 diff --git a/fml/doc/ja/tutorial/troubleshoot/delivery.sgml b/fml/doc/ja/tutorial/troubleshoot/delivery.sgml index a336ac35..f1e077b7 100644 --- a/fml/doc/ja/tutorial/troubleshoot/delivery.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/delivery.sgml @@ -1,5 +1,5 @@ <!-- - $FML: delivery.sgml,v 1.1 2006/01/15 15:32:03 fukachan Exp $ + $FML: delivery.sgml,v 1.2 2008/08/19 07:11:02 fukachan Exp $ --> @@ -21,18 +21,27 @@ &fml8; がこれらの Message-Id: が同じメールを受けとった場合、 最初の一通だけが通過します。 </para> + +<para> +ここでいう「再送」は、&fml8; ではなく、 +そのあとの MTA による再送の可能性のほうが高いです。 +もちろん &fml8; 自体が MTA 化した今では &fml8; による再送もありえます。 +</para> </footnote> が二通届いたという場合、単なる再送かもしれません。 </para> <para> -メールは行方不明になるよりも重複して届いた方がましと考えられています。 +電子メール業界では +「行方不明になるくらいなら重複して届いた方がまし」 +と考えられています。 +データを失うくらいなら冗長でも重複して届けてしまう方が良いです。 よって MTA は配送が失敗した可能性のある場合、重複の可能性があってもあ えて再配送を行ないます。 </para> <para> -ただ何通も送られてくるようであれば何か異常があります。 +ただ何通も送られてくるようであれば、やはりシステムに何かかの異常があります。 </para> <para> @@ -43,12 +52,12 @@ <para> ML受信者の一部にだけ送られているなら &fml8; 以外の配送システムのどこ かが犯人です。 -一方、ML受信者全員に送られているなら &fml8; が犯人でしょう。fml のロ -グを調べて下さい。 +一方、ML受信者全員に送られているなら &fml8; が犯人でしょう。 +まずは &fml8; のログを調べて下さい。 </para> <para> -メールヘッダを解析する必要があります。 +どの場合でも、メールヘッダを解析する必要があります。 複数届くというメールのサンプルを手に入れて下さい。 ただし、この時メールヘッダが省略されていない完全な形のものを 手に入れないと意味がありません。 @@ -57,7 +66,7 @@ <sect2> <title> - メールの取り込み時の失敗 + メール受信時の失敗 </title> <para> @@ -92,7 +101,7 @@ Received: by サーバB 時刻B Received: by サーバA 時刻A </screen> なら B と C の間で問題があります -(まずまちがいなく B が犯人 )。 +(まず、まちがいなく B が犯人 )。 </para> </sect2> diff --git a/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml b/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml index d3039ddc..eed97ae0 100644 --- a/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml @@ -1,5 +1,5 @@ <!-- - $FML: filesystem.sgml,v 1.5 2005/06/25 15:11:38 fukachan Exp $ + $FML: filesystem.sgml,v 1.6 2008/08/19 07:11:02 fukachan Exp $ --> @@ -9,9 +9,10 @@ </title> <para> -基本的には、MTAによる再送処理が行なわれるように &fml8; が異常終了するか、 -&fml8; 自身が頑張って配送処理を行なうか?の処理となります。 -&fml8; 自身が頑張る場合、 +ファイルの読み書きでエラーが起きた場合、 +MTA による再送処理が行なわれるように「 &fml8; が異常終了する」か、 +「&fml8; 自身が配送処理を行なうか?」の処理が行なわれます。 +&fml8; 自身が頑張って配送を終らせようとした場合には、 ログファイルやサマリファイルには欠落が出る可能性があり得ますが、 投稿された記事の内容が失われることだけはないつもりです。 </para> @@ -30,7 +31,7 @@ <para> &fml8; は STDIN から読みこんだメールを一度ディスクに書きます。 この書き込みが成功すれば、処理を進めます。失敗した場合、 -MTA に再挑戦してもらうため、exit(EX_TEMPFAIL)でプロセスを異常終了させます。 +MTA に再挑戦してもらうため、exit(EX_TEMPFAIL) でプロセスを異常終了させます。 くわしくは <link linkend="message.queue.incoming"> <xref linkend="message.queue.incoming"> @@ -39,10 +40,10 @@ MTA に再挑戦してもらうため、exit(EX_TEMPFAIL)でプロセスを異常終了させます。 </para> <para> -このとき、incoming queue には中途半端にメールが書き込まれたファイルが -残り得ます。 -異常終了時にもこのファイルを消すようにしていますが、 -万が一残ってしまっても +このとき、&fml8; の +incoming queue には中途半端にメールが書き込まれたファイルが残り得ます。 +異常終了時には、このファイルを消すようにしていますが、 +万が一残ってしまっても、 あとでキュー管理システムにより削除されます。 正確には古くなった incoming queue のファイルを消す処理が定期的に 行なわれるため、その時に消去される仕組みです。 @@ -59,9 +60,9 @@ MTA に再挑戦してもらうため、exit(EX_TEMPFAIL)でプロセスを異常終了させます。 <para> きちんと新しい記事番号(+1されたもの)がシークエンスファイル(seq)に 書き込めたか(ファイルに書いて、閉じて、再び開いて、再度読みこんでみる) -を確認し、成功していれば、処理を進めます。 +を確認し、成功していれば、その先へ処理を進めます。 失敗していた場合、exit(EX_TEMPFAIL) で終了し、 -MTA から &fml8; を再呼び出ししてもらうようにします。 +MTA から &fml8; を再呼び出してもらうようにします。 </para> <para> @@ -71,9 +72,9 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 <caution> <para> -記事番号は更新してしまったので、この処理以降、exit(EX_TEMPFAIL) -で終了してはいけません。 -つまり重複するので MTA に再配送を依頼してはいけません。 +なお、記事番号を更新できた「この処理」以降、 +exit(EX_TEMPFAIL) で終了するようにプログラムを書いてはいけません。 +重複配送がおきてしまうので MTA に再配送を依頼してはいけないのです。 </para> </caution> @@ -95,8 +96,8 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 記事の書き込みはできませんが、オリジナルのメールは既にディスクに書き込 まれています。記事の方は、ヘッダ部分には色々と追加がありますが、本文は オリジナルメールのものと一緒です。そこで、incoming queue ディレクトリ -から「spool/割り当てられた記事番号」ファイルへlink(2)することで、記事 -の内容だけは保存するようにします。 +から「spool/割り当てられた記事番号」ファイルへ link(2) することで、記 +事の内容だけは保存するようにします。 <footnote> <para> さらに、記事ファイルにヘッダをつけてあげるコマンドが別途あるとよいでしょ @@ -107,7 +108,8 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 <para> 配送するべき記事をディスクに保存することができませんでしたが、 -メモリ上に配送するべき記事はあるので、記事の配送処理をこころみます。 +メモリ上に配送するべき記事を確保してあるので、 +それを使って記事の配送処理をこころみます。 </para> <para> @@ -115,6 +117,12 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 程でエラーが生じた場合、配送は中途半端に終了となります。 </para> +<para> +ただ、ディスクに記録は残っているので、管理者の人、よろしくおねがいしま +す(まぁ、それは最悪の場合で、たいていは投稿者にもう一度再送をおねがい +するほうが簡単でしょう)。 +</para> + </sect2> @@ -124,8 +132,8 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 </title> <para> -配送するべき内容を( outgoing )キューに書き、書き込み成功後に配送処理が -行なわれます。 +配送するべき内容を( outgoing )キューに書き、 +書き込み成功後にはじめて配送処理が行なわれます。 </para> <para> @@ -136,7 +144,7 @@ MTA から &fml8; を再呼び出ししてもらうようにします。 トリッキーな拡張が必要ではありますが、ちゃんとキューイングをフェイクで きる仕組みが必要でしょう。たとえば、別の(のちに起動された)プロセスが、 この記事のメールキューを再生成して配送キューにいれる試みをするように拡 -張するなどと、するべきなのでしょう。この部分は未実装です。 +張するなどと、”本来は”するべきなのでしょう。この部分は未実装です。 </para> </footnote> </para> diff --git a/fml/doc/ja/tutorial/troubleshoot/recipes.address.sgml b/fml/doc/ja/tutorial/troubleshoot/recipes.address.sgml index c75e7e44..0d6a5f19 100644 --- a/fml/doc/ja/tutorial/troubleshoot/recipes.address.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/recipes.address.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.address.sgml,v 1.1 2006/01/17 04:46:04 fukachan Exp $ + $FML: recipes.address.sgml,v 1.2 2006/01/19 04:34:38 fukachan Exp $ --> @@ -13,17 +13,18 @@ <answer> <para> -fmladdr が /etc/passwd で定義されているユーザと aliases ファイルに設定 +fmladdr コマンドが +/etc/passwd で定義されているユーザと aliases ファイルに設定 されている全アドレスを表示してくれます。 <screen> -% fmladdr +% /usr/local/bin/fmladdr </screen> </para> <para> <warning> <para> -fmladdr と fmlalias の違いは、一覧に +fmladdr コマンドと fmlalias コマンドの違いは、一覧に ユーザ( /etc/passwd で定義されているもの )を含むか否か?という点です。 fmladdr は含みます、fmlalias は含みません。 fmlalias は純粋に alias 群を表示します。 @@ -45,17 +46,17 @@ fmlalias は純粋に alias 群を表示します。 <answer> <para> -fmlalias が aliases ファイル(群)に設定されている全アドレスを表示してく -れます。 +fmlalias コマンドが +aliases ファイル(群)に設定されている全アドレスを表示してくれます。 <screen> -% fmlalias +% /usr/local/bin/fmlalias </screen> </para> <para> <warning> <para> -fmladdr と fmlalias の違いは、一覧に +fmladdr コマンドと fmlalias コマンドの違いは、一覧に ユーザ( /etc/passwd で定義されているもの )を含むか否か?という点です。 fmladdr は含みます、fmlalias は含みません。 fmlalias は純粋に alias 群を表示します。 @@ -71,25 +72,27 @@ fmlalias は純粋に alias 群を表示します。 <question> <para> -メンバーが所属しているMLをすべて表示したい +あるメンバーが所属しているMLをすべて表示したい </para> </question> <answer> <para> -grep と言いたいところですが、grep じゃだめでしょう。メンバーリストがファ -イルとは限らないので、全て出力させてから grep してみないとわかりません。 +「grep コマンドを使え!」と言いたいところですが、 +grep では駄目だめでしょう。 +というのは、メンバーリストがファイルとは限らないので、 +全て出力させてから grep してみないとわかりません。 たとえば <screen> -% fml MLアドレス list|grep アドレス +% /usr/local/bin/fml MLアドレス list|grep アドレス </screen> を各MLについて繰り返すという作業になります。 </para> <para> -これでも面倒かなぁ、よっぽど繁雑にする作業であればコマンドを用意しても -良いのですが、はてさて… +これでも面倒かなぁ、よっぽどひんぱんに行なう作業というのであれば、 +それ用のコマンドを用意しても良いのですが、はてさて? </para> </answer> diff --git a/fml/doc/ja/tutorial/troubleshoot/recipes.command.sgml b/fml/doc/ja/tutorial/troubleshoot/recipes.command.sgml index d67d575f..fc2d7db3 100644 --- a/fml/doc/ja/tutorial/troubleshoot/recipes.command.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/recipes.command.sgml @@ -1,5 +1,5 @@ <!-- - $FML$ + $FML: recipes.command.sgml,v 1.1 2006/01/18 14:56:35 fukachan Exp $ --> @@ -8,7 +8,7 @@ <question> <para> -help を取り寄せると化けています +help を取り寄せると文字化けしています </para> </question> diff --git a/fml/doc/ja/tutorial/troubleshoot/recipes.message.sgml b/fml/doc/ja/tutorial/troubleshoot/recipes.message.sgml index 143c124e..d238f463 100644 --- a/fml/doc/ja/tutorial/troubleshoot/recipes.message.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/recipes.message.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.message.sgml,v 1.1 2006/01/16 10:24:27 fukachan Exp $ + $FML: recipes.message.sgml,v 1.2 2008/08/19 07:11:02 fukachan Exp $ --> @@ -62,7 +62,8 @@ </para> <para> -ふつう、その宛先は Reply-To: なければ From: が使われているはずです。 +ふつう、そのテンプレートで表示される宛先は元メールの +Reply-To: なければ From: が使われているはずです。 メールリーダで加工されていないヘッダを表示してどうなっているかを確認し てもらって下さい。 </para> @@ -139,8 +140,8 @@ References: や In-Reply-To: がついていません <para> ただ元々のメールが特殊で一部の人だけ読めないという可能性(たとえば M$ -星人の人たちだけで勝手に見えているようなメールとメールリーダの組)もあ -るので、一概に読む側が悪いとも言い切れない気がしますが… +星人の人たちだけで勝手に見えているようなメールとメールリーダの組合わせ) +もありうるので、一概に読む側が悪いとも言い切れない気がしますが… </para> </answer> diff --git a/fml/doc/ja/tutorial/troubleshoot/recipes.sgml b/fml/doc/ja/tutorial/troubleshoot/recipes.sgml index b20df799..e2775210 100644 --- a/fml/doc/ja/tutorial/troubleshoot/recipes.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/recipes.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.sgml,v 1.4 2006/01/18 14:56:35 fukachan Exp $ + $FML: recipes.sgml,v 1.5 2008/08/19 07:11:02 fukachan Exp $ --> @@ -14,10 +14,10 @@ fml をインストールしたホスト上から投稿できない <answer> <para> -(1) フィルタで弾かれている可能性があります。fml のログを見て下さい。 -通常 Mail コマンドは MIME ヘッダを生成しませんので、&fml8; では不正な -メールとみなされます(注: デフォルトの &fml4; では、そこまで見てないの -でエラーにならなかったはずです)。 +(1) &fml8; のフィルタで弾かれている可能性があります。&fml8; のログを見 +て下さい。通常 Mail コマンドは MIME ヘッダを生成しませんので、&fml8; +では不正なメールとみなされます(注: デフォルトの &fml4; では、そこまで +見てないのでエラーにならなかったはずです)。 </para> <para> @@ -36,8 +36,8 @@ fml をインストールしたホスト上から投稿できない 生成するのは Mail コマンド(もしくは Mail コマンドからメールを渡された MTA )の役目です。ただ、こういった場合に From: の部分が「ユーザ」だけと か「ユーザ@ FQDN 」だったりします。きちんと「ユーザ@正しいドメイン」 -の形に生成されるようになっていないと &fml8; としては正当なユーザには見 -えません。 +の形に生成されるようになっていないと &fml8; としては正当なユーザに見え +ません(そしてフィルタで弾かれます)。 </para> <para> @@ -53,22 +53,32 @@ MTA )の役目です。ただ、こういった場合に From: の部分が「ユーザ」だけと <question> <para> -CGI で ML を作成したがメールサーバに反映されていない +CGI でMLを作成したがメールサーバに反映されていない </para> </question> <answer> <para> ログを見てみて下さい。 +</para> + +<para> まず WWW サーバ側に出力されているログを確認して下さい。 fml からのエラーメッセージが記録されている可能性があります。 <screen> +例: + /usr/local/apache/logs/error_log /usr/local/apache/logs/suexec_log </screen> +</para> + +<para> +/var/spool/ml 以下も確認してみましょう。 MLのホームディレクトリすら出来ていないなら (そのMLのログファイルがありませんから) -これらのログファイルを解析するしか方法がありません。 +WWW サーバの処理の段階で何かがおかしいです。 +まずは WWW サーバのログファイルを解析する必要があります。 </para> <para> @@ -93,7 +103,7 @@ fml からのエラーメッセージが記録されている可能性があります。 <para> MTA 間での再送エラーは MTA が再配送を試みます。 Sendmail の歴史的なパラメータが五日間でしたので、 -五日間再配送を試みるくらいの MTA が多いと思います。 +「五日間は再配送を試みる」 MTA が多いと思います。 </para> <para> @@ -105,8 +115,8 @@ Sendmail の歴史的なパラメータが五日間でしたので、 <para> 再送のタイミングは次に &fml8; の何らかのプログラムが起動された時です。 -そのため5分後とか確約は出来ません。 -5分ごとに再送を試みるという場合には、 +そのため5分後などと確約は出来ません。 +5分ごとに再送を試みたい場合には、 cron で makefml ML flush を実行するようにしてみてください。 </para> @@ -115,7 +125,7 @@ cron で makefml ML flush を実行するようにしてみてください。 <link linkend="delivery"> <xref linkend="delivery"> </link> -も参照して下さい。 +も参照してください。 </para> </answer> @@ -136,7 +146,7 @@ cron で makefml ML flush を実行するようにしてみてください。 <link linkend="troubleshoot.delivery.duplication"> <xref linkend="troubleshoot.delivery.duplication"> </link> -を参照。 +を参照してください。 </para> </answer> @@ -156,7 +166,7 @@ cron で makefml ML flush を実行するようにしてみてください。 <link linkend="troubleshoot.delivery.duplication"> <xref linkend="troubleshoot.delivery.duplication"> </link> -を参照。 +を参照してください。 </para> </answer> @@ -212,13 +222,13 @@ Cc: rudo test </screen> -というメールを投稿したとすると rudo には一通届くだけです。MTA が elena -MLの受信者を調べ rudo 宛の重複分を取り除くからです。 +というメールを投稿したとすると rudo には一通届くだけです。 +MTA が elena MLの受信者を調べ rudo 宛の重複分を取りのぞいています。 </para> <para> elena MLを fml に変更すると、 -この重複削除の効果はなくなります。そのため、 +この MTA による重複削除の効果がなくなります。そのため、 elena ML経由 rudo 宛にとどく分と rudo 宛に直接配送されてくる分の2つになるというわけです。 </para> @@ -265,14 +275,22 @@ fml8 は flock(2) 必須ですので、fml8 は動きません(たぶん動くけど動作が <answer> <para> -ということは起こらないように作ってあります(記事番号がアップデートでき -ないならそもそも &fml8; の処理が途中で止まるようになっている)。 +&fml4; と異なり &fml8; では、そういうことは起こらないように作ってあります。 +記事番号がアップデートできないなら、 +そもそも &fml8; の処理が途中で止まるようになっています。 </para> <para> -ロジックに抜けがあって起きる可能性があるかもしれませんが、実際にそうい -う現象がおきてみないとよくわかりません。いまのところ、ないと信じています。 +このロジックに抜けがあって起きる可能性があるかもしれませんが、実際にそ +ういう現象がおきてみないとよくわかりません。 </para> + +<para> +&fml8; の耐久シミュレーションでは発生しませんでした。 +きちんとロジックは動作しています。 +いまのところ、大丈夫と信じています。 +</para> + </answer> </qandaentry> @@ -289,7 +307,7 @@ fml8 は flock(2) 必須ですので、fml8 は動きません(たぶん動くけど動作が <answer> <para> -「間違えて rmml してしまった!」ということなら、 +「間違えて makefml rmml を実行してしまった!」ということなら、 reviveml コマンドで復活できます。 </para> @@ -331,9 +349,9 @@ reviveml コマンドで復活できます。 <para> あえていえば、ねんのため記録している受信したメールおよび送信したメール -のログである var/mail/incoming や var/mail/outgoing くらいでしょう。ま -た過去のログが不要であれば log を消すという案もありますが、あまりおす -すめできません。 +のログである各MLのホームにある var/mail/incoming や +var/mail/outgoing くらいでしょう。また過去のログが不要であれば log を +消すという案もありますが、あまりおすすめできません。 </para> </answer> diff --git a/fml/doc/ja/tutorial/troubleshoot/recipes.version.sgml b/fml/doc/ja/tutorial/troubleshoot/recipes.version.sgml index ce4f5313..61b67f43 100644 --- a/fml/doc/ja/tutorial/troubleshoot/recipes.version.sgml +++ b/fml/doc/ja/tutorial/troubleshoot/recipes.version.sgml @@ -1,20 +1,21 @@ <!-- - $FML: recipe.version.sgml,v 1.5 2004/10/06 09:07:43 fukachan Exp $ + $FML: recipes.version.sgml,v 1.1 2006/01/17 04:46:04 fukachan Exp $ --> <qandaentry> <question> <para> -fml のバージョンが知りたい。 +使っている fml のバージョンが知りたい。 </para> </question> <answer> <para> -fmlconf が各MLの変数一覧を表示してくれます。どのML(実は適当なML -でも良い)を指定しても良いので、fmlconf を実行して下さい。例えば +fmlconf コマンドが各MLの変数一覧を表示してくれます。どのML(実は適 +当なMLでも良い)を指定しても良いので、fmlconf を実行して下さい。 +たとえば <screen> -% fmlconf test |grep fml_version +% /usr/local/bin/fmlconf test |grep fml_version fml_version = fml-devel current-20021029 </screen> </para> @@ -55,3 +56,27 @@ Sendmail のバージョンが知りたい。 </para> </answer> </qandaentry> + + +<qandaentry> +<question> +<para> +qmail のバージョンが知りたい。 +</para> +</question> + +<answer> + +<para> +答えは、たぶん 1.03 + よく分からないパッチ群です。 +インストールした人なり、 +使ったパッケージシステムの中をのぞきまくるかしてください。 +</para> + +<para> +一般論は存在しません。 +DJB 教は「パッチをあてろ!」という運用を考えない文化なのでしょうがないです。 +</para> + +</answer> +</qandaentry> diff --git a/fml/doc/ja/tutorial/usage/chaddr.sgml b/fml/doc/ja/tutorial/usage/chaddr.sgml index 070d28ce..46984feb 100644 --- a/fml/doc/ja/tutorial/usage/chaddr.sgml +++ b/fml/doc/ja/tutorial/usage/chaddr.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chaddr.sgml,v 1.4 2005/06/25 15:11:38 fukachan Exp $ + $FML: chaddr.sgml,v 1.5 2008/08/19 07:11:02 fukachan Exp $ --> @@ -16,10 +16,17 @@ chaddr 旧アドレス 新アドレス </screen> と書いたメールを elena-ctl@fml.org に送って下さい。 +</para> + +<para> 旧アドレス、新アドレス -どちらのアドレスから送っても構いません。 -confirmation が返送されます。 -その confirmation に返答すると実際にアドレスが変更されます。 +どちらのアドレスから送ってもかまいません。 +</para> + +<para> +両方のアドレスに confirmation が返送されます。 +その confirmation に返答してください。 +本人であると確認がとれれば、実際にアドレスが変更されます。 </para> </sect1> diff --git a/fml/doc/ja/tutorial/usage/chapter.onhost.sgml b/fml/doc/ja/tutorial/usage/chapter.onhost.sgml index f2c4eec3..0ebd2a17 100644 --- a/fml/doc/ja/tutorial/usage/chapter.onhost.sgml +++ b/fml/doc/ja/tutorial/usage/chapter.onhost.sgml @@ -1,13 +1,20 @@ <!-- - $FML: chapter.onhost.sgml,v 1.17 2008/08/19 03:22:18 fukachan Exp $ + $FML: chapter.onhost.sgml,v 1.18 2008/08/19 07:11:02 fukachan Exp $ --> <chapter id="usage.onhost"> <title> - MLサーバのホスト上でコマンドを使うと(ML管理者に)できること + MLサーバ上でコマンドを使うと(ML管理者に)できること </title> +<para> +「MLサーバ上でコマンドを使う」というのは、 +「MLサーバ」へ SSH (Secure Shell) でログインし、 +makefml (/usr/local/bin/makefml) コマンドもしくは +fml (/usr/local/bin/fml) コマンドを使い、 +&fml8; の設定変更をするという操作を意味しています。 +</para> <para> makefml の基本的な使い方は &fml4; の makefml と同様です。 @@ -20,7 +27,7 @@ makefml の基本的な使い方は &fml4; の makefml と同様です。 <link linkend="changes.cui"> 『<xref linkend="changes.cui">』 </link> -を参照して下さい。 +を参照してください。 </para> @@ -30,16 +37,22 @@ makefml の基本的な使い方は &fml4; の makefml と同様です。 </title> <para> -makefml を使う操作は confirmation が不要です。makefml を実行できる時点 -で特権的なユーザのはずだからです。たとえば、メンバーの登録は、コマンド -を実行すると、そのまま処理が行なわれます。 +makefml を使う操作は「confirmation が不要」です。たとえば、メンバーの +登録は、コマンドを実行すると、そのまま処理が行なわれます。これが許され +るのは makefml を実行できる時点で、つまりそのサーバにログインできる時 +点で、特権的なユーザであることが認証済みだからです。 </para> <para> -MLサーバのホストに入ることができる(例: slogin してシェルが取れる)人 -は、MLにとって最強の権限を持つ人を意味します。ファイルを直接編集する -ことで、どんなことでもできるわけですから、無敵です。 -だから特権的な操作であるわけです。 +「正しくサーバが構築されている」ことが大前提です +(これは &fml8; とは直接の関係がないので説明しません)。 +</para> + +<para> +MLサーバのホストに入ることができる(例: ssh してシェルが取れる)人は、 +MLにとって最強の権限を持つ人を意味します。ファイルを直接編集すること +で、どんなことでもできるわけですから、無敵です。だから特権的な操作であ +るわけです。 </para> <para> @@ -49,19 +62,20 @@ makefml を使う操作は confirmation が不要です。makefml を実行できる時点 <para> そのためファイルの直接編集などはせずに、通常は「makefml ( -/usr/local/bin/makefml )コマンドを使うことで fml の設定を変更して下さ -い」という運用ポリシーが推奨されています。もちろんファイルを編集しても -かまいませんが、その場合、内部構造などをよく理解してからにしてください。 +/usr/local/bin/makefml )コマンドを使うことで &fml8; の設定を変更してく +ださい」という運用ポリシーが推奨されています。もちろんファイルを編集し +てもかまいませんが、その場合、内部構造などをよく理解してからにしてくだ +さい。 </para> <para> -なお、fml コマンドは引数の順番の異なる makefml です。 +なお、fml コマンドは引数の順番の異なる makefml 同等品です。 <screen> makefml コマンド ML名 オプション fml ML名 コマンド オプション </screen> コマンドの中身/動作は同じですので、 -シンタックスの好き嫌いで、どちらかを選んで使ってもらえばよいでしょう。 +シンタックスの好き嫌いで、どちらかを選んで使ってください。 </para> </sect1> @@ -131,6 +145,7 @@ fmlalias [-n] fmldoc モジュール名 fmlconf [-n] $ml </screen> +(ん〜 fmlconf だけ意味が違うか…) </para> </sect2> @@ -147,7 +162,11 @@ PGP / GPG コマンドの操作コマンド(例: fmlpgp)が、これにあたります。 </para> <para> -コマンドラインオプションなどを一切考えない特殊なモードを作り込めば +実は、下請けのコマンドに渡すオプションを指定する必要があるので、 +オプション解析の段階で困ってしまいます。 +&fml8; のオプションは解析し、 +下請けのコマンドに渡すオプションは解析していはいけません。 +「コマンドラインオプションなどを一切考えない特殊なモード」を作り込めば makefml に移すことが出来ないわけではないはずですが、こまりました。 </para> @@ -213,9 +232,10 @@ libexec/ と bin/ にあるプログラム群(.cgi は除く)すべてに共通する §.usage.fmldoc; §.usage.fmlhtmlify; + <sect1 id="usage.recipes"> <title> - Recipes + レシピ’s </title> <!-- TABLE_OF_RECIPES --> @@ -223,4 +243,5 @@ libexec/ と bin/ にあるプログラム群(.cgi は除く)すべてに共通する </sect1> + </chapter> diff --git a/fml/doc/ja/tutorial/usage/command.sgml b/fml/doc/ja/tutorial/usage/command.sgml index 1e84d650..4c212657 100644 --- a/fml/doc/ja/tutorial/usage/command.sgml +++ b/fml/doc/ja/tutorial/usage/command.sgml @@ -1,5 +1,5 @@ <!-- - $FML: command.sgml,v 1.10 2005/06/25 15:11:38 fukachan Exp $ + $FML: command.sgml,v 1.11 2008/08/19 07:11:02 fukachan Exp $ --> @@ -10,28 +10,32 @@ <para> fml にメールで文字列(コマンド)を送り込むことで、fml に特定の処理をして -もらうことができます。例えば、メンバーの登録、削除や、過去の記事を取り -寄せるなどの処理が代表例です。 +もらうことができます。たとえば、メンバーの登録や削除、過去の記事を取り +寄せるといった処理です。 </para> <important> + <para> -fml の基本的な使い方は CUI (makefml or fml コマンド) を使った操作です。 +fml の基本的な使い方は CUI (makefml もしくは fml コマンド) を使った操 +作です。 </para> <para> -makefml を使えるということは、MLサーバのホストのシェルが取れている、 -つまり SSH なりでそのホストに入る際にMLの管理者であると認証されてい -るわけです。よって、特権的な操作といえます。 +「makefml を使える」状況とは、すでにMLサーバのホストのシェルが取れて +いることを意味します。つまり SSH (Secure Shell) なりでそのホストに入れ +る権限がある時点で、そのサーバの管理者であると認証済みです。よって、す +でに「MLの管理者」として特権的な操作が許される状況といえます。 </para> <para> -一方、コマンドメールなどで一般ユーザに提供する機能には、いろいろな制限 -をかけるべきです。実際、ユーザに提供されているコマンド操作は makefml -で可能な操作のごく一部です。つまり、コマンドメールとは makefml のコマ -ンドの一部を使えなくし、適宜 confirmation を付け加えたコマンド体系と考 -えられます。 +一方、コマンドメールなどで「一般ユーザに提供する機能」には、いろいろな +制限をかけるべきです。実際、ユーザに提供されているコマンド操作は +makefml で可能な操作のごく一部です。つまり、コマンドメールとは makefml +のコマンドの一部を使えなくし、適宜 confirmation を付け加えたコマンド体 +系と考えられます。 </para> + </important> @@ -41,8 +45,12 @@ makefml を使えるということは、MLサーバのホストのシェルが取れている、 </title> <para> +elena@fml.org MLを例にとりましょう。 +</para> + +<para> elena@fml.org MLの場合、 -コマンドメールを elena-ctl@fml.org に送信してください。 +コマンドメールを elena-ctl@fml.org に送信してもらうことになります。 メールは MTA が受け、最終的に MTA は /usr/local/libexec/fml/command というプログラムを実行します。 @@ -56,6 +64,11 @@ command はメールを標準入力から受けとり、 一通のメール ( MIME/Multipart )にまとめて返送 しています。 </para> + +<para> +複数のコマンドの結果すべてを一通のメールに合体しています。 +処理の結果も、送り返すべき記事なども一通です。 +</para> </warning> </sect2> @@ -79,4 +92,5 @@ CGI でのコマンド処理 </sect2> + </sect1> diff --git a/fml/doc/ja/tutorial/usage/fml.sgml b/fml/doc/ja/tutorial/usage/fml.sgml index 1c31cbf9..20c9889a 100644 --- a/fml/doc/ja/tutorial/usage/fml.sgml +++ b/fml/doc/ja/tutorial/usage/fml.sgml @@ -1,5 +1,5 @@ <!-- - $FML: fml.sgml,v 1.1 2003/01/05 08:03:23 fukachan Exp $ + $FML: fml.sgml,v 1.2 2004/10/06 09:07:43 fukachan Exp $ --> @@ -10,8 +10,8 @@ <para> 引数の順が異なることを除けば、 -fml (/usr/local/bin/fml) -は makefml と全く同じです。 +fml (/usr/local/bin/fml) コマンドは +makefml コマンドと全く同じです。 単に、引数順の好き嫌いで使い分けて下さい。 </para> diff --git a/fml/doc/ja/tutorial/usage/fmlconf.sgml b/fml/doc/ja/tutorial/usage/fmlconf.sgml index 17187b19..c6c70c13 100644 --- a/fml/doc/ja/tutorial/usage/fmlconf.sgml +++ b/fml/doc/ja/tutorial/usage/fmlconf.sgml @@ -1,5 +1,5 @@ <!-- - $FML: fmlconf.sgml,v 1.4 2002/07/28 06:26:58 fukachan Exp $ + $FML: fmlconf.sgml,v 1.5 2004/10/06 09:07:44 fukachan Exp $ --> @@ -11,7 +11,7 @@ <para> fmlconf (/usr/local/bin/fmlconf) は引数にML名をとり、そのMLの変数一覧を表示します。 --n をつけるとデフォルトと異なる変数のみを表示します。 +-n をつけるとデフォルト値と異なる変数とその値一覧を表示します。 </para> <para> diff --git a/fml/doc/ja/tutorial/usage/guide.sgml b/fml/doc/ja/tutorial/usage/guide.sgml index 0c46afa1..c97dcd47 100644 --- a/fml/doc/ja/tutorial/usage/guide.sgml +++ b/fml/doc/ja/tutorial/usage/guide.sgml @@ -1,5 +1,5 @@ <!-- - $FML: guide.sgml,v 1.3 2005/06/25 15:11:39 fukachan Exp $ + $FML: guide.sgml,v 1.4 2008/08/19 07:11:02 fukachan Exp $ --> @@ -21,4 +21,8 @@ guide という名前のファイルがMLのホームディレクトリにあれば、そのファ イルが送り返されます。 </para> +<para> +注: テンプレートのままでは、たいした情報は送られません。 +</para> + </sect1> diff --git a/fml/doc/ja/tutorial/usage/makefml.sgml b/fml/doc/ja/tutorial/usage/makefml.sgml index 9a96f2f6..dda059ad 100644 --- a/fml/doc/ja/tutorial/usage/makefml.sgml +++ b/fml/doc/ja/tutorial/usage/makefml.sgml @@ -1,5 +1,5 @@ <!-- - $FML: makefml.sgml,v 1.11 2005/06/25 15:11:39 fukachan Exp $ + $FML: makefml.sgml,v 1.12 2008/08/19 07:11:02 fukachan Exp $ --> @@ -16,8 +16,8 @@ ML名は@抜きの場合、デフォルトのドメインとなり、アドレスを完全に指定 すればバーチャルドメインまで含めて makefml がよろしくがんばることになっ ています。もちろんデフォルトかバーチャルか否かにかかわらず、常に@ドメ -インつきで指定してかまいませんし、その方が良いでしょう。 -例えばデフォルトドメイン(fml.org)であれば、次の二つは同じ意味です。 +インつきで指定してかまいません。むしろ、その方が良いでしょう。 +たとえばデフォルトドメイン(fml.org)であれば、次の二つは同じ意味です。 <screen> % makefml newml elena % makefml newml elena@fml.org @@ -29,7 +29,7 @@ <link linkend="setup.newml"> <xref linkend="setup.newml"> </link> -を参照して下さい。 +を参照してください。 </para> </sect1> @@ -48,7 +48,7 @@ ML名は @ 抜きの場合デフォルトのドメイン、 アドレスを完全に指定すればバーチャルドメインまで含めて makefml が自動的に処理できます。 -例えばデフォルトドメイン(fml.org)であれば、次の二つは同じ意味です。 +たとえばデフォルトドメイン(fml.org)であれば、次の二つは同じ意味です。 <screen> % makefml rmml elena % makefml rmml elena@fml.org @@ -59,7 +59,7 @@ makefml が自動的に処理できます。 できるだけ newml の反対の動作をします。 ホームディレクトリを消すとか MTA の alias の該当エントリを消すといったことなども -可能な操作は全て頑張ります。 +可能なかぎり全て行ないます。 </para> </sect1> @@ -111,7 +111,8 @@ resign signoff unsubscribe </screen> -どれを使っても同じです。 +どれを使っても同じです +(注: BSD 派と System V 派どちらの流儀でも良いように :-)。 </para> @@ -259,7 +260,7 @@ xxx_maps は <para> makefml を使える管理者が一番偉い人です。当然:-)、 makefml を使える管理者は、 -(より権限の弱い)リモート管理のための諸設定を行なうことができます。 +「(より権限の弱い)リモート管理」のための諸設定を行なうことができます。 </para> </warning> @@ -273,7 +274,7 @@ makefml を使える管理者は、 ML名は @ 抜きの場合デフォルトのドメイン、 アドレスを完全に指定すればバーチャルドメインまで含めて makefml がよろしくがんばります。 -例えば +たとえば <screen> % su fml % makefml addadmin elena rudo@nuinui.net @@ -319,7 +320,7 @@ byepriv ML名は @ 抜きの場合デフォルトのドメイン、 アドレスを完全に指定すればバーチャルドメインまで含めて makefml がよろしくがんばります。 -例えば +たとえば <screen> % su fml % makefml addmoderator elena rudo@nuinui.net diff --git a/fml/doc/ja/tutorial/usage/post.sgml b/fml/doc/ja/tutorial/usage/post.sgml index 6f2ff06a..9597a0c1 100644 --- a/fml/doc/ja/tutorial/usage/post.sgml +++ b/fml/doc/ja/tutorial/usage/post.sgml @@ -1,5 +1,5 @@ <!-- - $FML: post.sgml,v 1.10 2005/06/25 15:11:39 fukachan Exp $ + $FML: post.sgml,v 1.11 2008/08/19 07:11:02 fukachan Exp $ --> @@ -11,6 +11,9 @@ <para> elena@fml.org ML(fml.org の elena ML)への投稿は、 普通にメールを elena@fml.org に送信することです。 +</para> + +<para> メールは MTA が受け、最終的に MTA は /usr/local/libexec/fml/distribute というコマンドを実行します。 @@ -95,9 +98,10 @@ symlink(2) で結ばれ、同一のファイルです。 </para> <para> -@INC を設定した後、loader (/usr/local/libexec/fml/distribute の実体) -は FML::Process::Switch をロードし、$0 を調べます。その名前から自分の -仕事は配送処理だと知ります。 +@INC (Perl のライブラリサーチパス)を設定した後、 +loader (/usr/local/libexec/fml/distribute の実体) +は FML::Process::Switch をロードし、$0 (プロセス名)を調べます。 +その名前から自分の仕事は「配送処理」だと知ります。 </para> <para> diff --git a/fml/doc/ja/tutorial/usage/recipes.onhost.sgml b/fml/doc/ja/tutorial/usage/recipes.onhost.sgml index 036c3eef..07958da1 100644 --- a/fml/doc/ja/tutorial/usage/recipes.onhost.sgml +++ b/fml/doc/ja/tutorial/usage/recipes.onhost.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.onhost.sgml,v 1.2 2008/08/19 07:11:03 fukachan Exp $ + $FML: recipes.onhost.sgml,v 1.3 2008/08/23 00:38:21 fukachan Exp $ --> <qandaset> @@ -75,7 +75,7 @@ CGI でも同様です。rmml で消していれば reviveml で復活できます。 <para> もちろん「rm -fr /var/spool/ml/elena」などとしてMLを消去してしまって -いれば元に戻す方法ありません.バックアップから戻して下さい(こまめにバッ +いれば元に戻す方法ありません。バックアップから戻して下さい(こまめにバッ クアップをとりましょう)。 </para> diff --git a/fml/doc/ja/tutorial/usage/recipes.user.sgml b/fml/doc/ja/tutorial/usage/recipes.user.sgml index 6eb1d6e5..1dbd36d7 100644 --- a/fml/doc/ja/tutorial/usage/recipes.user.sgml +++ b/fml/doc/ja/tutorial/usage/recipes.user.sgml @@ -1,5 +1,5 @@ <!-- - $FML: recipes.user.sgml,v 1.1 2005/10/29 04:58:01 fukachan Exp $ + $FML: recipes.user.sgml,v 1.2 2008/08/19 07:11:03 fukachan Exp $ --> <qandaset> @@ -63,7 +63,7 @@ chaddr リクエストを受け付けると confirmation を <question> <para> -ML に投稿できるメールアドレスを増やしたい +MLに投稿できるメールアドレスを増やしたい </para> </question> diff --git a/fml/doc/ja/tutorial/usage/subscribe.sgml b/fml/doc/ja/tutorial/usage/subscribe.sgml index e2da40e3..32cff566 100644 --- a/fml/doc/ja/tutorial/usage/subscribe.sgml +++ b/fml/doc/ja/tutorial/usage/subscribe.sgml @@ -1,5 +1,5 @@ <!-- - $FML: subscribe.sgml,v 1.4 2006/05/17 13:13:01 fukachan Exp $ + $FML: subscribe.sgml,v 1.5 2008/08/19 07:11:03 fukachan Exp $ --> @@ -9,7 +9,7 @@ </title> <para> -elena@fml.org MLの場合、 +elena@fml.org MLに参加したい場合、 本文に <screen> @@ -22,7 +22,10 @@ subscribe Teresa Testarossa </screen> と書いたメールを elena-ctl@fml.org に送って下さい。 -メールで confirmation が返送されます。 +</para> + +<para> +メールに対し confirmation が返送されます。 その confirmation メールに返答すると登録されます。 </para> diff --git a/fml/doc/ja/tutorial/usage/unsubscribe.sgml b/fml/doc/ja/tutorial/usage/unsubscribe.sgml index d7444070..2791cfdd 100644 --- a/fml/doc/ja/tutorial/usage/unsubscribe.sgml +++ b/fml/doc/ja/tutorial/usage/unsubscribe.sgml @@ -1,5 +1,5 @@ <!-- - $FML: unsubscribe.sgml,v 1.3 2005/06/25 15:11:39 fukachan Exp $ + $FML: unsubscribe.sgml,v 1.4 2008/08/19 07:11:03 fukachan Exp $ --> @@ -9,14 +9,17 @@ </title> <para> -elena@fml.org MLの場合、 +elena@fml.org MLを辞めたい場合、 本文に <screen> unsubscribe 名前 </screen> と書いたメールを elena-ctl@fml.org に送って下さい。 -confirmation が返送されます。 +</para> + +<para> +そのメールに対し confirmation が返送されます。 その confirmation に返答すると削除されます。 </para> diff --git a/fml/doc/ja/tutorial/virtual/chapter.sgml b/fml/doc/ja/tutorial/virtual/chapter.sgml index 53eef154..ecc1a292 100644 --- a/fml/doc/ja/tutorial/virtual/chapter.sgml +++ b/fml/doc/ja/tutorial/virtual/chapter.sgml @@ -1,5 +1,5 @@ <!-- - $FML: chapter.sgml,v 1.6 2005/06/25 15:11:40 fukachan Exp $ + $FML: chapter.sgml,v 1.7 2008/08/15 02:41:15 fukachan Exp $ --> @@ -10,10 +10,12 @@ <para> 余談: -現在の第五世代 fml.org サーバ群のMLは全てバーチャルドメインで実装さ -れています。この方が統一が取れていて美しいです。 -だんだんドメインが増えることを考えると、 -はじめからバーチャルドメインで統一してあった方が扱いやすいと思います。 +現在の第五世代 fml.org サーバ群のMLは、 +すべてバーチャルドメインとして運用しています。 +この方式が統一が取れていて美しいです。 +はじめは一つでも、だんだんドメインが増えていくのはよくあることで、 +それを考えると、 +はじめからバーチャルドメインで統一しておくと扱いやすいと思います。 </para> <caution> @@ -25,11 +27,15 @@ <para> /usr/local/fml/etc/main.cf における virtual_maps は obsolete となりま した。今後は virtual_maps の代わりに ml_home_prefix_maps を使うことに -なります。が、互換性のため virtual_maps も引続き有効です。 +なります。しかしながら、互換性のため virtual_maps も引続き有効です( +なんのことはない、互換性のため、 +ml_home_prefix_maps の定義に virtual_maps も含めているというだけのことです。 +Postfix の virtual_maps と virtual_alias_maps の関係みたいな感じ)。 </para> <para> -また、ml_home_prefix_maps を操作する newdomain と rmdomain コマンドが +また、makefml および fml コマンドには +ml_home_prefix_maps を操作する newdomain と rmdomain コマンドが 創設されました。 </para> @@ -43,26 +49,38 @@ <para> 「 -&fml8; 全体で統一的に扱えるようにしたい。 +&fml8; 全体でドメインを統一的に扱えるようにしたい。 また、できるだけ &fml4; の素直な拡張であってほしい。 さらに、引越しなどが出来るだけ楽であると嬉しい。 」 -これがバーチャルドメインを設計する上での主要な条件です。 +これがバーチャルドメインを設計する上での主要な条件でした。 </para> <para> -まずML名には「ユーザ@ドメイン」形式の文字列を使うことにします。 +まずML名には「ユーザ@ドメイン」形式の文字列 +<footnote> +<para> +@ドメインがない場合は、デフォルトドメインと解釈します。 +素直ですよね? +</para> +</footnote> +を使うことにします。 これでデフォルトのドメインかバーチャルドメインかを &fml8; が解釈するこ とが可能です。 </para> <para> -ML名以外は従来のコマンド体系で素直に扱えます。 +ML名以外は従来のコマンド体系そのままです。 +</para> + +<para> +新ドメインのMLを作る際の最初の一回だけは「ドメインとパス」のあいだの設定を +仕込まないといけないので、MTA への追加設定が必要になりますが、 +それ以外はデフォルトドメインの場合と同様に操作可能です。 </para> <para> -新ドメインのMLを作る際の最初の一回だけは MTA への追加設定が必要ですが、 -それ以外はデフォルトドメインと同様に扱えます。 +素直な拡張になっていると思うのですが、どうでしょうか? </para> <!-- @@ -81,7 +99,8 @@ </title> <para> -あるドメインを使いはじめる時は、最初に newdomain コマンドを実行して下さい。 +新たに、あるドメインを使いはじめる時、 +最初に newdomain コマンドを実行して下さい。 このコマンドは <link linkend="install.virtual"> ml_home_prefix_maps @@ -92,7 +111,8 @@ ml_home_prefix_maps <para> この後は &fml4; と同様に makefml (or fml) コマンドを使ってください。 ただし、makefml (or fml)コマンドを使う際には、 -ML名を「ユーザ@ドメイン」形式で指定することだけが異なります。 +ML名を「ユーザ@ドメイン」形式で指定するところが異なります。 +注意して下さい。 </para> <para> @@ -101,19 +121,19 @@ ml_home_prefix_maps </para> <para> -例えば、コマンドの操作はMLではなく、ML@ドメイン名を使うことになり -ます。つまりコマンドの使い方は +たとえば、コマンドの操作はMLではなく、ML@ドメイン名を使うことにな +ります。つまりコマンドの使い方は <screen> makefml newml ML@virtualdomain makefml add ML@virtualdomain address makefml bye ML@virtualdomain address </screen> -などといった具合いになります。 +などといったぐあいになります。 </para> <para> -なお、CGI での操作ではドメイン名の指定は不要です。これは、config.cgi -生成時にドメインがスクリプト中に埋め込まれているためです。画面にもドメ +なお、CGI での操作ではドメイン名の指定が不要です。これは、config.cgi +生成時にドメイン名をスクリプト中に埋め込んでいるためです。画面にもドメ イン名が出ているはずですし、そもそも URL にドメイン名が入っている <screen> http://lists/~fml/cgi-bin/fml/$domain/admin/config.cgi @@ -131,11 +151,13 @@ http://lists/~fml/cgi-bin/fml/$domain/admin/config.cgi <para> ML名やドメイン名は newml 時に作成される .cgi スクリプトにハードコー ディングされています。 +URL のドメインや環境変数を CGI スクリプトは無視します。 +ハードコーディングされた設定だけを見ます。 </para> <para> -つまり、URL のドメインや環境変数を CGI スクリプトは見ていません。 -ハードコーディングされた設定だけを見ています。 +CGI 実行時に、ユーザが HTTP 経由で操作対象を変更することは出来ません +(させません)。 </para> </warning> @@ -155,7 +177,8 @@ FML.ORG で第四世代から第五世代サーバへ引越しをした時の記録を参考資料と <para> 結論から言えば、&fml4; → &fml8; コンバータは使いませんでした。 -全てをコピーして、MTA 用の設定を生成しました(include の類は強制上書き)。 +すべてをコピーして MTA 用の設定を生成しました +(include の類は強制上書きしました)。 </para> <para> @@ -167,8 +190,8 @@ FML.ORG で第四世代から第五世代サーバへ引越しをした時の記録を参考資料と <para> (2) Postfix は localhost と新ホスト名だけを mydestination として受けと -るように設定します。かつて使ったことのあるドメイン全てはバーチャルドメ -インとして処理するためです。 +るように設定します。かつて使ったことのあるドメインすべてをバーチャルド +メインとして処理するためです。 </para> <para> @@ -183,18 +206,19 @@ FML.ORG で第四世代から第五世代サーバへ引越しをした時の記録を参考資料と </para> <para> -旧サーバで処理されるべきメールが全てなくなった、つまりMLの更新がいっ -さいなくなったことに自信ができたら次に進みます。 +旧サーバで処理されるべきメール(fml へ入力する方向のメール)がすべてなく +なった、つまりMLの更新がいっさいなくなったことに自信ができたら次のス +テップへ進みます。 </para> <para> (4) 旧サーバから新サーバへML全体(/var/spool/ml 相当)をコピーします。 -時間をかけないために、もちろん事前にコピーはしてあり、最後の差分だけを -rsync するということです。 +時間をかけないために、もちろん事前にコピーがしてあり、最後の差分だけを +コピーするということです(たとえば rsync を使って行なってください)。 </para> <para> -(5) MLを再配置します。 +(5) MLのパスを再配置します。 <screen> ベースディレクトリ/ドメイン名/ML名 </screen> @@ -228,11 +252,11 @@ config.cf include ファイル群、MTA用の設定ファイルが生成されます。 (9) ローカルでテストをして問題がないようなら、 新サーバでインターネットからのメールを受け付けるようにします (/etc/postfix/main.cf の inet_interfaces か /etc/postfix/master.cf を -編集し、念のため reload ではなく stop and start)。 +編集し、念のため postfix reload ではなく postfix stop して postfix start)。 </para> <para> -終りです。奇麗になりましたね。 +これで終りです。奇麗になりましたね。 </para> <para> |
