                その他の便利なプログラム群

------------------------------------------------------------
1	概要
1.1	fmlserv: listserve style interface
1.2	popfml: POP3 をつかってＭＬをエミュレーション
1.3	~/.forward を利用したＭＬ
1.4	その他の便利なプログラム

2	libexec/fml_local.pl
2.1	ローカル配送のためのインターフェイス (libexec/fml_local.pl)
2.2	Overview
2.3	fml_local と ~/.forward の設定
2.4	~/.fmllocalrc 
2.5	~/.fmllocalrc の各フィールド
2.6	パターンの記述に用いることのできる正規表現
2.7	パターンの例
2.8	~/.fmllocalrc でＭＬを行なう例
2.9	フィールドはヘッダ以外に body  があります
2.10	変数一覧
2.11	フィールド設定の例
2.12	ファイルを送り返す設定の例
2.13	fml_local BUILD-IN Functions 一覧

3	Fmlserv - Listserv Style Interface -
3.1	Listserv (Or Majordomo) Style Interface (libexec/fmlserv.pl)
3.2	インストール
3.3	使えるコマンド一覧
3.4	Variables

4	~/.forwardを利用したＭＬ
4.1	.forward での方法の概論
4.2	架空のユーザーを作る
4.3	自分のアカウントで実行する

5	POP による FML の運用
5.1	elena ML を POP3 ＭＬエミュレーションする
5.2	Q: ~/.popfmlrc ってなんですか？
5.3	Q: crontab にかくんですか?
5.4	Popfml.pl Reference 

6	各種ユーザ用ユーティリティ等 (bin/, lib/Utilities/ ...)
6.1	analyze_mail_error.pl (replaced to libexec/mead.pl)
6.2	アーカイブの作成 (bin/archive.pl bin/archive.sh)
6.3	base64decode.pl base64encode.pl
6.4	cron (bin/cron.pl)
6.5	プログラムをデーモン化して実行 (bin/daemon.pl)
6.6	daily (日々のログ解析)
6.7	DNS のチェック(bin/dns_check.pl)
6.8	emumail.pl
6.9	EXPIRE を実行するプログラムの例 (bin/expire.pl)
6.10	WIX言語フォーマッタ (bin/fwix.pl)
6.11	gen_summary.pl (summary ファイルを再生成する)
6.12	bin/msend_master.sh
6.13	bin/more_secure_cf.pl
6.14	Multipart Canceler Filter (bin/multipart.pl)
6.15	NEWSYSLOG SHELL VERSION (bin/newsyslog.sh)
6.16	SMTPライブラリを使った /usr/bin/Mail の emulation (bin/pmail.pl)
6.17	パスワードの初期化と変更 (bin/passwd.pl)
6.18	POP経由でスプールへ、POPを使ってＭＬを実行 (bin/popfml.pl)
6.19	与えられたファイルを分割して送り出すプログラム (bin/split_and_msend.pl)
6.20	SPOOL -> HTML Hierarchy (bin/spool2html.pl)
6.21	MH scan.format (lib/Utilities/scan.format)
6.22	mgetで得たファイルをmh以外で読む時 (lib/Utilities/packmbox.pl)
6.23	RMAILファイルからfmlへのメッセージの取込み (lib/Utilities/Rmail2fml.pl)
6.24	宇宙歴関係
6.25	weekend-msend.sh
6.26	X-Stardate: をつける(mh-e)
------------------------------------------------------------


1	概要

ここでは その他のユーティリティについてまとめてある。

1.1	fmlserv: listserve style interface

listserv のようなインターフェイスが必要な場合のエミュレータ
See also: 3 

1.2	popfml: POP3 をつかってＭＬをエミュレーション

Windows 2000/NT4 で使われる fml POP version の実プログラム。
See also: 5 

これは UNIX 上で使うこともできる。

1.3	~/.forward を利用したＭＬ

See also: 4 

1.4	その他の便利なプログラム

/usr/local/fml/bin/ にこまごまとユーティリティがあります。
See also: 6 

2	libexec/fml_local.pl

2.1	ローカル配送のためのインターフェイス (libexec/fml_local.pl)

ようはループを止めようと思ったものの、作り終わってみたら な〜んか 
slocal と同じになっちゃいましたね(馬鹿)。まぁ tk-slocal とか世の中には
あるんで、perl-slocal があってもいいでしょ(開きなおり(苦笑))

slocalと違うのは、制御するファイルのFieldの数とか、正規表現が使えると
か、(必要なら fml のlibrary を呼び込んで)perlの関数を直接呼べるとか…
という upper compatibility です。

歴史的に(デフォールトでは)「最後にマッチするエントリを実行する」という
ところが決定的に違います。諸葉の都合で、例えば簡単に学習するvacationプ
ログラムへと拡張できるための仕様だったのですが、今となっては設計のミス
のような気がします。設定で

	FIRST_MATCH

とすれば 最初にマッチしたパターンを実行するようになります。slocal なん
かと同じです。

	libexec/fml_local2.pl 

のほうはデフォールトが「最初にマッチしたパターンを実行」するようになっ
ています。
＃実は単なるリンクで、自分の名前を見て実行を変えているだけです

2.2	Overview

~/.forward は通常アドレスのフォワードに使われますが、本質的に 
/etc/aliases と同じように作動しますので、ここにプログラムを設定すれば
自動仕分けやこじんまりとした(手抜き)MLを実行することが可能です。

実際の仕分けやプログラムへ渡す前の前処理段階つまりヘッダ等のパターンを
見て何をすればいいのか判定するプログラムが libexec/fml_local.pl です。

	libexec/fml_local.pl
	libexec/fml_local2.pl

と２つありますが、パターンマッチの仕方が違うだけです。後述のように 
fml_local.pl は最後にマッチした条件(以下 LAST MATCH)を実行、
fml_local2.pl は最初にマッチした条件(以下 FIRST MATCH)を実行します。

2.3	fml_local と ~/.forward の設定

~/.forwardに

   "|/usr/libexec/fml/libexec/fml_local.pl -user username || exit 75"

とか書いて使います。username はあなたの account名です。

SYNOPSIS: 
  fml_local.pl [-Ddh] [-f config_file] [-user username]
    -h     this help
    -d     debug mode on
    -D     dump variable 
    -f     configuration file for ~/.fmllocalrc
    -user  username

デフォールトでは $HOME/.fmllocalrc という設定ファイルにしたがってパター
ンマッチングとその処理を実行します。

この時 ~/.fmllocalrc を上から順番にパターンマッチするか？否か？を試し
て“最後にマッチするエントリを実行します”。

