[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

レシピ’s

コマンド一般

1. コマンドメールなどの返事は Reply-To: ではなく From: へ
2. help などのメッセージをアップグレードする
3. help メッセージの元ファイルをカスタマイズする。
4. confirmation メッセージをカスタマイズする
5. news というファイルを送り返すコマンドを作る
6. mget コマンドのファイルモードのデフォルトを変更したい
7. get コマンドを mget mp と同じ意味にする
8. command status report を抑制したい
9. コマンドメールの内容を監視したい

1. コマンドメールなどの返事は Reply-To: ではなく From: へ

コマンドメールの送信者(From:)へ返事を返すのがデフォルトの挙動です。

2. help などのメッセージをアップグレードする

fml8 をアップグレードすれば自動的にアップグレードされます。 fml4 と異なり fml8 では help コマンドのメッセージテンプレートは次のようなパスに存在するからです。

/usr/local/share/fml/$VERSION/message/euc-jp/user/help
/usr/local/share/fml/$VERSION/message/us-ascii/user/help

ただしMLのホームディレクトリに help ファイルがある場合は それが help コマンドの返事に使われています。 よって help ファイルを自分で用意している場合、自分で編集してください。

3. help メッセージの元ファイルをカスタマイズする。

fml8 では help コマンドのメッセージテンプレートは次のようなパスに存在します。 これを編集してしまうというのが第一案。 ただし、これをするとバージョンアップをした際に変更点が無効になってしまいます。

/usr/local/share/fml/$VERSION/message/euc-jp/user/help
/usr/local/share/fml/$VERSION/message/us-ascii/user/help

ML独自の help メッセージは MLホームディレクトリの下に「local/share/message/言語/」を作り、 その下におけば有効になります。

[Example]

/var/spool/ml/elena/local/share/message/euc-jp/user/help
/var/spool/ml/elena/local/share/message/us-ascii/user/help
常にこのファイルが使われるので、 バージョンアップしても内容は変わりません。 それが欠点です。

なおMLのホームディレクトリに help ファイルがある場合は それが help コマンドの返事に使われています(優先されます)。 よって help ファイルを自分で用意しているなら 自分で編集してください。 この場合も、常にこのファイルが使われるので、 バージョンアップしても内容は変わりません。 バージョンアップした場合、変更点を自分でファイルに反映させないといけません。 逆に言えば、それが欠点です。

4. confirmation メッセージをカスタマイズする

help メッセージのカスタマイズと同様ですので、 くわしくは前レシピを参照して下さい。

/usr/local/share/fml/$VERSION/message/euc-jp/command/confirm
/usr/local/share/fml/$VERSION/message/us-ascii/command/confirm

5. news というファイルを送り返すコマンドを作る

このMLの最新情報が書き込まれている $ml_home_dir/news というファイルがあるとしましょう。 これをMLのメンバーなら誰でも取り寄せられるようにしたい。 そういった例を考えます。

一番簡単な作り方は help コマンドを参考に news コマンドを作成することでしょう。 たとえば FML::Command::User::help モジュール( /usr/local/lib/fml/$VERSION/FML/Command/User/help.pm ) をコピーして FML::Command::User::news ( /usr/local/lib/fml/site_local/FML/Command/User/news.pm ) モジュールを作ってください。 そして、news.pm の中の help という文字列を news に変えるだけです。

[例]

... 略 ...

sub process
{
    my ($self, $curproc, $command_args) = @_;

    $self->send_user_xxx_message($curproc, $command_args, "news");
}
... 略 ...

the Section called ケーススタディ: 独自の help コマンドを作るthe Section called コマンドの拡張: コマンドメールの場合 in the Chapter called コマンド(コマンドメール、makefml、CGI) も参照してください。

6. mget コマンドのファイルモードのデフォルトを変更したい

いまのところできません。

じつのところ、get コマンドと mget コマンドは同じです。 そして、いまのところ get コマンドのファイルモードは変更できません。

7. get コマンドを mget mp と同じ意味にする

fml8 ではデフォルトで、 その意味(MIME/Multipart モード)になっています。

正確には、get と mget は同じコマンドで、 get コマンドのファイルモードは (いまのところ) MIME/Multipart しかありません。

8. command status report を抑制したい

いまのところ、 フィルタについては off/on できますが、 一般には出来ません。

9. コマンドメールの内容を監視したい

(1) ログを perl で加工する。

(2) コマンドメール自体のコピーを受けとる。 たとえば、 コマンドメールを受けとる設定のところに管理者も追加しておくといった具合です。

elena-ctl: :include:/var/spool/ml/elena/include-ctl, elena-admin

admin コマンド

1. admin コマンドでMLの再初期化をしたい
2. admin コマンドでMLのメンバーリストを一気に削除/登録
3. admin add 時に welcome を送る
4. admin add で登録できるメールアドレスの範囲を制限したい
5. 管理用のコマンドを忘れた

1. admin コマンドでMLの再初期化をしたい

そういう危ないことは出来ません。 makefml (CUI) を実行する権限のある人に頼んで下さい。

2. admin コマンドでMLのメンバーリストを一気に削除/登録

いまのところ、便利なコマンドは作ってないので、 「admin useradd アドレス」 や 「admin userdel アドレス」 を書き連ねる方法しかありません _o_

実装する気はあります。考え中です。

ようは「リスト.xls ファイルを、ぺしっとはるとかしたい」んですよね?

3. admin add 時に welcome を送る

未実装です。



4. admin add で登録できるメールアドレスの範囲を制限したい

メールアドレス自体の表現範囲は制限されています。 FML::Restriction::Base をみてください。

subscribe 可能な人を特定のドメインだけに限りたいといった機能は未実装です (いや HOOK を使えば出来ますけど)。

5. 管理用のコマンドを忘れた

特別な方法はないのですが、 あえていえば fml8 のドキュメントを読んで下さい :-)

http://www.fml.org/software/fml8/

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >