# 諸注意 # # [用語について] # # mail rfc822/message なメッセージ、いわゆるメール。 # mail でも message でもいいけど mail で統一。 # # message subject やメール本文の文章の方を指す # # [ルール] # $ACTION_$CONDITION 形式 # # permit_xxx 条件 xxx にマッチすれば許可、スイッチ処理終 # 条件 xxx にマッチしない場合は次へ続く # # reject_xxx 条件 xxx にマッチしたら拒否、スイッチ処理終 # 条件 xxx にマッチしない場合は次へ続く # # check_xxx 条件 xxx にマッチして permit/reject が # 指示されるので、それによって許可/拒否 # そして、スイッチ処理は終り。 # 条件 xxx にマッチしない場合は次へ続く # # permit permit_all のこと、スイッチ処理終 # # reject reject_all のこと、スイッチ処理終 # # [プレフィックス] # # fml_ fml システム共通&&全ドメイン共通 # 個々のMLではなく fml システム全体で共通の変数。 # 例: fml_libexec_dir = /usr/local/libexec/fml # # domain_ ? 各ドメインごと # ml_home_prefix = /var/spool/ml は別として、 # 例: # domain_config_dir_prefix = /var/spool/ml/etc # domain_sendmail_config_dir = /var/spool/ml/etc/mail # domain_mail_config_dir = /var/spool/ml/etc/mail # domain_postfix_config_dir = /var/spool/ml/etc/postfix # domain_fml_config_dir = /var/spool/ml/etc/fml # # path_ プログラムのパス設定、つまり OS 依存 # # postfix_ postfix システムの… # # qmail_ qmail システムの… # # なし(一般) 原則として、個々のMLごとの変数 # # ****_dir 個々のMLの変数。例: /var/spool/ml/elena/var/db # # # [参照] 変数名の体系については # http://www.fml.org/software/fml-devel/Documentation/ja/tutorial/ # の「プログラミングスタイル」の章を御覧ください。 # =head1 基本的なパラメータ =head2 MLの管理者 # Descriptions: いわゆるMLの管理者、エラーメールの返る先 # History: fml 4.0 の $MAINTAINER # Value: rfc822_address # Examples: elena-admin@fml.org maintainer = =head2 言語 default_charset = iso-2022-jp =head2 default modes # Descriptions: ファイルを作成する時のデフォルトモード # History: # Value: # Examples: default_file_mode = 0600 # Descriptions: ディレクトリを作成する時のデフォルトモード # History: # Value: # Examples: default_directory_mode = 0755 # Descriptions: ディレクトリを作成する時のデフォルトモード # History: # Value: # Examples: default_directory_mode = 0755 directory_public_mode = 0755 directory_private_mode = 0700 # Descriptions: # History: # Value: # Examples: default_umask = 077 =head2 TIME ZONE # Descriptions: # History: # Value: # Examples: timezone = +0900 =head1 ディレクトリ =head2 newml で初期化する newml_command_init_public_dirs = $domain_config_base_dir $domain_mail_config_dir $domain_postfix_config_dir $domain_qmail_config_dir $domain_exim_config_dir $domain_sendmail_config_dir $domain_procmail_config_dir $shared_db_dir newml_command_init_private_dirs = $tmp_dir $spool_dir $var_dir $db_dir $error_analyzer_cache_dir $lock_dir =head2 fml system directories # Descriptions: ユーザ fml のホーム # History: fml 4.0 にはない # Value: directory # Examples: /home/fml # なお、この値はプロセスの UID から動的に決定される # くわしくは FML::Process::Kernel を参照のこと # fml_owner_home_dir = # Descriptions: ML のホームディレクトリ # $ml_home_dir は起動時に渡されるアーギュメントを元に # FML::Process::Switch が決める # History: fml 4.0 の $DIR にあたるもの # Value: directory # Examples: /var/spool/ml/elena # ml_home_dir = =head2 directories shared among ML's # Descriptions: fml からシステムに教えるデータを置くためのディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc domain_config_base_dir = $ml_home_prefix/etc # Descriptions: ML 間でシェアするデータベースをおくホームディレクトリ # History: fml 4.0 に該当するものはない # Value: directory # Examples: /var/spool/ml/@db@ shared_db_dir = $ml_home_prefix/@db@ =head2 ML 固有 # Descriptions: さまざまな目的につかう # multi-purpose log, temporary, transient, and spool files # History: $VAR_DIR # Value: directory # Examples: /var/spool/ml/elena/var var_dir = $ml_home_dir/var # Descriptions: 一時的な中間ファイルを置くディレクトリ # History: $TMP_DIR # Value: directory # Examples: /var/spool/ml/elena/tmp tmp_dir = $ml_home_dir/tmp # Descriptions: 各種データファイルを置くディレクトリ # History: $VARDB_DIR # Value: directory # Examples: /var/spool/ml/elena/var/db db_dir = $var_dir/db =head2 ml local # Descriptions: 各MLローカルのディレクトリ # History: none # Value: directory # Examples: /var/spool/ml/elena/local ml_local_dir = $ml_home_dir/local # Descriptions: 各MLローカルの lib/ ディレクトリ # History: none # Value: directory # Examples: /var/spool/ml/elena/local/lib ml_local_lib_dir = $ml_local_dir/lib # Descriptions: 各MLローカルの share/ ディレクトリ # History: none # Value: directory # Examples: /var/spool/ml/elena/local/share ml_local_share_dir = $ml_local_dir/share =head2 スケジューラ # Descriptions: イヴェントのキューディレクトリ # History: none # Value: directory # Examples: /var/spool/ml/elena/var/event event_queue_dir = $var_dir/event/queue =head1 ファイル =head1 アクセス制御ルール # Descriptions: 投稿への制限 # History: fml 4.0 の PERMIT_POST_FROM と REJECT_ADDR を合体したもの # Value: list of attributes ( # permit_anyone # permit_member_maps # reject_system_accounts # reject # ) # Examples: post_restrictions = reject_system_accounts permit_member_maps reject # Descriptions: コマンドへの制限 # History: fml 4.0 の PERMIT_COMMAND_FROM と REJECT_ADDR を合体したもの # Value: list of attributes ( # permit_anyone # permit_commands_for_stranger # permit_member_maps # reject_system_accounts # reject # ) # Examples: command_restrictions = reject_system_accounts permit_commands_for_stranger permit_member_maps reject # Descriptions: admin コマンドへの制限 # History: fml 4.0 の ? # Value: list of attributes ( # permit_anyone # permit_admin_member_maps # check_admin_member_password # reject_system_accounts # reject # ) # Examples: # 1. members-admin だけで認証する # permit_admin_member_maps reject # 2. パスワード認証 (members-admin &&パスワード認証) # check_admin_member_password reject # admin_command_restrictions = reject_system_accounts check_admin_member_password reject =head2 メンバーとみなされるのは誰か? # Descriptions: 登録などの際に対象となるメンバーリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $MEMBER_LIST # Value: filename # Examples: /var/spool/ml/elena/members primary_member_map = file:$ml_home_dir/members # Descriptions: メンバーかどうか認証する際に検索するすべてのメンバーリスト # History: fml 4.0 の $MEMBER_LIST @MEMBER_LIST 相当 # Type: # Examples: member_maps = $primary_member_map $admin_member_maps =head2 受信者のリスト # Descriptions: 登録などの際に対象とする受信者のリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $ACTIVE_LIST # Value: filename # Examples: /var/spool/ml/elena/recipients primary_recipient_map = file:$ml_home_dir/recipients # Descriptions: すべての受信者のリスト # 互換性のため actives もサーチの対象 # History: fml 4.0 の $ACTIVE_LIST @ACTIVE_LIST 相当 # Value: a list of filenames # Examples: file:$ml_home_dir/recipients # unix.group:fml recipient_maps = $primary_recipient_map file:$ml_home_dir/actives =head2 まとめおくり # Descriptions: ダミー # History: none # Value: filename # Examples: primary_digest_member_map = $primary_member_map # Descriptions: ダミー # History: none # Value: list of filenames # Examples: digest_member_maps = $primary_member_maps # Descriptions: まとめ送りをする受信者のリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 では $ACTIVE_LIST のオプションとして実装 # Value: filename # Examples: /var/spool/ml/elena/recipients-digest primary_digest_recipient_map = file:$ml_home_dir/recipients-digest # Descriptions: すべてのまとめ送りをするべき受信者のリスト # History: fml 4.0 の $ACTIVE_LIST @ACTIVE_LIST のオプションとして実装 # Value: a list of filenames # Examples: file:$ml_home_dir/recipients-digest # unix.group:fml digest_recipient_maps = $primary_digest_recipient_map =head2 リモート管理者メンバーとみなされるのは誰か? # Descriptions: 登録などの際に対象となるメンバーリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $ADMIN_MEMBER_LIST # Value: filename # Examples: /var/spool/ml/elena/members-admin primary_admin_member_map = file:$ml_home_dir/members-admin # Descriptions: メンバーかどうか認証する際に検索するすべてのメンバーリスト # History: fml 4.0 の $ADMIN_MEMBER_LIST @ADMIN_MEMBER_LIST 相当 # Type: # Examples: admin_member_maps = $primary_admin_member_map # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: file # Examples: /var/spool/ml/elena/recipients-admin primary_admin_recipient_map = file:$ml_home_dir/recipients-admin # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: file # Examples: /var/spool/ml/elena/recipients-admin admin_recipient_maps = $primary_admin_recipient_map # Descriptions: リモート管理者のパスワードファイル # History: 4.0 の $PASSWD_FILE # Value: file # Examples: /var/spool/ml/elena/etc/passwd primary_admin_member_password_map = file:$ml_home_dir/etc/passwd-admin # Descriptions: リモート管理者のパスワードファイル(群) # 互換性のため etc/passwd もサーチの対象 # History: 4.0 にはない # Value: # Examples: admin_member_password_maps = $primary_admin_member_password_map file:$ml_home_dir/etc/passwd =head2 モデレータメンバーとみなされるのは誰か? # Descriptions: 登録などの際に対象となるメンバーリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $MODERATOR_MEMBER_LIST # Value: filename # Examples: /var/spool/ml/elena/members-moderator primary_moderator_member_map = file:$ml_home_dir/members-moderator # Descriptions: メンバーかどうか認証する際に検索するすべてのメンバーリスト # History: fml 4.0 には相当物がない、$MODERATOR_MEMBER_LIST のみだった # Value: # Examples: moderator_member_maps = $primary_moderator_member_map # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: file # Examples: /var/spool/ml/elena/recipients-moderator primary_moderator_recipient_map = file:$ml_home_dir/recipients-moderator # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: file # Examples: /var/spool/ml/elena/recipients-moderator moderator_recipient_maps = $primary_moderator_recipient_map =head2 アカウントベースのアクセス制限をかける # Descriptions: OS が使っているようなアカウントや自動プログラムのリスト # これらのアカウントは # 1. だれだか個人を特定できないようなアカウントである。 # 2. えてして自動プログラムなどになっており、 # メールループなどをひきおこしうる。 # これらの理由により望ましくないアカウントたちと思われる。 # History: fml 4.0 の $REJECT_ADDR # Value: a list of strings # Examples: see below system_accounts = root postmaster MAILER-DAEMON msgs nobody news majordomo listserv listproc \S+\-help \S+\-subscribe \S+\-unsubscribe # Descriptions: MLが使うアドレス: 例: elena, elena-ctl # たとえば、libexec/error は、これらのアドレスを # 削除しちゃいけない。 # History: none # Value: a list of strings # Examples: (elena-ctl@fml.org elena-ctl@fml.org ...) list_addresses = $address_for_post $address_for_command $maintainer =head1 サイズの制限 =head2 デフォルト値 # Descriptions: ヘッダサイズの上限のデフォルト値 # History: # Value: NUM # Examples: 102400 default_mail_header_size_limit = 102400 # Descriptions: 本文サイズの上限のデフォルト値 # History: # Value: NUM # Examples: 10240000 default_mail_body_size_limit = 10240000 =head1 MTA の設定 =head2 SMTP パラメータ # Descriptions: ひとつの SMTP トランザクションで MTA に渡す受信者の数の上限 # デフォルトは postfix にあわせて 1000 # History: 4.0 で直接対応するものはない。 # $MCI_SMTP_HOSTS は似ているがちょっと違う # Value: number # Examples: smtp_recipient_limit = 1000 # Descriptions: デフォールトの MTA は自分自身( localhost ) # IPv6 の loopback がデフォルトなのがおしゃれ :-) # History: fml 4.0 の $HOST # Value: host:port # Examples: smtp_servers = [::1]:25 127.0.0.1:25 # Descriptions: SMTP の MAIL FROM:<$smtp_sender> で使うパラメータ # History: fml 4.0 の $SMTP_SENDER # Value: mail_address (RFC822 の addrspec) # Examples: elena-admin@fml.org smtp_sender = $maintainer =head2 mail queue # Descriptions: mail queue のディレクトリ # History: 似たような目的に tmp/ が使われていたが、 # fml 4.0 には直接該当するものはない。 # Value: directory # Examples: /var/spool/ml/elena/var/mail/queue mail_queue_dir = $var_dir/mail/queue =head2 デバッグに役立つ機能 =head3 入力データのキャッシュ # Descriptions: 入力されるメールをキャッシュするか? # History: $NUM_LOG_MAIL # Value: yes / no # Examples: y use_incoming_mail_cache = yes # Descriptions: 入力されるメールを置くディレクトリ # History: LOG_MAIL_DIR ($DIR/var/Mail/) # Value: directory # Examples: /var/spool/ml/elena/var/mail/incoming incoming_mail_cache_dir = $var_dir/mail/incoming # Descriptions: 入力されるメールを最大何通キャッシュするか # History: $NUM_LOG_MAIL # Value: NUM # Examples: 128 incoming_mail_cache_size = 128 =head3 出力(配送)データのキャッシュ # Descriptions: 出力(配送)されるメールをキャッシュするか? # History: $NUM_LOG_MAIL # Value: yes / no # Examples: y use_outgoing_mail_cache = yes # Descriptions: deliver されるメールを置くディレクトリ # History: LOG_MAIL_DIR ($DIR/var/Mail/) # Value: directory # Examples: /var/spool/ml/elena/var/mail/outgoing outgoing_mail_cache_dir = $var_dir/mail/outgoing # Descriptions: 出力(配送)されるメールを最大何通キャッシュするか # History: $NUM_LOG_MAIL # Value: NUM # Examples: 128 outgoing_mail_cache_size = 128 =head1 Digest # Descriptions: # History: # Value: # Examples: use_digest_program = yes # Descriptions: まとめ送りした最後の記事番号を保存するファイル # History: fml4 では各自それぞれの番号を保存していた。 # Value: filename # Examples: digest_sequence_file = $ml_home_dir/seq-digest =head1 メッセージ操作 =head2 言語 # Descriptions: # History: # Value: # Examples: reply_message_charset = $default_charset # Descriptions: # History: # Value: # Examples: template_file_charset = euc-jp # Descriptions: # History: # Value: # Examples: default_message_subject = fml system message ($ml_name ML) # Descriptions: # History: # Value: # Examples: reply_message_subject = fml results ($ml_name ML) =head2 テンプレートファイル群 # Descriptions: directory to hold message template files # History: /usr/local/fml/drafts/ # Value: directory # Examples: /usr/local/share/fml/$fml_version/message message_template_dir = $fml_share_dir/message # Descriptions: directory to hold ml specific message template files # History: $DIR/drafts/ # Value: directory # Examples: /usr/local/share/fml/$fml_version/template/$language ml_local_message_template_dir = $ml_local_share_dir/message =head2 テンプレートファイル群 for user # Descriptions: ヘルプファイル # History: # Value: # Examples: help_file = $ml_home_dir/help # Descriptions: ヘルプファイル # History: # Value: # Examples: guide_file = $ml_home_dir/guide # Descriptions: ヘルプファイル # History: # Value: # Examples: objective_file = $ml_home_dir/objective =head1 ヘッダの操作 # Descriptions: ヘッダ情報を根拠にしたループチェックをするか? # History: # Value: yes / no # Examples: use_header_loop_check = yes # Descriptions: ヘッダに対するループチェックのルール群 # History: # Value: # Examples: header_loop_check_rules = check_message_id check_x_ml_info check_list_post # Descriptions: Message-ID のキャッシュを格納するディレクトリ # History: # Value: # Examples: message_id_cache_dir = $db_dir/message_id # Descriptions: ヘッダ書換えの操作をするか? # History: # Value: yes / no # Examples: use_article_header_rewrite = yes # Descriptions: 記事のヘッダを書き換えるルール群 # Re: を切り落とす操作はデフォルトなので指定の必要なし # History: # Value: # Examples: article_header_rewrite_rules = delete_unsafe_header_fields rewrite_article_subject_tag rewrite_reply_to rewrite_errors_to add_software_info add_fml_ml_name add_fml_traditional_article_id add_fml_article_id add_x_sequence add_rfc2369 # Descriptions: ヘッダ書換えの操作をするか? # History: # Value: yes / no # Examples: use_digest_header_rewrite = yes # Descriptions: 記事のまとめおくりのヘッダを書き換えるルール群 # History: # Value: # Examples: digest_header_rewrite_rules = add_software_info add_rfc2369 # Descriptions: あぶないタグを消す # History: fml 4.0 の SKIP_FIELDS # Value: strings # Examples: unsafe_header_fields = Return-Receipt-To # Descriptions: Subject: のタグ # % の意味は UNIX マニュアルを参照。例えば sprintf 関数など # History: # Value: # Examples: [elena:00080] article_subject_tag = [$ml_name:%05d] # Descriptions: X-ML-Name: および X-Sequence にあらわれる ML 名 # XXX そこだけ変えたい場合があるかもしれないので、 # XXX 一応 $ml_name とは分けておく。 # History: # Value: # Examples: elena x_ml_name = $ml_name =head1 メール本文(ボディ)への操作 # Descriptions: ヘッダ情報を根拠にしたループチェックをするか? # History: # Value: yes / no # Examples: use_body_loop_check = yes # Descriptions: ヘッダに対するループチェックのルール群 # History: # Value: # Examples: body_loop_check_rules = check_body_cksum # Descriptions: Message-ID のキャッシュを格納するディレクトリ # History: # Value: # Examples: body_cksum_cache_dir = $db_dir/body_cksum =head1 ロック # Descriptions: ロックをするか? # History: # Value: yes /no use_lock = yes # Descriptions: ロックファイルを置くディレクトリ # History: # Value: directory # Examples: /var/spool/ml/elena/var/lock lock_dir = $var_dir/lock # Descriptions: ロックファイル (ジャイアントロック用のファイル) # History: fml 4.0 ではスプールディレクトリ $SPOOL_DIR # をロックしていた。 # Value: filename # Examples: /var/spool/ml/elena/var/lock/giantlock lock_file = $lock_dir/giantlock # Descriptions: ロックのタイプ # History: fml 4.0 の $USE_FLOCK # Value: flock # Examples: lock_type = flock =head1 ログのとり方 # Descriptions: ログとり機能を有効にする # History: fml 4.0 では有無を言わさずログをとる # Value: yes / no # Examples: use_log = yes # Descriptions: ログファイル # History: fml 4.0 の $LOGFILE # Value: filename # Examples: log_file = $ml_home_dir/log # Descriptions: ログとりのタイプ (syslog は未実装) # History: fml 8.0 new # Value: file / syslog # Examples: log_type = file # Descriptions: log message format # History: # Value: fml4_compatible # process[pid] # process:time.pid ? # Examples: * fml4_compatible の例 # 01/01/28 00:53:57 IPv6 is ready (fukachan@fml.org) # * process[pid] # 02/07/31 00:56:19 loader[29507] try mta=127.0.0.1:25 by IPv6 # * process:time.pid ? # 02/07/31 00:56:19 loader: 1028074827.29507 try ... log_format_type = process[pid] # Descriptions: ログファイル # History: # Value: filename # Examples: log_dir = $var_dir/log =head1 配送プロセス =head2 プロセス # Descriptions: 記事の配送処理プログラムをそもそも使うか? # History: なし # Value: yes # Examples: yes / no use_distribute_program = yes =head1 記事の処理 =head2 記事番号 # Descriptions: 記事番号を保存するファイル (ダミー?) # History: $SEQ_FILE # Value: filename # Examples: article_sequence_file = $sequence_file =head2 ACL # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: multipart / string # Examples: string post_restrictions_reject_notice_data_type = string =head2 サイズ制限 # Descriptions: 投稿された記事のヘッダの上限値 # (MTA から fml が受けとる際の記事のヘッダサイズの上限値) # History: # Value: NUM # Examples: 102400 incoming_article_header_size_limit = $default_mail_header_size_limit # Descriptions: 投稿された記事の本文の上限値 # (MTA から fml が受けとる際の記事の本文サイズの上限値) # History: # Value: NUM # Examples: 10240000 incoming_article_body_size_limit = $default_mail_body_size_limit # Descriptions: 投稿された記事の(配送時の)ヘッダの上限値 # (fml から MTA へ渡す際の記事のヘッダサイズの上限値) # (ごめん、この機能は未実装;-) # History: # Value: NUM # Examples: 102400 outgoing_article_header_size_limit = $default_mail_header_size_limit # Descriptions: 投稿された記事の(配送時の)本文の上限値 # (fml から MTA へ渡す際の記事の本文サイズの上限値) # (ごめん、この機能は未実装;-) # Value: NUM # Examples: 10240000 outgoing_article_body_size_limit = $default_mail_body_size_limit =head2 フィルタ # Descriptions: # History: # Value: # Examples: use_article_filter = yes # Descriptions: # History: # Value: # Examples: article_filter_functions = article_size_filter article_header_filter article_non_mime_filter article_mime_component_filter article_text_plain_filter =head2 サイズ制限ベースのフィルタ # Descriptions: サイズ情報を根拠にしたフィルタリングをするか? # History: # Value: yes / no # Examples: use_article_size_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、記事の投稿は認められる。 # History: # Value: # Examples: article_size_filter_rules = check_header_size check_body_size permit =head2 ヘッダ情報ベースのフィルタ # Descriptions: ヘッダ情報を根拠にしたフィルタリングをするか? # History: # Value: yes / no # Examples: use_article_header_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、記事の投稿は認められる。 # History: # Value: # Examples: article_header_filter_rules = check_message_id check_date permit =head2 MIME 情報ベースのフィルタ # Descriptions: とりあえず、だみ〜 # History: 4.0 の content filter で、!MIME にあたる部分 # Value: yes / no # Examples: use_article_non_mime_filter = yes # Descriptions: とりあえず、だみ〜 # History: # Value: permit / reject # Examples: permit article_non_mime_filter_rules = permit # Descriptions: MIME の構造に基づいたフィルタを行なう # History: 4.0 の content filter 相当 # Value: yes / no # Examples: use_article_mime_component_filter = yes # Descriptions: ファイル名 # History: 4.0 の @CONTENT_HANDLER 相当 # Value: # Examples: article_mime_component_filter_rules = $fml_config_dir/mime_component_filter =head2 テキスト部分に対するフィルタ # Descriptions: 先頭の text/plain 部分に対するフィルタ。 # 簡単なシンタックスチェック # History: 4.0 の EnvelopeFilter 相当 # Value: yes / no # Examples: use_article_text_plain_filter = yes # Descriptions: テキスト部分へのフィルタリングのルール。 # 正確には弾くべき特別なもののルール(マッチしないなら通す) # History: # Note: permit by default # Value: # Examples: article_text_plain_filter_rules = reject_not_iso2022jp_japanese_string reject_null_mail_body reject_one_line_message reject_old_fml_command_syntax reject_invalid_fml_command_syntax reject_japanese_command_syntax reject_ms_guid permit =head2 フィルタで弾かれたことを教える # Descriptions: フィルタで弾かれたことを教える # History: 4.0 ではハードコードだったような… # Value: yes / no # Examples: yes use_article_filter_reject_notice = yes # Descriptions: エラーのお知らせの受信者 # History: 4.0 ではハードコードだったような… # Value: maintainer | sender # Examples: maintainer sender article_filter_reject_notice_recipients = maintainer sender # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: multipart / string # Examples: string article_filter_reject_notice_data_type = string =head1 記事および記事のスプール # Descriptions: 記事を配送する機能を使うか否か? # History: # Value: yes / no # Examples: use_article_delivery = yes # Descriptions: 記事をスプールディレクトリに保存する # History: 4.0 の $NOT_USE_SPOOL # Value: yes / no # Examples: use_spool = yes # Descriptions: 記事のスプールディレクトリを階層化するか? # History: 4.0 にはない。fml-devel new # Value: plane subdir # Examples: plane spool_type = plane # Descriptions: # History: # Value: # Examples: spool_subdir_unit = 1000 # Descriptions: 記事番号を保存するファイル # History: $SEQ_FILE # Value: filename # Examples: sequence_file = $ml_home_dir/seq # Descriptions: 記事を保存するディレクトリ # History: 4.0 の $SPOOL_DIR # Value: directory # Examples: spool_dir = $ml_home_dir/spool # Descriptions: スプールのタイプ # デフォルトでは平面的にファイルを配置する # History: # Value: plane # Examples: spool_type = plane =head1 記事のサマリ # Descriptions: # History: # Value: # Examples: summary_file = $ml_home_dir/summary # Descriptions: # History: # Value: fml4_compatible # Examples: summary_format_style = fml4_compatible # Descriptions: アドレスは先頭の何バイトかだけを記録する。詳しくはログ見ろ # History: # Value: \d+ # Examples: 15 summary_format_address_length = 15 =head1 記事を HTML 化する # Descriptions: 記事を HTML 化するか否か # History: fml 4 の $AUTO_HTML_GEN # Value: yes / no # Examples: yes use_html_archive = yes # Descriptions: HTML 化された記事を作るディレクトリ (MLごと) # 注意: ドメインごと、MLごとに別のディレクトリになる # History: none # Value: directory # Examples: ~fml/public_html/fml/mlarchive/fml.org/elena html_archive_dir = $fml_owner_home_dir/public_html/fml/mlarchive/$ml_domain/$ml_name # Descriptions: # History: # Value: normal / reverse # Examples: reverse html_archive_index_order_type = reverse =head1 コマンドの定義 =head2 プロセス # Descriptions: コマンドメールを使うか? # History: なし # Value: yes # Examples: yes / no use_command_mail_program = yes =head2 サイズ制限 # Descriptions: MTA から fml が受けとる際のコマンドメールのヘッダサイズの上限値 # History: # Value: NUM # Examples: 102400 incoming_command_mail_header_size_limit = $default_mail_header_size_limit # Descriptions: MTA から fml が受けとる際のコマンドメールの本文サイズの上限値 # History: # Value: NUM # Examples: 10240000 incoming_command_mail_body_size_limit = $default_mail_body_size_limit # Descriptions: fml から MTA へ渡す際のコマンドメールのヘッダサイズの上限値 # (ごめん、この機能は未実装;-) # History: # Value: NUM # Examples: 102400 outgoing_command_mail_header_size_limit = $default_mail_header_size_limit # Descriptions: fml から MTA へ渡す際のコマンドメールの本文サイズの上限値 # (ごめん、この機能は未実装;-) # History: # Value: NUM # Examples: 10240000 outgoing_command_mail_body_size_limit = $default_mail_body_size_limit =head2 特定のコマンドの制限 # Descriptions: get コマンドで指定できる記事数の上限。 # 一つの get コマンドの上限であり、かつ、 # 複数の get コマンドのリクエスト記事数を全部足し合わせた値が # この値を越えていないか?もチェックされる。 # History: $MGET_SEND_BACK_FILES_LIMIT # Value: NUM # Examples: 100 get_command_request_limit = 100 =head2 フィルタ # Descriptions: # History: # Value: # Examples: use_command_mail_filter = yes # Descriptions: # History: # Value: # Examples: command_mail_filter_functions = command_mail_size_filter =head2 サイズ制限ベースのフィルタ # Descriptions: サイズ情報を根拠にしたフィルタリングをするか? # History: # Value: yes / no # Examples: use_command_mail_size_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、コマンドメールは認められる。 # History: # Value: # Examples: command_mail_size_filter_rules = check_header_size check_body_size check_command_limit check_line_length_limit permit =head2 コマンドメール一通あたりに含まれているコマンドへの上限 # # 以下の制限はコマンドメールの文面全体についてのものであり、 # コマンド依存の制限が別途存在する # 例: ${コマンド名}_command_ファイル数_limit # # Descriptions: コマンドメール一通あたりに含まれている # 有効なコマンド数の上限。 # History: $MAXNUM_COMMAND_INPUT # Value: NUM # Examples: 100 command_mail_valid_command_limit = 100 # Descriptions: コマンドメール一通あたりに含まれている # 無効なコマンド数の上限。 # History: $MAXNUM_COMMAND_INPUT # Value: NUM # Examples: 100 command_mail_invalid_command_limit = 100 # Descriptions: コマンドメールにおける一行あたりのコマンドの長さの上限。 # History: $MAXLEN_COMMAND_INPUT # Value: NUM # Examples: 128 command_mail_line_length_limit = 128 =head2 コマンドの定義 # # 注意: まだまだ考え中といえます # # Descriptions: command prompt in message reply # History: hard coded in fml (< 4.0) # Value: string without spaces # Examples: >>> command_prompt = >>> # Descriptions: subscribe コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: # Value: confirmation / "" # Examples: subscribe_command_auth_type = confirmation # Descriptions: chaddr コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: # Value: confirmation / "" # Examples: chaddr_command_auth_type = confirmation # Descriptions: unsubscribe コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: # Value: confirmation / "" # Examples: unsubscribe_command_auth_type = confirmation # Descriptions: 有効なコマンド一覧を書く # History: fml 4.0 ではデフォルトのコマンド定義一覧に対し # @PERMIT_PROCEDURE @DENY_PROCEDURE などで # 変更を加える # Value: # Examples: commands_for_user = help get mget get mget send subscribe add unsubscribe bye on off digest remove resign signoff chaddr confirm guide info admin objective summary commands_for_stranger = guide info add subscribe chaddr $confirm_command_prefix commands_for_privileged_user = subscribe add unsubscribe bye remove resign signoff chaddr addadmin addpriv byeadmin byepriv digest digeston digestoff get mget send password pass changepassword chpass initpass passwd dir ls file list commands_for_admin = $commands_for_privileged_user commands_for_admin_cgi = adduser deluser addadmin deladmin digeston digestoff list log newml rmml # Descriptions: confirmation の返事を表す特別なコマンド # Value: STR # Examples: confirm_command_prefix = confirm # Descriptions: 管理用のコマンドを表す特別なコマンド # Value: STR # Examples: privileged_command_prefix = admin =head2 CGI # Descriptions: listinfo template # History: /usr/local/fml/listinfo/ # Value: directory # Examples: /usr/local/share/fml/$fml_version/listinfo/$language listinfo_template_dir = $fml_share_dir/listinfo/$template_file_charset # Descriptions: information をおくディレクトリ (MLごと) # History: none # Value: directory # Examples: ~fml/public_html/fml/listinfo/fml.org/elena listinfo_base_dir = $fml_owner_home_dir/public_html/fml/listinfo # Descriptions: information をおくディレクトリ (MLごと) # History: none # Value: directory # Examples: ~fml/public_html/fml/listinfo/fml.org/elena listinfo_dir = $listinfo_base_dir/$ml_domain/$ml_name =head2 newml # Descriptions: ML作成時 (makefml newml)の際に作られる # テンプレートファイル # Value: ARRAY # Examples: newml_command_template_files = config.cf =head2 フィルタで弾かれたことを教える # Descriptions: フィルタで弾かれたことを教える # History: 4.0 ではハードコードだったような… # Value: yes / no # Examples: yes use_command_mail_filter_reject_notice = yes # Descriptions: エラーのお知らせの受信者 # History: 4.0 ではハードコードだったような… # Value: maintainer | sender # Examples: maintainer sender command_mail_filter_reject_notice_recipients = maintainer sender # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: multipart / string # Examples: string command_mail_filter_reject_notice_data_type = string =head1 エラーメール解析 =head2 # Descriptions: エラーメールの転送先。デフォルトは未定義。 # エラーメールの転送先を mysql で制御したいとか # リモート管理の時は、admin_recipient_maps にしたいなどの # 需要があると思われる。 # History: 4.0 に該当するものはない # Value: maps # Examples: file:$ml_home_dir/recipients-maintainer # $admin_recipient_maps maintainer_recipient_maps = =head2 プロセス # Descriptions: エラー解析プログラムを使うか? # History: なし # Value: yes # Examples: yes / no use_error_analyzer_program = yes =head2 キャッシュ # Descriptions: error messages のキャッシュを格納するディレクトリ # History: /var/spool/ml/mead/errormaillog # Value: directory # Examples: error_analyzer_cache_dir = $db_dir/error # Descriptions: キャッシュのタイプ # History: none # Value: string # Examples: File::CacheDir error_analyzer_cache_type = File::CacheDir # Descriptions: キャッシュのモード # History: none # Value: string # Examples: error_analyzer_cache_mode = temporal # Descriptions: キャッシュのサイズ # mode が temporal なら日数だ。 # History: none # Value: number # Examples: error_analyzer_cache_size = 14 =head2 データを解析する # Descriptions: FML::Error::Analyze 中の関数名。 # History: none # Value: simple_count / histgram # Examples: simple_count error_analyzer_function_list = simple_count histgram # Descriptions: FML::Error::Analyze 中の関数名。 # History: none # Value: simple_count / histgram # Examples: simple_count error_analyzer_function = histgram # Descriptions: simple_count のエラー回数の上限 # History: none # Value: NUM # Examples: 5 error_analyzer_simple_count_limit = 5 =head1 スレッド追跡システム # Descriptions: スレッド追跡システムを使うか # History: fml 8.0 new # Value: yes / no # Examples: use_thread_track = yes # Descriptions: スレッド追跡システムは Subject タグを利用するか? # XXX ん〜でも、使わなくてもいけそうですわ # History: fml 5.0 new # Value: yes / no # Examples: use_thread_subject_tag = no # Descriptions: チケットにつけるML名 # 複数のMLにまたがったチケットを追跡するために # 必要 # History: fml 5.0 new # Value: string # Examples: elena thread_subject_tag_name = $ml_name # Descriptions: チケット番号のシンタックス # XXX ん〜でも、使わなくてもいけそうですわ # History: fml 5.0 new # Value: # Examples: elena_#00001010 $ml_name_#%08d # elena/100 $ml_name/%d thread_id_syntax = $ml_name/%d # Descriptions: Subject につけるチケット番号のシンタックス # [] () {} などを $thread_id_syntax の # 前後につけてもらうとわかりやすそう? # XXX ん〜でも、使わなくてもいけそうですわ # History: fml 5.0 new # Value: # Examples: [elena_#00001010] # [elena/100] thread_subject_tag = [$thread_id_syntax] # Descriptions: Subject につけるチケット番号のシンタックスの場所 # 前につけるか、それとも後ろにつけるか? # History: fml 5.0 new # Value: appended/prepended # Examples: Subject: [elena/100] .... # Subject: .... [elena/100] thread_subject_tag_location = appended # Descriptions: チケット番号を保存するファイル # History: fml 5.0 new # Value: filename # Examples: /var/spool/ml/elena/thread.seq thread_sequence_file = $ml_home_dir/thread.seq # Descriptions: チケット関連データを保存するディレクトリ # 実際にはこの下に elena/article.db のように # ML名のサブディレクトリがおかれる # History: fml 5.0 new # Value: directory # Examples: /var/spool/ml/@db@/thread thread_db_dir = $shared_db_dir/thread # Descriptions: CGI の相対パス # History: # Value: # Examples: thread_cgi_base_url = /cgi-bin/fmlthread.cgi # Descriptions: CGI のタイトル # History: # Value: # Examples: thread_cgi_title = thread tracking system interface # Descriptions: CGI 画面の基本カラー # History: # Value: # Examples: thread_cgi_bgcolor = #E6E6FA =head1 データベース管理システムとの連携 ### ### TODO ### うー? ### DATABASE_CACHE_FILE_SUFFIX はどするん? ### =head2 LDAP の場合 # Descriptions: LDAP サーバ # History: # Value: # Examples: ldap_servers = # Descriptions: LDAP サーバにログインするためのパスワード # History: # Value: # Examples: ldap_server_password = # Descriptions: LDAP の search base # History: # Value: # Examples: ldap_search_base = # Descriptions: LDAP の search bind # History: # Value: # Examples: ldap_server_bind = # Descriptions: LDAP のフィルタ # History: # Value: # Examples: ldap_query_filter = (objectclass=*) =head1 CGI 関連の設定 # Descriptions: CGI を置くトップディレクトリ # History: # Value: # Examples: cgi_base_dir = $fml_owner_home_dir/public_html/cgi-bin/fml/$ml_domain # Descriptions: このMLの admin CGI を置くディレクトリ # 注意: ドメインごと、MLごとに別のディレクトリになる # History: # Value: # Examples: ~fml/public_admin/cgi-bin/fml/admin/fml.org/elena # Notes: admin/.htaccess か admin/$domain/.htaccess で ACL する admin_cgi_base_dir = $cgi_base_dir/admin # Descriptions: このMLの admin CGI を置くディレクトリ # 注意: ドメインごと、MLごとに別のディレクトリになる # History: # Value: # Examples: ~fml/public_admin/cgi-bin/fml/admin/fml.org/elena ml_admin_cgi_base_dir = $cgi_base_dir/ml-admin/$ml_name # Descriptions: デフォルトの CHARSET # History: # Value: # Examples: default_cgi_charset = euc-jp # Descriptions: CGI の表示の CHARSET # History: # Value: # Examples: cgi_charset = $default_cgi_charset # Descriptions: デフォルトの bgcolor # History: # Value: #%6x # Examples: #FFFFFF cgi_main_menu_color = #FFFFFF # Descriptions: デフォルトの bgcolor # History: 4.0 には該当する変数はない # Value: #%6x # Examples: #FFFFFF cgi_navigation_bar_color = #FFFFFF # Descriptions: CGI のアドレス操作の際に選べる種類 # History: 4.0 には該当する変数はない # Value: member recipient admin_member # Examples: member recipient admin_member cgi_menu_map_list = member recipient admin_member # Descriptions: CGI のアドレス操作の際に選べる種類のデフォルト値 # History: 4.0 には該当する変数はない # Value: member recipient admin_member # Examples: member cgi_menu_default_map = member =head1 MTA に依存する設定のヒント newml_command_mta_config_list = postfix sendmail qmail procmail rmml_command_mta_config_list = $newml_command_mta_config_list =head2 directory # Descriptions: MTA 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/mail domain_mail_config_dir = $domain_config_base_dir/mail # Descriptions: postfix 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/mail domain_postfix_config_dir = $domain_config_base_dir/postfix # Descriptions: qmail 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/mail domain_qmail_config_dir = $domain_config_base_dir/qmail # Descriptions: exim 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/mail domain_exim_config_dir = $domain_config_base_dir/exim # Descriptions: sendmail 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/sendmail domain_sendmail_config_dir = $domain_config_base_dir/sendmail # Descriptions: MTA 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: directory # Examples: /var/spool/ml/etc/procmail domain_procmail_config_dir = $domain_config_base_dir/procmail =head2 sendmail / postfix # Descriptions: MTA に教えるための aliases ファイル # History: fml 4.0 ではきめうち # Value: file path # Examples: /var/spool/ml/etc/mail/aliases mail_aliases_file = $domain_mail_config_dir/aliases =head2 postfix # Descriptions: MTA に教えるための virtual map ファイル # History: none # Value: file path # Examples: /var/spool/ml/etc/mail/virtual postfix_virtual_map_file = $domain_postfix_config_dir/virtual # Descriptions: ML作成時 (makefml newml)の際に作られる # postfix テンプレートファイル # Value: ARRAY # Examples: newml_command_postfix_template_files = include include-ctl include-error # Descriptions: verps delimieters used in postfix # History: none # Value: += # Examples: += postfix_verp_delimiters = += =head2 qmail # Descriptions: ML作成時 (makefml newml)の際に作られる # qmail テンプレートファイル # Value: ARRAY # Examples: newml_command_qmail_template_files = dot-qmail dot-qmail-ctl dot-qmail-admin dot-qmail-request dot-qmail-default # Descriptions: virtual domain configurations for qmail # History: none # Value: file path # Examples: /var/qmail/control/virtualdomains qmail_virtualdomains_file = /var/qmail/control/virtualdomains # Descriptions: MTA に教えるための virtual map ファイル(テンプレート) # History: none # Value: file path # Examples: /var/spool/ml/etc/qmail/virtualdomains qmail_virtual_map_file = $domain_qmail_config_dir/virtualdomains # Descriptions: verps delimieters used in qmail # History: none # Value: -= # Examples: -= qmail_verp_delimiters = -= =head2 sendmail # Descriptions: MTA に教えるための virtual map ファイル # History: none # Value: file path # Examples: /var/spool/ml/etc/mail/virtual sendmail_virtual_map_file = $domain_sendmail_config_dir/virtusertable =head2 procmail # Descriptions: MTA に教えるための aliases ファイル # History: fml 4.0 ではきめうち # Value: file path # Examples: /var/spool/ml/etc/procmail/aliases procmail_aliases_file = $domain_procmail_config_dir/procmailrc =head1 program paths path_perl = @PERL@ path_cksum = @CKSUM@ path_sum = @SUM@ path_md5 = @MD5@ path_tar = @TAR@ path_gzip = @GZIP@ path_zcat = @ZCAT@ path_gzcat = @GZCAT@ path_gunzip = @GUNZIP@ path_lha = @LHA@ path_ls = @LS@ path_ish = @ISH@ path_bzip2 = @BZIP2@ path_bunzip2 = @BUNZIP2@ path_uuencode = @UUENCODE@ path_compress = @COMPRESS@ =head2 MTA related program paths path_sendmail = @SENDMAIL@ path_makemap = @MAKEMAP@ path_newaliases = @NEWALIASES@ path_postfix = @POSTFIX@ path_postalias = @POSTALIAS@ path_postconf = @POSTCONF@ path_postmap = @POSTMAP@ =head2 encryption/decryption path_pgp = @PGP@ path_pgp5 = @PGP5@ path_pgpe = @PGPe@ path_pgpk = @PGPK@ path_pgps = @PGPS@ path_pgpv = @PGPV@ path_gpg = @GPG@ =head2 utilities path_nkf = @NKF@ path_kakasi = @KAKASI@ path_namazu = @NAMAZU@ path_less = @LESS@ path_more = @MORE@ path_w3m = @W3M@ =head2 spam related utilities path_spamassassin = @SPAMASSASSIN@ path_spamd = @SPAMD@ path_spamc = @SPAMC@ =head1 システム依存 (主に BSD との非互換性を記述している) # # 注意: デフォールトは NetBSD # # Descriptions: getpwuid(2) があるか? # History: # Value: yes / no # Examples: has_getpwuid = yes # Descriptions: getpwgid(2) があるか? # History: # Value: yes / no # Examples: has_getpwgid = yes # Descriptions: alarm(2) があるか? # History: # Value: yes / no # Examples: has_alarm = yes # Descriptions: select(2) があるか? # History: # Value: yes / no # Examples: has_select = yes # Descriptions: fork(2) があるか? # History: # Value: yes / no # Examples: has_fork = yes =head1 MySQL の例 # # 注意: 次の ^=head で名前空間はリセットされる # # [Example] # create table ml ( # fml_ml char(64), # fml_address char(64), # fml_member int, # fml_recipient int # ); [mysql:fml] sql_server = localhost sql_user = fml sql_password = uja sql_database = fml sql_table = ml sql_get_next_key = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' sql_getline = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' sql_add = insert into $sql_table values ('$ml_name', '$ml_domain', '&address', 1, 1) sql_delete = delete from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address = '&address' sql_find = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address like '%®exp%' =head1 フック's ### ### ### default_config.cf file ends here. ### ### fml 4.0's 現在の LOCAL_CONFIG で別れ目になる行に相当する ### ### ### =cut # # list of available hooks # # $command_finish_end_hook = q{ 1;}; # $command_finish_start_hook = q{ 1;}; # $command_prepare_end_hook = q{ 1;}; # $command_prepare_start_hook = q{ 1;}; # $command_run_end_hook = q{ 1;}; # $command_run_end_hook = q{ 1;}; # $command_run_start_hook = q{ 1;}; # $command_run_start_hook = q{ 1;}; # $command_verify_request_end_hook = q{ 1;}; # $command_verify_request_start_hook = q{ 1;}; # $digest_finish_end_hook = q{ 1;}; # $digest_finish_start_hook = q{ 1;}; # $digest_prepare_end_hook = q{ 1;}; # $digest_prepare_start_hook = q{ 1;}; # $digest_run_end_hook = q{ 1;}; # $digest_run_start_hook = q{ 1;}; # $digest_verify_request_end_hook = q{ 1;}; # $digest_verify_request_start_hook = q{ 1;}; # $distribute_finish_end_hook = q{ 1;}; # $distribute_finish_start_hook = q{ 1;}; # $distribute_prepare_end_hook = q{ 1;}; # $distribute_prepare_start_hook = q{ 1;}; # $distribute_run_end_hook = q{ 1;}; # $distribute_run_start_hook = q{ 1;}; # $distribute_verify_request_end_hook = q{ 1;}; # $distribute_verify_request_start_hook = q{ 1;}; # $error_finish_end_hook = q{ 1;}; # $error_finish_start_hook = q{ 1;}; # $error_prepare_end_hook = q{ 1;}; # $error_prepare_start_hook = q{ 1;}; # $error_run_end_hook = q{ 1;}; # $error_run_start_hook = q{ 1;}; # $error_verify_request_end_hook = q{ 1;}; # $error_verify_request_start_hook = q{ 1;}; # $fmladdr_finish_end_hook = q{ 1;}; # $fmladdr_finish_start_hook = q{ 1;}; # $fmladdr_prepare_end_hook = q{ 1;}; # $fmladdr_prepare_start_hook = q{ 1;}; # $fmladdr_run_end_hook = q{ 1;}; # $fmladdr_run_start_hook = q{ 1;}; # $fmladdr_verify_request_end_hook = q{ 1;}; # $fmladdr_verify_request_start_hook = q{ 1;}; # $fmlalias_finish_end_hook = q{ 1;}; # $fmlalias_finish_start_hook = q{ 1;}; # $fmlalias_prepare_end_hook = q{ 1;}; # $fmlalias_prepare_start_hook = q{ 1;}; # $fmlalias_run_end_hook = q{ 1;}; # $fmlalias_run_start_hook = q{ 1;}; # $fmlalias_verify_request_end_hook = q{ 1;}; # $fmlalias_verify_request_start_hook = q{ 1;}; # $fmlconf_finish_end_hook = q{ 1;}; # $fmlconf_finish_start_hook = q{ 1;}; # $fmlconf_prepare_end_hook = q{ 1;}; # $fmlconf_prepare_start_hook = q{ 1;}; # $fmlconf_run_end_hook = q{ 1;}; # $fmlconf_run_start_hook = q{ 1;}; # $fmlconf_verify_request_end_hook = q{ 1;}; # $fmlconf_verify_request_start_hook = q{ 1;}; # $fmldoc_finish_end_hook = q{ 1;}; # $fmldoc_finish_start_hook = q{ 1;}; # $fmldoc_prepare_end_hook = q{ 1;}; # $fmldoc_prepare_start_hook = q{ 1;}; # $fmldoc_run_end_hook = q{ 1;}; # $fmldoc_run_start_hook = q{ 1;}; # $fmldoc_verify_request_end_hook = q{ 1;}; # $fmldoc_verify_request_start_hook = q{ 1;}; # $fmlhtmlify_finish_end_hook = q{ 1;}; # $fmlhtmlify_finish_start_hook = q{ 1;}; # $fmlhtmlify_prepare_end_hook = q{ 1;}; # $fmlhtmlify_prepare_start_hook = q{ 1;}; # $fmlhtmlify_run_end_hook = q{ 1;}; # $fmlhtmlify_run_start_hook = q{ 1;}; # $fmlhtmlify_verify_request_end_hook = q{ 1;}; # $fmlhtmlify_verify_request_start_hook = q{ 1;}; # $makefml_finish_end_hook = q{ 1;}; # $makefml_finish_start_hook = q{ 1;}; # $makefml_prepare_end_hook = q{ 1;}; # $makefml_prepare_start_hook = q{ 1;}; # $makefml_run_end_hook = q{ 1;}; # $makefml_run_start_hook = q{ 1;}; # $makefml_verify_request_end_hook = q{ 1;}; # $makefml_verify_request_start_hook = q{ 1;};