これは主に歴史的な理由で last match なのですが、FIRST_MATCH を定義する
か libexec/fml_local2.pl を使えば最初にパターンマッチした処理を実行す
るように変更できます。

以下 LAST MATCH する場合について記述しています。FIRST MATCH の場合は逆
になるので注意して下さい。

2.4	~/.fmllocalrc 

fml_local.pl は ~/.fmllocalrc で制御します。見本が etc/dot_fmllocalrc 
です。

いつものように
	# ではじまる行はコメント
	空行は無視して次へ進む

です。

デフォールトは自分のスプールへ、そしてローカルなＭＬの配送はスプールへ
落すようにセットしてループしないようにするべきです。

だから、LAST MATCH の場合、最後に必ず

	From		自分	&	MailLocal
	X-MLserver 	\S+	& 	MailLocal

のエントリをかくことがループを防ぐためにもっとも大事になります。

もちろんループを検出した場合は強制的に MailLocal を実行して /var/mail 
等へ入れてしまいます。

さらに、ＭＬをやるときは

	From		自分	&	MailLocal

	# ＭＬの設定
	X-MLserver 	\S+	& 	MailLocal

のように挟んでください。そうしないと自分ではＭＬへ投稿できません（苦笑）
＃後にあると From がマッチしてしまう(last match の場合の例であることに注意)

2.5	~/.fmllocalrc の各フィールド

４つの変数をSPACE or TABで区切ってやってほしいことをかきます。

	フィールド パターン 実行のタイプ 実行すること

です。空行で区切られた各パラグラフが条件文です。

	フィールド1 パターン1
	フィールド2 パターン2 実行のタイプ 実行すること

のように複数行あるパラグラフはANDの条件文です。つまり、上の場合
「フィールド1 パターン1」かつ「フィールド2 パターン2」の条件を満たすな
ら実行する…という意味になります。

それ以外に変数を定義できます。

例：
	HOME	/home/beth/fukachan
	DIR	/home/beth/fukachan
	DEBUG

それらの変数は実行内容の中で展開して使われます。セットされる変数一覧
（@VAR の中身）は後述します(2.10)

また”フィールド パターン”はメールのヘッダのすべての行について、

	if (そのフィールドの値 =~ /パターン/ )

の形で判定されます。つまり

	subject: の特定のキーワードでＭＬを起動する

や、X-ML: というのをヘッダにつけてもらい

	X-ML:	uja というフィールドがあったらＭＬを起動する

等の設定も自由自在ます。しかし逆に意識的に設定しない限り

	Subject: uja
	Subject: ujauja
	Subject: Elena Sayori uja uja UJA

等はすべて同じものに見なしてしまいます。

各フィールドの意味は次の通りです。

フィールド	To, subject, 等。なんでもいい。
		body という特別なフィールドもあります
		これはメール本文を仮想的にヘッダのフィールドと同様に扱
		うことで実装しています。

パターン	perlの正規表現が使えます。
		スペースとかは含めないので
		get\s+(\S+) 
		こんな形になります。
		() でマッチした変数は順に
		$F1 $F2 $F3 に設定されます。
		話をややこしくしないために $F1 等はグローバル変数です。

実行のタイプ	& は perl の関数呼びだし
		> は そのファイルにアペンドです
		| は パイプで渡します。
		UNIX FROMつきのまま渡します
		UNIX FROMを抜いた形でプログラムへ渡すには
		|の代わりにmhと書いてください
		（mhへ渡すことを想定している）

実行するもの	実行するもの。関数 or ファイル

パターンマッチルーチンの後 $TYPE と $EXEC というグローバル変数に実行す
るべきタイプと実行するべきプログラムが設定されます。

2.6	パターンの記述に用いることのできる正規表現

以下で実際に出てくる基本的な正規表現をすこし説明します。

	. 	なんでもいいから一文字
	\s 	空白文字 e.g. space TAB 
	\S 	空白でない文字
	+ 	１個以上
	* 	０個以上です。
	\S+	１個以上の空白でない文字列
	.*	０個以上の文字列(なんでもいい)

	()でくくったものがマッチしたもので fml_local.pl では
	左から順番に グローバル変数 $F1 $F2 $F3 にセットされます

2.7	パターンの例

例１：
	to	(uja)		|	$DIR/fml.pl $DIR $DIR

To: フィールドのどっかに uja という文字列があれば、それにマッチする
例えば To: fukachan@sapporo.iij.ad.jp (uja)

なお、
	to	\(uja\)		|	$DIR/fml.pl $DIR $DIR

は uja ではなく (uja)  にマッチします。

例２：

	Subject	get\s+(\S+)	&	sendback

例えば Subject: get GUIDE FILE の GUIDE だけにまっち 

例３：
	body	get my spool (.*)	& 	getmyspool

メール本文に 
	get my spool uja uja
とあれば、"uja uja" の部分を $F1 にセットします。.* だからスペースにも
マッチしてます。これでパスワードに空白も使えますね。

2.8	~/.fmllocalrc でＭＬを行なう例

LAST MATCH に注意！

ＭＬをセットする ~/.fmllocalrc の例：

   DIR	/usr/local/fml

   From		fukachan	&	MailLocal

   to		\(uja\)		|	$DIR/fml.pl $DIR $DIR

   to		\(sayori\)	|	$DIR/fml.pl $HOME/var/sayori 

   X-MLserver	\S		&	MailLocal

	To: username@somewhere.jp (uja) 
というメールがきたら
	"|$DIR/fml.pl $DIR $DIR" 

という普通の形でＭＬを作動させるというものです。
ここで $DIR は上の DIR の行の値で展開されます。

このfml.pl は普通のfml.pl です。パッチとかをあてる必要はありません。
つまり、fml_local.pl がヘッダをみて何を起動すればいいかを
判断するので、起動するべきものは普通のＭＬサーバでいいわけです。

また、 (uja)  は 
	うじゃＭＬ（/usr/local/fmlの下にconfig.phでカスタマイズ）を、

(sayori) はまた別の 
	さよりちゃんＭＬ（/usr/local/fml/var/sayori/config.ph）

を起動します。

これ以外の、From: fukachan…（@phys とかついてても なくてもいい） や、
X-MLserver: フィールドのあるメール、いづれにもマッチしないメールはすべ
て /var/mail/fukachan のように sendmail が普通スプールする場所にスプー
ルされます。

2.9	フィールドはヘッダ以外に body  があります

これはパスワードを必要とするようなものは、本体でパスワードを書くべきで
す。エラーメールではヘッダはまるみえですから

