&fml8; の概要 なお、&fml4; と &fml8; の相違点についての詳細は、 を参照して下さい。 &fml8; で出来ること &fml4; の再実装にあたっての山場は越えたと思います。 メニュー関連項目以外は RC (Release Candidate) の気分です。 設定ファイル形式が新しくなりました。 今度は Postfix 風の設定ファイル です。 シェル上でのコマンド(makefml なしいは fml)による操作 は &fml4; と同様です: MLの作成/削除、 メンバーの登録/削除/変更(chaddr)、 リモート管理者の登録/削除、 ログを見る、 メンバーリストを見る、 他が実行できます。 CUI の使い方の相違点については 』 を参照して下さい。 なお、CUI による設定変更は、まだ予備的な段階ですが、動きます。 GUI (CGI) による操作: MLの作成/削除、 メンバーの登録/削除/変更(chaddr)、 リモート管理者の登録/削除、 ログを見る、 メンバーリストを見る。 設定ファイルの編集機能が実装途中です。 配送、 ヘッダの書き換え、 フィルタ( 4.0 の Envelope Filter と Content Filter に相当するもの )。 コマンドメール(一般ユーザ) メンバーの登録/削除/変更(chaddr)、 サマリを見る、 過去の記事を取り寄せる。 コマンドメール(リモート管理者): メンバーの登録/削除/変更(chaddr)、 リモート管理者の登録/削除、 ログを見る。 エラーメールの自動解析 、エラーになるアドレスの自動削除。 SPAM メールの隔離 (2008/08/17 以降) IPv6 による配送。 スレッド追跡システム(CUI と CGI を含む): 一度、作ったのですが、最初のバージョンは削除され、 2004/03 に総書き直しされました。 記事の HTML 化(デフォルトで HTML 版も作る): デフォルトで作っています。別途、 fmlhtmlify および makefml に HTML 化コマンドもあります。 MTA が起動するメインのプログラム: distribute command error 管理を支援するユーティリティ: fmladdr fmlailas fmlconf fmldoc makefml fml &fml4; エミュレーション: &fml4; の fml.pl と &fml8; の fml.pl を入れ換えるだけで &fml8; に移行できるようにしました。 注意: ただし、代表的な機能だけで、 全機能に対する互換性があるわけではありません。 2004 夏以降: 配送キュー管理システムにより再送処理。 事実上 &fml8; は MTA です。 抽象化 IO 層 メンバーリストなどの取り扱いにおいて、 ファイル、/etc/group、 NIS、MySQL、PostgreSQL、LDAP などを 同列にあつかいます(設定ファイルに追加設定は必要)。 インストール作業の概略 インスール方法は GNU autoconf を使うデファクトスタンダード(configure そして make) なものとなっています。 &fml4; にあまり似ていません。 ですが、OS 附属のパッケージシステムとの親和性は高くなりました。 &fml8; のインストールにおける主な注意点(&fml4;との相違点)は、 「root での作業」、 「configure の使用」、 「/usr/local/etc/fml/ 以下にあるファイルの編集」 です。 &fml8; の /usr/local/etc/fml/ 以下のファイル群は &fml4; の /usr/local/fml/.fml 以下のファイル群 および /usr/local/etc/fml/site_default_config.ph などに相当していますが、必ずしも一対一対応しているわけではありません。 さて、いつものように Unix 上で elena ML(elena@fml.org)を作成するケースを例にとりましょう。 インストールのおおまかな流れは次のようになります。 ソースをダウンロードして、展開して下さい。 ユーザ root でインストールをします。 ユーザ root になったら、 まずはユーザ fml とグループ fml を作成します。 その後、 configure その後 make install を実行して下さい。 % su root # groupadd fml # useradd -m -g fml fml # ./configure # make install デフォルトでは /usr/local ディレクトリ以下に 4.4 BSD 風のサブディレクトリが作られます。 ディレクトリパスは configure のオプション で変更可能です。 デフォルトでは、 メインの MTA から呼ばれるプログラムを /usr/local/libexec/fml/ 以下へ、 makefml や fmldoc など fml で始まるユーティリティプログラムを /usr/local/bin 以下に、 インストールします。 実のところ、 これらは /usr/local/libexec/fml の下の実体を呼び出す単なる wrapper です。 ユーザ fml で elena MLを作る。 % su fml % makefml newml elena もしくは fml コマンド(後述)を使って % su fml % fml elena newml でも同じ意味です(注意: fml コマンドは &fml8; にしかありません)。 MTA から &fml8; の配送プログラムなどを起動するために、 MTA の設定をしてください。 ML の動作テストをしてください。 ML のカスタマイズをしてください。 &fml4; と異なり、 ユーザ root でインストール作業をすることに注意して下さい。 MLを作る makefml コマンドを使ってMLを作成します。 デフォルト・ドメイン(例: fml.org)の場合、 makefml の使い方は &fml4; の時と同様です。 elena@fml.org MLを作るには % su fml % makefml newml elena とします。 詳しくは を参照してください。 一方、 バーチャルドメイン(nuinui.net) の場合は、MLのアドレスをすべて指定して下さい。 たとえば elena@nuinui.net を作る場合は、次のように実行します。 初回 % su root % makefml newdomain nuinui.net /some/where/nuinui.net % su fml % makefml newml elena@nuinui.net 二回目以降 % su fml % makefml newml elena@nuinui.net 最近では、一人で複数のドメインを持つことはありふれていますので、 全MLをバーチャルドメインとして作成するほうが、 統一感のある運用方式になると思われます。 実際 fml.org 自身もそのような運用方式です。 バーチャルドメイン(nuinui.net)のMLを作る場合、最初の一回目には、 「そのドメインを使う」ための宣言(おまじない?)が必要です。 くわしくは を参照して下さい。 MLのメンバーを登録する デフォルトのドメイン(例: fml.org)の場合は、 % su fml % makefml subscribe elena rudo@nuinui.net でOKです(elena だけでOK、つまり @fml.org なしでもOK)。 一方、バーチャルドメイン(nuinui.net)の場合は、 MLのアドレスをすべて指定してください。 % su fml % makefml subscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp MLのメンバーから削除する デフォルトのドメイン(例: fml.org)の場合は、 % su fml % makefml unsubscribe elena rudo@nuinui.net でかまいません。 一方、バーチャルドメイン(nuinui.net)の場合は、 アドレスをドメインまで含めてすべて指定してください。 % su fml % makefml unsubscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp ML設定のカスタマイズ makefml config は実装途中で、まだイマイチです。ごめんなさい。 いまは、まだ config.cf ファイルを手動で編集して下さい。 そのホスト共通の設定 /usr/local/etc/fml/site_default_config.cf は、このホストで動く &fml8; すべてに影響を与えます。 これは &fml4; の site_init.ph に相当するものです。 &fml4; では次のように設定ファイルを読み込んでいきます。 InitConfig { SetDefaults { ... }; LoadConfig { include default_config.ph; include site_init.ph; include config.ph; include site_force.ph; include sitedef.ph; } } &fml8; では /usr/local/etc/fml/$fml_version/default_config.cf /usr/local/etc/fml/site_default_config.cf /usr/local/etc/fml/domains/$DOMAIN/default_config.cf /var/spool/ml/elena/config.cf のようになっています。 site_force.ph に対応するファイルがありませんが、 困ってもいないので、 作る予定はありません。 site_default_config.cf のフォーマットは、config.cf (後述)と同様で、 指定できる変数も config.cf と同じです。 全変数のリスト も参照して下さい。 elena MLの設定 elena MLの設定のカスタマイズは /var/spool/ml/elena/config.cf を編集することで行ないます。 config.cf のフォーマットは Postfix の設定ファイル とかなり似ています (&fml4; の config.ph よりは &fml4; の cf にやや近いですが、 フォーマットが違うことに変わりはない)。 &fml8; で HOOK (perl script)を書く場合は、 (perl script ファイルのように) /var/spool/ml/elena/config.cf ファイルの =cut 行以下に書いて下さい。 =cut 行より上には設定( 変数 = 値 )を書いて下さい。 適宜、必要な項目だけを追加して下さい。 指定しない場合はデフォルト値が使われます。 デフォルト値はインストールしたバージョンに依存しており、 /usr/local/etc/fml/defaults/バージョン番号/default_config.cf というファイル中で定義されています。 これは perl のライブラリが /usr/local/lib/perl/5.00503/ のように バージョン番号付のディレクトリに置かれるのと少し似ています。 また、ライブラリなどのインストール先も fml のバージョンごとに 別のディレクトリになっていることに注意して下さい。 この仕組み のおかげでアップグレードしても瞬時にダウングレードできます。 これは &fml8; の特徴です。 §.overview.fml.recipes;