body	getmyspool\s+(\S+)	&	getmyspool_pw

とか設定すれば、Providerから会社の自分のスプールの内容を夜中に読むとかが
できるようになります。
例：
% echo "getmyspool password-is-required" |Mail 自分のアドレス

2.10	変数一覧

もし変数を明示的にセットしないときは適当な値がデフォールト設定されます。

    @VAR = (HOME, DIR, LIBDIR, FML_PL, USER, MAIL_SPOOL, LOG, TMP,
	    TMP_DIR, PASSWORD, DEBUG, AND, ARCHIVE_DIR, VACATION,
	    MAINTAINER, MAINTAINER_SIGNATURE, FS,
	    LOG_MESSAGE_ID, SECURE_FML_LOCAL,
	    FIRST_MATCH, SLOCAL,
	    MY_FUNCTIONS, CASE_INSENSITIVE, MAIL_LENGTH_LIMIT);

これらの USER DEFINED 変数は fml_local 中ではそれぞれ

	@VAR $HOME $DIR $LIBDIR $FML_PL $USER $MAIL_SPOOL $LOG $TMP
	$TMP_DIR $PASSWORD $DEBUG $AND $ARCHIVE_DIR $VACATION
	$MAINTAINER $MAINTAINER_SIGNATURE $FS $LOG_MESSAGE_ID
	$SECURE_FML_LOCAL $FIRST_MATCH $SLOCAL $MY_FUNCTIONS
	$CASE_INSENSITIVE $MAIL_LENGTH_LIMIT

のような USER DEFINED 変数中に格納され Refer することができます。

# USER	-user fukachan で設定する変数と同じ意味
USER	fukachan

# HOME	$HOME変数。
# Bourne Shell 風にしているので、~/ を展開するようにはなっていません
HOME	/home/axion/fukachan

# fml.pl のある場所。でも使ってない変数…:-)
FML_PL	/home/vivian/fukachan/work/EXP/fml.pl

# $DIR 変数の設定。下で使われると $DIR を次の値で展開するため
DIR	/home/vivian/fukachan/work/EXP

# $LIBDIR 変数の設定。下で使われると $LIBDIR を次の値で展開するため
LIBDIR	/home/vivian/fukachan/work/EXP

# メールスプールの場所
MAIL_SPOOL	/var/mail/fukachan

# デバッグモード
DEBUG

# From: であり、エラーメールが返る場所。もっともふつう〜は
# 自分自身以外に設定仕様がないですね
MAINTAINER 	fukachan@phys.titech.ac.jp

# From: in MAINTAINER's SIGNATURE
# From: $MAINTAINER ($MAINTAINER_SIGNATURE) になる
# e.g. 返るメールのFrom:が、
# From: fukachan@phys.titech.ac.jp (Prisoner No.6 Fukachan)
# になる
MAINTAINER_SIGNATURE	Prisoner No.6 Fukachan

# ログファイル デフォールトは ~/log
LOG		$HOME/work/fml/log

# パスワード
PASSWORD	uja uja 

# get とかで使う アーカイブの置き場所。もし設定してないと HOME
ARCHIVE_DIR	/home/uja/uja/work/archive

# Vacation program compatible で vacation の働きもする。
VACATION	/home/uja/uja/.vacationrc

# フィールドセパレータを変更する
FS	\s+

FS	:
とすれば、.fmllocalrcの設定は From:fukachan:&:MailLocal とかくことになる

# ユーザーが自分用に設定した関数を 別のファイルにしまいたいなら
# そのファイル名を設定する。デフォールトは ~/.myfunctions.pl
MY_FUNCTIONS	/home/your-function-file

INC	include-path

必要なら、fml のいろいろな ライブラリファイルを include してより高度な
関数を使うことが可能です。そのライブラリが置いてある場所を指定します。
いくつ指定してもＯＫです。
値は指定した順番に @INC に代入されます。そして、その順番にサーチされま
す。

MAIL_LENGTH_LIMIT	2900

getmyspool2 では分割して送り返す関数を呼びます。この分割のしかたで、
何行でファイルを分けるか？ をきめます。
たとえば、ヘッダが２、３０行あると仮定すると、余裕を見て２９００とかし
ておけば、３０００行制限のあるＢＢＳでも受け取れるようになるでしょう。

TMPDIR			./tmp

$HOME からの相対パスをかく。デフォールトは ./tmp（つまり $HOME/tmp ）
＃なければ、つくります。

SECURE_FML_LOCAL	0

最終的に実行されるコマンドのsecurity予備チェック。自分で書いたコードで
も Special character があれば、Insecure となってしまうので、.fmllocalrc 
には特殊も時は使わず、定数を埋め込んだ形で書くのが望ましい。
その上で Secure にするべきであろう。

2.11	フィールド設定の例
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
#field		pattern		type	exec

# (/usr/libexec/mail.local にならう)
# スプール （例 /var/mail/fukachan ）に Appendします
# From:fukachan の場合、From:fukachan@phys.titech...もマッチする
From		fukachan	&	MailLocal

# MH の folder へいれる。MH本来の slocal はこう使うんだろうなぁ
From		fukachan@phys	mh	/usr/local/lib/mh/rcvstore +inbox

# 外国ＴＶシリーズＭＬからのメールは
# TO:enterprise@phys.titech.ac.jp になるから、それにマッチしたら
# ~/Mail/enterprise というフォルダーにいれる
To		Enterprise@phys mh	/usr/local/lib/mh/rcvstore +enterprise

# File Retrieving 
# perl の関数を呼ぶ。(\S+)でマッチしたものが ↓$F1 に置き換えられる。
Subject		get\s+(\S+)	|	/usr/bin/Mail -s $F1 $From_address

# Exec ML
# ＭＬサーバ fml.pl を呼ぶ。
# 今の場合管理者宛のメールは上のFrom や X-MLserverでスプールに落すので
# ループはしない

to		(uja)		|	$DIR/fml.pl $DIR $DIR

# これは最後にマッチするべき、これで絶対にループしないはず
# MailLocal は
# (/usr/libexec/mail.local にならう)
# スプール （例 /var/mail/fukachan ）に Appendします
# From:fukachan の場合、From:fukachan@phys.titech...もマッチする
# From		fukachan	&	MailLocal
# もし ML からきたら、ローカルにおとす
X-MLserver	\S		&	MailLocal

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿

2.12	ファイルを送り返す設定の例

~/.fmllocalrc
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
# Subject: get ファイル名
# アーカイブの“ファイル名”のファイルを
# Reply-to: へ もしなければ From: へ送り返す

Subject         get\s+(\S+)     	&	sendback

# Subject: GUIDE
# アーカイブの ファイル GUIDE を
# Reply-to: へ もしなければ From: へ送り返す

Subject         (GUIDE)  	   	&	sendback

# メール本文に "getmyspool パスワード" とかいて
# 家から (大学|会社)のメールスプールを 家に送ってもらう
# 一応スプールのメールは消さない
# Reply-to: へ もしなければ From: へ送り返す

body            getmyspool\s+(\S+)	&	getmyspool_pw

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿

2.13	fml_local BUILD-IN Functions 一覧

3	Fmlserv - Listserv Style Interface -

listservのように使いたいとか、サーバの中身を入れ換えるけどなんとなく
見た目は何が変わったんだろう？？？というフェイクのため:-)

3.1	Listserv (Or Majordomo) Style Interface (libexec/fmlserv.pl)

ここでは Listserv (or Majordomo) compatible mode について述べます。つ
まり FML コマンドを Listserv のようなインターフェイスで呼ぶための仕組
みです。これは単なるインターフェイス変換プログラムに過ぎません。

例えば今 Elena ML (elena@baycity.asia) と Freekick ML
(freekick@baycity.asia)があるとすると、デフォールトでは
elena-ctl@baycity.asia へコントロールコマンドを送り込む形でコマンドを
実行できます。

   "get 1-10 mp"		というメールを
   Elena-ctl@baycity.asia	へ送る

ことで最初の10個の記事を取り寄せることができます。これを同じことが

   "get elena 1-10 mp" 	というメールを
   fmlserv@baycity.asia		へ送る

	"get Freekick 1-10 mp" 	
	"get elena 1-10 mp".

ことで実行できるようになります。こう書くと全然ありがたみがないですね;-)。
違う点は単にコマンドのシンタックスが拡張されて『コマンド ＭＬ オプショ
ン』の形になることです。コマンドそれぞれについてＭＬを指定するので

   "get Freekick 1-10 mp" 	
   "get elena 1-10 mp" 	というメールを
   fmlserv@baycity.asia		へ送る

と、一通のメールで Freekick と Elena それぞれのＭＬの最初の10通の記事
を取り寄せることができるようになります。

オプションが後に来るとか、いろいろシンタックスが異なりますが、これはこ
れで便利なような気がします。おそらく最大の問題(ずっと実装されなかった
最大の理由は)security の問題でしょう(後述)。

3.2	インストール

一番楽なインストール方法は makefml を使ってインストールする方法です。
詳細は INSTALL というファイルを見て下さい。

	/usr/local/fml/makefml fmlserv 

でセットアップされます。

fmlserv@baycity.asia を設定し通常のＭＬを２つ管理する設定を考えてみま
す。ML は次のものを考えます。

	elena@baycity.asia	(/var/spool/elena)
	Freekick@baycity.asia	(/var/spool/Freekick)

makefml install 時に fmlserv mode (personal / group / fmlserv の選択) 
を選択しているものとします。fmlserv の set up は makefml fmlserv を実
行すると fmlserv というMLが作られます。概念的には fmlserv も配送などは
しませんが、一種のMLです。そのため/var/spool に elena Freekick fmlserv 
というML群が作られます。他のMLと同様にfmlserv の下に作られた include 
ファイルを用いて/etc/aliases を setup しnewaliases します。

"/var/spool/fmlserv/include" is as follows:

	"|/usr/libexec/fml/libexec/fmlserv.pl /var/spool"

のようになります。見かけは同じように見えますが引数の意味は少し違います。
引数は通常の fml.pl の一つ上の directory を定義します。
今 /var/spool/ を定義したので、その下の階層に

	/var/spool/fmlserv
	/var/spool/elena
	/var/spool/Freekick
	...

のようにＭＬが並びます。つまり

	/var/spool/elena/config.ph
	/var/spool/elena/spool/
	...

	/var/spool/Freekick/config.ph
	/var/spool/Freekick/spool/
	...

	/var/spool/fmlserv/config.ph
	...

のような感じになります。ここで /var/spool/fmlserv だけは特別な 
directory で、ここに fmlserv のログ ($FMLSERV_LOGFILE, default is
"/var/spool/fmlserv/log") を取り、HELP ファイル 
(/var/spool/fmlserv/help)をここに置きます。/var/spool/fmlserv というパ
スは $FMLSERV_DIR で設定を変更できます。

3.3	使えるコマンド一覧

＊注意＊
97/03/08 からデフォールトでは lists コマンドを使えないようにしました。

というのは、このコマンドを使って、一覧を手に入れ、fake mail で
自分じゃない人を登録してまわるとかいういたずらに多用されるためです。

	$FMLSERV_PERMIT_LISTS_COMMAND  = 1; (default 0)

で使えるようになります(default は 0 で使えない)
＃余談： もともと mailing-list, mailing-list-ctl を使い、
＃       公開しない限りアドレスは分からないのが標準スタイルなので
＃       この lists を使わせないというのは思想的には矛盾しないで
＃       むしろよろこばしいとおもいます。

同様に which コマンドについても

	$FMLSERV_PERMIT_WHICH_COMMAND  = 1; (default 0)

で制御されます。

○ fml で使えるコマンドすべてが使えます。ただし、

	コマンド ＭＬ オプション

   のようにＭＬ名がコマンドの次にはさまることに注意。

○ fmlserv 独自のコマンド

	help		fmlserv のHELP
	which		From: のアドレスがどのＭＬに属しているかを表示

        ●デフォールトでは使えないコマンド
	lists		fmlserv のコントロール下にあるＭＬ一覧

3.4	Variables

	$MAP_DB 

is a cache for 'lists' command.

4	~/.forwardを利用したＭＬ

/etc/aliases をいじれないユーザや密かにＭＬを実行する:-)ユーザ向けの話
です。普通これを使うことはありません。またこのトリックを使わざるをえな
い状況は使用しているMTAに強く依存します。何よりも優先されることはMTAの
マニュアルをよむことです。

4.1	.forward での方法の概論

~/.forward も /etc/aliases と同様に実行されます。~/.forward に

"|/home/beth/rosy/ml/fml.pl /home/beth/rosy/ml /home/beth/rosy/ml" 

とかけば、 ＭＬを作ることができます。この場合 sendmail は fml.pl の 
STDIN に SMTP でもらったメールの内容を送りこみます。

この場合の問題は、自分自身へも配送するのでループ(bounce)問題をどう避け
るか? が問題になります。.forward 方式では2通りの考え方ができます。

○	架空のユーザを作りその .forward を使う
	この場合ＭＬの名前は架空のユーザになります

○	自分のアカウントで受けて、ヘッダをみてＭＬ宛か否か？を
	判定して、ＭＬを実行する。

4.2	架空のユーザーを作る

○	架空のユーザを作りその .forward を使う

	この場合ＭＬの名前は架空のユーザになります

~/.forward に include ファイルと同様の内容を書けば良いだけです。
注意することはこの場合

	MLのアドレス		==	架空のユーザ
	管理者のアドレス	==	他のアカウント

になるでしょう。

shell サービスのあるインターネットプロバイダならできますが、
そうでないところもありますから注意して下さい。

4.3	自分のアカウントで実行する

自分のアカウントで受ける → フィルタで振り分ける
				 → 	自分のメールスプール
				 → 	ML1
				 → 	ML2
			...

フィルタは何かのキーワードでＭＬ宛か自分宛かを判定する必要があります。
フィルタの話は  を見て下さい。

例:

	Subject: [Elena]

Subject: に [Elena] を含むメールが来たらＭＬへ流すとか

	To: あなたのアカウント (ML-1)

が来たら ML-1 を見つけたら ML-1 へメールを流すとか、そういったキーワー
ド探索をフィルタでするということです。そしてマッチしなかった内容は全部
あなたのメールスプールいきということです。

5	POP による FML の運用

この章はPOPを使ったＭＬのエミュレーションについて説明します。UNIX上で
これを使うことはまずありません。NTの上ではこれを利用しています。

POP経由でスプールへ、POP3 を使ってＭＬを実行するlibexec/popfml.pl がそ
れの専用プログラムとして実装されています。想定されているケースは

	メールはPOP3で読めるだけ
	メールを受けとめてプログラムを呼べないという
		OS附属のメールシステム or ポリシー

等の場合のために存在します。理屈としては

	pop を使って取り寄せつつパイプで MH の rcvstore へ入力(inc)
	pop を使って取り寄せつつパイプで fml へ投げる (ML)

は同じです。実行する下請けプログラムが違うだけです。後はこれを cron で
実行します。サイトに一台POP3を喋れるメールサーバがあれば自分のマシンが
メールを受けられなくてもPOP3経由で自動的にメールをスプールしたりＭＬを
作ったりできます。このやり方は汎用なのでPOP3でメールが読める場合ならど
んなOSでも原理的にはMLが実行できるということになります。
＃でもまああくまで裏技というカテゴリでしょう。

ついでにその後 cron で自動でfolderに入れるプログラムを走らせることもで
きるでしょう。なおMHと同様パスワードは $HOME/.netrc からとられます。ど
こかにパスワードを書いておかないといけないことがこの方法の最大の弱点で
す。

注意: inc_via_pop.pl は昔の名前(今はリンク)で、pop2recv.pl は backward
compatible の目的で popfml.pl にリンクされています。

5.1	elena ML を POP3 ＭＬエミュレーションする

1. 仮想的に popfml ＭＬをつくる。このＭＬのHOMEに queue ディレクトリを
つくるためです。

% makefml newml popfml

2. POPサーバに

	elena
	elena-ctl

のアカウントとパスワードを設定して下さい。

3. こういう呪文をためしてください。( \ は次の行につづきます。)

% /usr/local/fml/libexec/popfml.pl /var/spool/ml/popfml /usr/local/fml \
	-host POPサーバ名 \
	-user elena -pwfile /var/spool/ml/etc/netrc \
	-include_file /var/spool/ml/elena/include

% /usr/local/fml/libexec/popfml.pl /var/spool/ml/popfml /usr/local/fml \
	-host POPサーバ名 \
	-user elena-ctl -pwfile /var/spool/ml/etc/netrc \
	-include_file /var/spool/ml/elena/include-ctl

なお、/var/spool/ml/etc/netrc の中は
    machine POPサーバ名
    login    elena
    password パスワード
    
    machine POPサーバ名
    login    elena-ctl
    password パスワード

という感じのファイルです。~/.netrc 形式です。意味は ftp のマニュアルな
どをみて(.netrcという項目をサーチして)ください。

5.2	Q: ~/.popfmlrc ってなんですか？

今ではもぉ気にしないで下さい:) それがなくても動きます

確かに最初ある目的があって作った覚えがあるけど、NT version になるとき
に -include で実行する内容を指定するようになったので使っても使わなくて
もよいはずです

5.3	Q: crontab にかくんですか?
See also: digest 2.17 

そうです。そういう呪文をずらずら書くことになります。

  */5 * * * * 呪文(popfml.pl ...ずらずら...)

みたいなのを書きます。

でもきっと crontab をずらずらかくうっとおしいので、適当なファイルをつ
くって(例: /var/spool/ml/etc/popfml/master.sh (適当))、その中に例の呪
文を書いておく方が見やすくていいとおもいます。

  */5 * * * * 	/var/spool/ml/etc/popfml/master.sh

5.4	Popfml.pl Reference 

SYNOPSIS:

    popfml.pl [-hd] [-user username] [-host host] [-f config-file]

    -user username			
    -host host(pop server running)
    -f    config-file
    -h    this message
    -d    debug mode

例: ユーザ fukachan が POP Server hikari にアクセスする

	popfml.pl -user fukachan -host hikari

popfml で実行するコマンドを定義する設定ファイルは

	~/.popexecrc
	~/.popfmlrc 

のいづれかです。互換性のため、設定ファイルはどちらも使えます。
もし .popexecrc と .  popfmlrc 両方あると .popexecrc が優先されます。
$POP_EXEC という変数がフィルタのプログラムになります。 "|" はあっても
なくても構いません。

設定例: 全部のメールを fml.pl へ突っ込む。~/.popexecrc の中は

	$POP_EXEC = "/usr/local/fml/fml.pl /var/spool/ml/Elena";
	1;

でいいわけですが、普通はＭＬと自分宛をわけたりするためにフィルタ
(e.g. fml_local)が必要な場合もあるでしょうが、基本的には同じです。
See also: filter 

crontab の書き方はOSによって異なります。4.4BSD では次のような内容の 
crontab を書いて、crontab crontab などとします。

* * * * * popfml.pl -user fukachan -host hikari

See also: digest 2.17 

Example 2:

   ~/.popexecrc という設定ファイルを使って、POP経由でfml_localへ渡す。
   またcronで popfml.pl を動かし、ＭＬと同様のことをすることにする。

   ~/.popexecrc の中は

   $POP_EXEC = "/usr/libexec/fml/fml_local -user fukachan || exit 75";
   1;

と書いておく。cron で

	popfml.pl -user fukachan -host hikari

を一分おきに起こす。
＃NetBSD の cron だと 
＃	* * * * * popfml.pl -user fukachan -host hikari
＃です。

これで
	一分に一回 POPサーバへメールが来ているかどうかを見にいって
	もしメールがあればそれを取り込んで一通ずつfml_local へ渡す
	fml_local が条件(~/.fmllocalrc)に従いrefile等を行なう

もし、このメールが来ている先が uja-ml で

   $POP_EXEC = "/usr/libexec/fml/fml.pl /var/spool/ml/uja-ml";

になっていれば 

	”POP経由でＭＬ（uja-ml）を運用している”

ことと同じです。

このやりかたを使うことで自分のマシンで sendmail を起こしていてメールを
受け止められなくてはいけないという制約はなくなります。これで理論上は
perl がちゃんと(?)動くOSなら WINDOWS だろうが Macintosh だろうが動くは
ずですが…?(未確認)。NT version の FML は(Metainfo sendmail を使う場合
を除いて)この technique を利用しています。

◯	変数

	$POPFML_PROG
	$POP_EXEC

POP3 で読んできたメールをどの program へ渡せばいいのか？
例:

   $POP_EXEC = "/usr/local/fml/fml.pl /var/spool/ml/Elena";

	$POP_SERVER

POP Server

	$POP_USER

ユーザ名(アカウント)はＭＬのアドレスに相当します。

	$POP_PASSWORD

通常 ~/.netrc からとられる。当然 $POP_USER と一組みです。

	$POP_TIMEOUT

POP Server がずっこけた場合等に切断する秒数。デフォールトは45秒

	$POP_QUEUE_DIR

POP で読んできたメールを一回保存する場所。デフォールトは

	$DIR/var/pop.queue

	$POP_LOGFILE

POP のサーバとの通信のログ。デフォールトは

	$DIR/var/log/_poplog

	$POPFML_MAX_CHILDREN

一回(通常1分)にする処理数。あんまりやると OS がひさん

	$POP_PORT

110/tcp と違う場合に設定する(普通は設定しなくても大丈夫)。

	$POPFML_QUEUE_EXPIRE_LIMIT

expire limit of queue spool.

6	各種ユーザ用ユーティリティ等 (bin/, lib/Utilities/ ...)

ここでは bin/ 以下と contrib/Utilities/ 以下の階層で提供しているプログ
ラムについて解説します。あったら便利かもしれないというプログラムです。
使い方について理解している必要があるわけではありません。

6.1	analyze_mail_error.pl (replaced to libexec/mead.pl)

use libexec/mead.pl.

6.2	アーカイブの作成 (bin/archive.pl bin/archive.sh)
See also: daily 4.1 

アーカイブの節を参照 (daily 3)

6.3	base64decode.pl base64encode.pl

BASE64 encoder and decoder. A part of library uses this.

6.4	cron (bin/cron.pl)
See also: digest 2.17 

Vixie Cron (4.4BSD の cron) と compatible な cron もどき(digest 2.17).

6.5	プログラムをデーモン化して実行 (bin/daemon.pl)
See also: digest 2.17 

例：

	% bin/daemon.pl cron.pl $PWD

cron.pl をデーモン化して実行する。ようは次のプログラムの perl version 
です。おそらくBSDでしか動かないだろう。

    #include <stdio.h>
    #include <sys/ioctl.h>
    #include <sgtty.h>
    #include <sys/file.h>
    
    void usage()
    {
      char *string="USAGE: targetprogram";
      fputs(string,stderr);
      exit(0);
    }
    
    main(argc, argv)
         int argc;
         char **argv;
    {
      int f;
    
      f = open( "/dev/tty", O_RDWR, 0);
      if( -1 == ioctl(f ,TIOCNOTTY, NULL))
        exit(1);
      close(f);
    
      if( argc > 1 )
        execvp(*(++argv), argv);
      else
        usage();
    
      exit(0);
    }

6.6	daily (日々のログ解析)

	% bin/daily.pl -f etc/daily.ignore log

は log ファイル（複数も可）を解析しログの中で普通じゃない行をOUTPUTし
ます。どういう行を正常の動作とみなして無視するかは

	/usr/local/fml/etc/daily.ignore
	(FMLのインストール先/etc/daily.ignore)

というファイルに入っています。各行が無視するキーワードです。増やすなら
足せばいいし減らすなら切ってしまえば良いでしょう。毎朝 cron で実行する
とよいです。

	daily.pl [-hd] [-f patfile] [-t trap_patfile] [-p days]

	-h        this message
	-d        debug mode

	-f file   pattern file to ignore
	-t file   pattern file to trap (evaluated before ignore list)
	-p days   scan at which day (default is 1, that is "yesterday")

Example: for elena ML (/var/spool/ml/elena)

[$HOME/sbin/daily.sh]

	#!/bin/sh
	/usr/local/fml/bin/daily.pl -f $HOME/etc/daily.ignore \
		-t $HOME/etc/daily.trap /var/spool/ml/elena/log

[crontab]
0 5 * * * /bin/sh $HOME/sbin/daily.sh

6.7	DNS のチェック(bin/dns_check.pl)

DNS のテストをする、ちょっとしたプログラム。パッケージを広げた場所で

	% make dns_check

とするとこのプログラムを実行する。

6.8	emumail.pl

ヘッダを生成して sendmail から fml.pl への入力をコマンドラインで
emulation するためのもの。debug に使うだけ(なくてもいいけど、あるとちょっ
と便利？)。

"makefml test <ML>" が同じことをしてくれます。こっちの方が便利だと思う。

6.9	EXPIRE を実行するプログラムの例 (bin/expire.pl)
See also: daily 5.4 

Please see the chapter daily 5.

6.10	WIX言語フォーマッタ (bin/fwix.pl)
See also: documentation 2 

WIX言語のフォーマッタ 

6.11	gen_summary.pl (summary ファイルを再生成する)

ML の spool から summary を再生成する。(e.g. summary が壊れた時)

in fml-support ML's Count: 02393

   gen_summary.pl -I /usr/local/fml めーりんぐりすとのDIR/spool > summary

        -I lib*.pl のある場所（必須）
        -m オプションで MIME Decoding もします。

6.12	bin/msend_master.sh

example of control over multiple msending processes.
See also INSTALL file.

6.13	bin/more_secure_cf.pl

a real program of "make secure" operation.

6.14	Multipart Canceler Filter (bin/multipart.pl)

Author: Yuao TANIGAWA <yuao@infonia.or.jp>

なお makefml で作るとサンプルに見本がついています。

    From:    Yuao TANIGAWA <yuao@infonia.or.jp>
    Subject: Multipart Canceler
    To:      fml-support@axion.phys.titech.ac.jp (fml supporting ML)
    Date:    Fri, 10 Jan 1997 21:09:03 +0200
    X-Mail-Count: 01937
    
      最近、ML に Multipart/Mixed とか Multipart/Alternative とかの
    形式で、メールを送ってくる人がいるので（特にコマンドの処理がで
    きないので）、Multipart Canceler なるフィルタを作ってみました。
      Multipart/Mixed の場合は、# End of Document No.??? でつなげる。
    Multipart/Alternative の場合は、最初の文書以外は捨てる。...と
    いうことをしています。
      使い方は、fml を起動するのに "|/fmlpath/fml.pl ..." と記述し
    ているところを "|/scriptpath/multipart.pl|/fmlpath/fml.pl ..."
    などと記述すれば機能します。

6.15	NEWSYSLOG SHELL VERSION (bin/newsyslog.sh)
See also: daily 6.4 

libnewsyslog.pl がなかった時代の産物。

6.16	SMTPライブラリを使った /usr/bin/Mail の emulation (bin/pmail.pl)

単なる書き方の例

6.17	パスワードの初期化と変更 (bin/passwd.pl)
See also: remote_control 4 

現在では makefml passwd ML を使う方が便利です。

fml でのパスワードは通常 crypt された形で保存されます(オプションでMD5
も可能 remote_control 4.2)。つまり UNIX の /etc/passwd と同じようにです。

bin/passwd.pl を使って下さい。使い方は、

 passwd.pl [-i] [-f password-file] user password

    -i で user のパスワードを password で初期化
    -f etc/passwd に代わるパスワードファイルを指定

例：

	% passwd.pl -i fukachan@phys.titech.ac.jp 

とユーザ名つきで入れると

	Address: fukachan@phys.titech.ac.jp 
	Password: 

となるのでパスワードを入れて下さい。

	fukachan@phys.titech.ac.jp 32ZrV/XvYj1kY

のように etc/passwd が初期化される。ここの32ZrV/XvYj1kY は入力したパス
ワードを暗号化した結果です。

この etc/passwd は

	ＭＬのリモート管理(admin approve コマンド)
	moderated モード (TYPE I)

等で使われます。
See also: remote_control 4 

6.18	POP経由でスプールへ、POPを使ってＭＬを実行 (bin/popfml.pl)
See also: 5 digest 2.17 2 

libexec/popfml.pl がこの目的の専用プログラムです。
See also: 5 

注意: inc_via_pop.pl は昔の名前(今はリンク)

6.19	与えられたファイルを分割して送り出すプログラム (bin/split_and_msend.pl)

与えられたファイルを分割して送り出すプログラムを太古の昔使ってた名残。
事実上使ってない。fml 2.x では OBSOLETE のため無保証 or 単なるおまけ。 

6.20	SPOOL -> HTML Hierarchy (bin/spool2html.pl)

ターゲットとなるdirectory中のメールをHTML化します。MLのホームで
実行するか、それを-D オプションで指定しなければいけません。

SYNOPSIS:

  spool2html.pl [-h] [-I INC] [-f cf] [-d HTML_DIR] [-t TYPE] [-D DIR] SPOOL

    -h    this message
    -d    $HTML_DIR
    -f    cf (例えばMLの設定ファイルconfig.phを評価する）
    -t    number of day ($HTML_INDEX_UNIT)
    -D    $DIR (fml の $DIR)
    -I    @INC に INCLUDE PATH を付け加える

    SPOOL $SPOOL_DIR

Example:
   % cd /var/spool/ml/elena
   % spool2html.pl -I /usr/local/fml -d /htdocs /var/spool/ml/elena/spool

ターゲット SPOOL 中のメールを HTML化し $HTML_DIR 中に変換します。
注意: 2.1GAMMA#103 以降はデフォールトでスレッド処理も実行します。 

変換の仕方については SyncHtml (html_convert 1.1) を参照してください。

MLなら config.ph を評価して実行するので -f config.ph で呼び出してもOK
です。

なお -D で設定していない場合 $DIR には $PWD が設定されています。
config.ph を評価する場合には気をつけて下さい。

6.21	MH scan.format (lib/Utilities/scan.format)

lib/Utilities/scan.format を自分の ~/Mail にいれると

  65 -06/14 Horaki Hikari fml-su Subject uja  <<うじゃ…
のような表示になります。    ↑ここが X-ML-Name: の部分の６文字

MHは暗号のようですが、ポイントは今レジスターに何が入っているかと、

	if	%<
	elif	%?
	else	%|
	fi	%>

が理解できれば scan.format は書けます。

X-ML-Name: とかと名前が違うフィールドは ↓この辺を

%?{X-Mailinglist-Name}%6{X-Mailinglist-Name}\

X-ML-Name: とかがないＭＬは、この辺↓のマッチングパターンのエントリを
適当に増やして、適当に増やしてください。
例:

%?(match NetBSD.ORG)NetBSD\

6.22	mgetで得たファイルをmh以外で読む時 (lib/Utilities/packmbox.pl)

packmbox.pl	(by ukai@hplj.hpl.hp.com)

	1,2,3,...のように並んでいるファイルをmbox形式のファイ
	ルにするスクリプト

	つまり mget してきたファイルたちをMHでない人はmbox
	にした後で好きなインターフェイスをつかえばよいように

lib/Utilities/packmbox.pl を使って、

	(cd spool; packmbox.pl ) > ~/mbox

として、mbox をつくれば、これにたいして、/bin/Mail なり Rmail なりを使
うことができて便利でしょう。MH なら例えば mbox を作った後

	inc -file ~/mbox -truncate 

のようにすれば、mbox から inbox へ入ります。

6.23	RMAILファイルからfmlへのメッセージの取込み (lib/Utilities/Rmail2fml.pl)

Rmail2fml.pl	(yamane@ngi.co.jp)

	RMAILファイルから fmlへのメッセージの取込みプログラム

6.24	宇宙歴関係

MHのpost部分をいれかえて、  

	X-Stardate: [-31]8122.12

のような宇宙歴をヘッダにつける。

post を入れ換えるべき 

	SHELL VERSION が my-mh-post
	PERL  VERSION が my-mh-post.pl

libstardate.pl はコマンドラインで呼ぶと宇宙歴そのものをOUTPUTします。
これを使って、mh-e レベルで宇宙歴をヘッダにつけるEmacs Lisp が 
stardate.el です。

注意: 宇宙歴には複数の解釈があります。そのうちの一つを勝手に選んで使っ
ています。

6.25	weekend-msend.sh

設定ファイルを別に持ち msend.pl を一週間に一度起動するようにすれば一週
間に一度まとめ送りするようになります。
それを一週間に一度送るための script の例です。

m=1u みたいに常に送りつけるように設定しておいて送り時間は cron でコン
トロールするようにします。もっともコマンドでコントロールできません。管
理者が手で設定すると仮定しています。
＃まぁそれ用の別のアドレス作ってしまえばできますけどね

要点は

        MSEND_RC=$DIR/weekend/msendrc
        ACTIVE_LIST=$DIR/weekend/actives
        MEMBER_LIST=$DIR/weekend/members

で ACTIVE_LIST に 

	address m=1オプション

	例:
	address m=1u

とか書いておくという部分です。

6.26	X-Stardate: をつける(mh-e)
See also: 6.24 

contrib/Utilities/stardate.el を load してください
＃ emacs 19 でなきゃかきかえないとだめ

たとえば、.emacs に

(load-library "stardate")
(setq startrek-stardate-process "/some-directory-path/libstardate.pl")

とすると mh-comp の draft buffer をつくるときに X-Stardate: をつけてく
れます(mule-2.3で確認)。


		INDEX

.forward                                   ...   4 
.popexecrc                                 ...   5.4 
.popfmlrc                                  ...   5.4 
analyze_mail_error.pl                      ...   6.1 
analyze_mail_error.sh                      ...   6.1 
$AND (fml_local)                           ...   2.10 
archive.pl                                 ...   6.2 
archive.sh                                 ...   6.2 
$ARCHIVE_DIR (fml_local)                   ...   2.10 
base64decode.pl                            ...   6.3 
base64encode.pl                            ...   6.3 
bin/base64decode.pl                        ...   6.3 
bin/base64encode.pl                        ...   6.3 
bin/inc_via_pop.pl                         ...   6.18 
bin/pop2recv.pl                            ...   6.18 
bin/spool2html.pl                          ...   6.20 
$CASE_INSENSITIVE (fml_local)              ...   2.10 
cron.pl                                    ...   6.4 
daemon.pl                                  ...   6.5 
daily.ignore                               ...   6.6 
daily.pl                                   ...   6.6 
$DEBUG (fml_local)                         ...   2.10 
$DIR (fml_local)                           ...   2.10 
$DIR/var/log/_poplog                       ...   5.4 
$DIR/var/pop.queue                         ...   5.4 
dns_check.pl                               ...   6.7 
emumail.pl                                 ...   6.8 
$EXEC (fml_local)                          ...   2.5 
$FIRST_MATCH (fml_local)                   ...   2.10 
fml_local.pl                               ...   2.1 
$FML_PL (fml_local)                        ...   2.10 
FML based on POP3                          ...   5 
fmlserv                                    ...   3 
$FMLSERV_DIR                               ...   3.2 
$FMLSERV_LOGFILE                           ...   3.2 
$FMLSERV_PERMIT_LISTS_COMMAND              ...   3.3 
$FS (fml_local)                            ...   2.10 
fwix.pl                                    ...   6.10 
gen_summary.pl                             ...   6.11 
$HOME (fml_local)                          ...   2.10 
$HOME/.forward                             ...   4 
@INC (fml_local)                           ...   2.10 
inc_via_pop.pl                             ...   6.18 
lib/Utilities/scan.format                  ...   6.21 
$LIBDIR (fml_local)                        ...   2.10 
listserv compatibility                     ...   3.1 
$LOG (fml_local)                           ...   2.10 
$LOG_MESSAGE_ID (fml_local)                ...   2.10 
$MAIL_LENGTH_LIMIT (fml_local)             ...   2.10 
$MAIL_SPOOL (fml_local)                    ...   2.10 
$MAINTAINER (fml_local)                    ...   2.10 
$MAINTAINER_SIGNATURE (fml_local)          ...   2.10 
majordomo compatibility                    ...   3.1 
manual: fml_local.pl                       ...   2 
$MAP_DB                                    ...   3.4 
multipart.pl                               ...   6.14 
$MY_FUNCTIONS (fml_local)                  ...   2.10 
my-mh-post                                 ...   6.24 
my-mh-post.pl                              ...   6.24 
newsyslog.sh                               ...   6.15 
packmbox.pl                                ...   6.22 
passwd.pl                                  ...   6.17 
$PASSWORD (fml_local)                      ...   2.10 
pmail.pl                                   ...   6.16 
pop2recv.pl                                ...   6.18 
POP3                                       ...   5 
POP3 を使った FML                          ...   5 
$POP_EXEC                                  ...   5.4 
$POP_LOGFILE                               ...   5.4 
$POP_PASSWORD                              ...   5.4 
$POP_PORT                                  ...   5.4 
$POP_QUEUE_DIR                             ...   5.4 
$POP_SERVER                                ...   5.4 
$POP_TIMEOUT                               ...   5.4 
$POP_USER                                  ...   5.4 
popfml.pl                                  ...   5.4 
$POPFML_MAX_CHILDREN                       ...   5.4 
$POPFML_QUEUE_EXPIRE_LIMIT                 ...   5.4 
Rmail2fml.pl                               ...   6.23 
scan.format                                ...   6.21 
$SECURE_FML_LOCAL (fml_local)              ...   2.10 
$SLOCAL (fml_local)                        ...   2.10 
split_and_msend.pl                         ...   6.19 
spool2html.pl                              ...   6.20 
stardate.el                                ...   6.24 6.26 
STAR TREK                                  ...   6.26 
$TMP (fml_local)                           ...   2.10 
$TMP_DIR (fml_local)                       ...   2.10 
$TMPDIR (fml_local)                        ...   2.10 
$TYPE (fml_local)                          ...   2.5 
$USER (fml_local)                          ...   2.10 
$VACATION (fml_local)                      ...   2.10 
@VAR (fml_local)                           ...   2.10 
var/log/_poplog                            ...   5.4 
var/pop.queue                              ...   5.4 
weekend-msend.sh                           ...   6.25 
~/.fmllocalrc                              ...   2.4 
~/.fmllocalrc でＭＬを行なう例             ...   2.8 
~/.fmllocalrc の各フィールド               ...   2.5 
~/.forward                                 ...   2.3 4 
ユーザ fukachan が POP Server hikari にアクセスする   ...   5.4 
