# 諸注意 # # [用語について] # # 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 デバッグモード # Descriptions: デバッグ、デフォルトは NO にしてある。 # History: $DEBUG # Value: YES_OR_NO # Examples: no use_debug = no =head1 基本的なパラメータ =head2 MLの管理者 # Descriptions: いわゆるMLの管理者、エラーメールの返る先 # History: fml 4.0 の $MAINTAINER # Value: RFC822_ADDRESS # Examples: elena-admin@fml.org maintainer = # Descriptions: MLの管理者のシグニチャア (つかってない) # History: $MAITAINER_SIGNATURE # Value: STR # Examples: Elena Lolabrigita maintainer_signature = =head2 default umask # Descriptions: # History: # Value: UMASK # Examples: system_default_umask = 077 =head2 TIME ZONE # Descriptions: # History: # Value: TIMEZONE # Examples: system_timezone = +0900 =head1 ディレクトリ =head2 mode # Descriptions: ディレクトリを作成する時のデフォルトモード # History: # Value: FILE_MODE # Examples: directory_default_mode = 0755 # Descriptions: # History: # Value: FILE_MODE # Examples: directory_public_mode = 0755 # Descriptions: # History: # Value: FILE_MODE # Examples: directory_private_mode = 0700 =head2 newml で初期化する # Descriptions: # History: # Value: DIR_LIST # Examples: newml_command_init_public_directories = $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 $udb_base_dir # Descriptions: # History: # Value: DIR_LIST # Examples: newml_command_init_private_directories = $etc_dir $tmp_dir $spool_dir $var_dir $db_dir $error_mail_analyzer_cache_dir $lock_dir =head2 fml system directories # Descriptions: ユーザ fml のホーム # History: fml 4.0 にはない # Value: DIR # 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: DIR # Examples: /var/spool/ml/elena # ml_home_dir = =head2 directories shared among ML's # Descriptions: fml からシステムに教えるデータを置くためのディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc domain_config_base_dir = $ml_home_prefix/etc # Descriptions: ML 間でシェアするデータベースをおくホームディレクトリ # History: fml 4.0 に該当するものはない # Value: DIR # Examples: /var/spool/ml/@db@ shared_db_dir = $ml_home_prefix/@db@ # Descriptions: ML 間でシェアするデータベースをおくホームディレクトリ # $shared_db_dir は使われなくなる。 # udb は unified database の略称。 # History: $shared_db_dir の後継にあたる # Value: DIR # Examples: /var/spool/ml/@udb@ udb_base_dir = $ml_home_prefix/@udb@ =head2 ML 固有 # Descriptions: パスワードファイルなどを置くディレクトリ # History: none # Value: DIR # Examples: /var/spool/ml/elena/etc etc_dir = $ml_home_dir/etc # Descriptions: さまざまな目的につかう # multi-purpose log, temporary, transient, and spool files # History: $VAR_DIR # Value: DIR # Examples: /var/spool/ml/elena/var var_dir = $ml_home_dir/var # Descriptions: 一時的な中間ファイルを置くディレクトリ # History: $TMP_DIR # Value: DIR # Examples: /var/spool/ml/elena/tmp tmp_dir = $ml_home_dir/tmp # Descriptions: 各種データファイルを置くディレクトリ # History: $VARDB_DIR # Value: DIR # Examples: /var/spool/ml/elena/var/db db_dir = $var_dir/db =head2 ml local # Descriptions: 各MLローカルのディレクトリ # History: none # Value: DIR # Examples: /var/spool/ml/elena/local ml_local_dir = $ml_home_dir/local # Descriptions: 各MLローカルの lib/ ディレクトリ # History: none # Value: DIR # Examples: /var/spool/ml/elena/local/lib ml_local_lib_dir = $ml_local_dir/lib # Descriptions: 各MLローカルの share/ ディレクトリ # History: none # Value: DIR # Examples: /var/spool/ml/elena/local/share ml_local_share_dir = $ml_local_dir/share =head2 domain local # # admin/*.cgi など ml_name が特定されない場合にだけ使う # # Descriptions: domian local なディレクトリ。 # admin/*.cgi など ml_name が特定されない場合にだけ使う。 # History: none # Value: DIR # Examples: /var/spool/ml domain_local_dir = $ml_home_prefix # Descriptions: domian local な tmp ディレクトリ。 # admin/*.cgi など ml_name が特定されない場合にだけ使う。 # History: none # Value: DIR # Examples: /var/spool/ml/@tmp@ domain_local_tmp_dir = $ml_home_prefix/@tmp@ =head2 スケジューラ # Descriptions: イヴェントのキューディレクトリ # History: none # Value: DIR # Examples: /var/spool/ml/elena/var/event event_queue_dir = $var_dir/event/queue =head1 ファイル =head2 mode # Descriptions: ファイルを作成する時のデフォルトモード # History: # Value: FILE_MODE # Examples: file_default_mode = 0600 =head1 アクセス制御ルール =head2 アドレス認証についての詳細 # Descriptions: FML::Credential でアドレスの比較をするか?(当然する) # History: 当然するので、off/on スイッチなぞない # Value: YES_OR_NO # Examples: yes use_address_compare_function = yes # Descriptions: メンバーチェックをする際に、ユーザパートの比較で # 大文字小文字を区別するかしないか? # 互換性のため、デフォルトは「しない」 # History: none # Value: SELECT ( # user_part_case_sensitive # user_part_case_insensitive # ) # Examples: user_part_case_insensitive address_compare_function_type = user_part_case_insensitive # Descriptions: メールアドレスを比較する際のドメイン比較レベル # History: ML_MEMBER_CHECK # Value: NUM # Examples: 3 address_compare_function_domain_matching_level = 3 =head2 各機能における制限( ***_restrictions ) # Descriptions: 投稿への制限 # History: fml 4.0 の PERMIT_POST_FROM と REJECT_ADDR を合体したもの # Value: MIX ( # permit_anyone # permit_member_maps # check_article_thread # check_pgp_signature # permit_forward_to_moderator # reject_system_special_accounts # reject_spammer_maps # reject # isolate_system_special_accounts # isolate_spammer_maps # isolate # ignore_invalid_request # ignore # ) # Examples: article_post_restrictions = isolate_system_special_accounts permit_member_maps isolate # Descriptions: コマンドへの制限 # History: fml 4.0 の PERMIT_COMMAND_FROM と REJECT_ADDR を合体したもの # Value: MIX ( # permit_anyone # permit_member_maps # permit_anonymous_command # permit_user_command # check_pgp_signature # reject_system_special_accounts # reject_spammer_maps # reject # isolate_system_special_accounts # isolate_spammer_maps # isolate # ignore_invalid_request # ignore # ) # Examples: command_mail_restrictions = isolate_system_special_accounts permit_anonymous_command permit_user_command isolate # Descriptions: admin コマンドへの制限 # History: fml 4.0 の ? # Value: MIX ( # permit_anyone # permit_admin_member_maps # check_admin_member_password # check_pgp_signature # reject_system_special_accounts # reject_spammer_maps # reject # reject_system_special_accounts # reject_spammer_maps # reject # ) # Examples: # 1. members-admin だけで認証する # permit_admin_member_maps reject # 2. パスワード認証 (members-admin &&パスワード認証) # check_admin_member_password reject # admin_command_mail_restrictions = reject_system_special_accounts check_admin_member_password reject =head2 メンバーとみなされるのは誰か? # Descriptions: 登録などの際に対象となるメンバーリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $MEMBER_LIST # Value: MAP # Examples: /var/spool/ml/elena/members primary_member_map = file:$ml_home_dir/members # Descriptions: メンバーかどうか認証する際に検索するすべてのメンバーリスト # History: fml 4.0 の $MEMBER_LIST @MEMBER_LIST 相当 # Value: MAP_LIST # Examples: member_maps = $primary_member_map $admin_member_maps =head2 受信者のリスト # Descriptions: 登録などの際に対象とする受信者のリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $ACTIVE_LIST # Value: MAP # 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: MAP_LIST # Examples: file:$ml_home_dir/recipients # unix.group:fml recipient_maps = $primary_recipient_map file:$ml_home_dir/actives =head2 まとめおくり # Descriptions: ダミー # History: none # Value: MAP # Examples: primary_digest_member_map = $primary_member_map # Descriptions: ダミー # History: none # Value: MAP_LIST # Examples: digest_member_maps = $primary_member_maps # Descriptions: まとめ送りをする受信者のリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 では $ACTIVE_LIST のオプションとして実装 # Value: MAP # 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: MAP_LIST # 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: MAP # 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 相当 # Value: MAP_LIST # Examples: admin_member_maps = $primary_admin_member_map # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: MAP # Examples: /var/spool/ml/elena/recipients-admin primary_admin_recipient_map = file:$ml_home_dir/recipients-admin # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: MAP_LIST # Examples: /var/spool/ml/elena/recipients-admin admin_recipient_maps = $primary_admin_recipient_map # Descriptions: リモート管理者のパスワードファイル # History: 4.0 の $PASSWD_FILE # Value: MAP # Examples: /var/spool/ml/elena/etc/passwd primary_admin_member_password_map = file:$etc_dir/passwd-admin # Descriptions: リモート管理者のパスワードファイル(群) # 互換性のため etc/passwd もサーチの対象 # History: 4.0 にはない # Value: MAP_LIST # Examples: admin_member_password_maps = $primary_admin_member_password_map file:$etc_dir/passwd =head2 モデレータメンバーとみなされるのは誰か? # Descriptions: 登録などの際に対象となるメンバーリスト # XXX map のタイプによっては書き込みできないこともある # XXX (例: unix.group ) # History: fml 4.0 の $MODERATOR_MEMBER_LIST # Value: MAP # 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: MAP_LIST # Examples: moderator_member_maps = $primary_moderator_member_map # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: MAP # Examples: /var/spool/ml/elena/recipients-moderator primary_moderator_recipient_map = file:$ml_home_dir/recipients-moderator # Descriptions: とりあえず定義してあるけど、使われてはいない # History: 4.0 にはない # Value: MAP_LIST # 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: REGEXP_LIST # Examples: see below system_special_accounts = root postmaster MAILER-DAEMON msgs nobody news majordomo listserv listproc \S+\-help \S+\-subscribe \S+\-unsubscribe =head2 特定のアドレスを拒否する # Descriptions: スパマーというか拒否したいアドレスのリスト # History: $REJECT_ADDR_LIST # Value: MAP # Examples: pcre:/var/spool/ml/elena/spammer.pcre primary_spammer_map = # Descriptions: スパマーというか拒否したいアドレスのリスト # History: $REJECT_ADDR_LIST # Value: MAP_LIST # Examples: pcre:/var/spool/ml/elena/spammer.pcre spammer_maps = $primary_spammer_map =head2 LIST ADDRESSES # Descriptions: MLが使うアドレス: 例: elena, elena-ctl # たとえば、libexec/error は、これらのアドレスを # 削除しちゃいけない。 # History: none # Value: RFC822_ADDRESS_LIST # Examples: (elena-ctl@fml.org elena-ctl@fml.org ...) list_addresses = $maintainer $article_post_address $command_mail_address # Descriptions: # History: # Value: RFC822_ADDRESS # Examples: article_post_address = $address_for_post # Descriptions: # History: # Value: RFC822_ADDRESS # Examples: command_mail_address = $address_for_command =head1 ユーザ数制限 # Descriptions: ユーザ数(正確には受信者数)の上限を設けるか? # デフォルトは設けない # History: $MAX_MEMBER_LIMIT # Value: YES_OR_NO # Examples: no use_recipient_total_limit = no # Descriptions: ユーザ数(正確には受信者数)の上限 # History: $MAX_MEMBER_LIMIT # Value: NUM # Examples: 3000 recipient_total_limit = 3000 # Descriptions: ユーザ数(正確には投稿可能数)の上限を設けるか? # デフォルトは設けない # History: $MAX_MEMBER_LIMIT # Value: YES_OR_NO # Examples: no use_member_total_limit = no # Descriptions: ユーザ数(正確には投稿可能数)の上限 # History: $MAX_MEMBER_LIMIT # Value: NUM # Examples: 3000 member_total_limit = 3000 =head1 ユーザ情報 =head2 データベース # Descriptions: user database directory. # History: NONE # Value: DIR # Examples: /var/spool/ml/elena/var/db/user_info user_db_dir = $db_dir/user_info # Descriptions: primary { address => gecos_field } map. # History: none # Value: MAP # Examples: primary_user_db_gecos_map = $user_db_dir/gecos # Descriptions: { address => gecos_field } maps. # History: none # Value: MAP_LIST # Examples: user_db_gecos_maps = $primary_user_db_gecos_map # Descriptions: primary { address => unix time when subscribed } map. # History: none # Value: MAP # Examples: primary_user_db_subscribe_date_map = $user_db_dir/subscribe_date # Descriptions: { address => unix time when subscribed } maps. # History: none # Value: MAP_LIST # Examples: user_db_subscribe_date_maps = $primary_user_db_subscribe_date_map =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: NUM # Examples: smtp_recipient_limit = 1000 # Descriptions: デフォールトの MTA は自分自身( localhost ) # IPv6 の loopback がデフォルトなのがおしゃれ :-) # History: fml 4.0 の $HOST # Value: TRANSPORT_LIST # Examples: smtp_servers = [::1]:25 127.0.0.1:25 # Descriptions: SMTP の MAIL FROM:<$smtp_sender> で使うパラメータ # History: fml 4.0 の $SMTP_SENDER # Value: RFC822_ADDRESS # Examples: elena-admin@fml.org smtp_sender = $maintainer =head2 mail queue # Descriptions: mail queue のディレクトリ # History: 似たような目的に tmp/ が使われていたが、 # fml 4.0 には直接該当するものはない。 # Value: DIR # Examples: /var/spool/ml/elena/var/mail/queue mail_queue_dir = $var_dir/mail/queue =head2 デバッグに役立つ機能 =head3 SMTP ログ # Descriptions: SMTP の様子をログにとるか? # History: $USE_SMTP_LOG # Value: YES_OR_NO # Examples: yes use_smtp_log = yes =head3 入力データのキャッシュ # Descriptions: 入力されるメールをキャッシュするか? # History: $NUM_LOG_MAIL # Value: YES_OR_NO # Examples: y use_incoming_mail_cache = yes # Descriptions: 入力されるメールを置くディレクトリ # History: LOG_MAIL_DIR ($DIR/var/Mail/) # Value: DIR # 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_OR_NO # Examples: yes use_outgoing_mail_cache = yes # Descriptions: deliver されるメールを置くディレクトリ # History: LOG_MAIL_DIR ($DIR/var/Mail/) # Value: DIR # 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: none # use_digest_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: use_article_digest_function = ${use_digest_program:-yes} # Descriptions: まとめ送りした最後の記事番号を保存するファイル # History: fml4 では各自それぞれの番号を保存していた。 # Value: FILE # Examples: digest_sequence_file = $ml_home_dir/seq-digest =head1 メッセージ操作 =head2 ヒント # Descriptions: 言語の優先順位 # たとえば、Accept-Language: ja などとしてある場合は # ja が優先だと分かりやすい。だが、そういったものがなく、 # かつ、「日本人が help というメールを送ってきた」場合は # 返事を us-ascii なのか iso-2022-jp で返すべきなのか? # が、プログラムには良く分からない。しょうがないので、 # このMLが(日本人相手のため)日本語優先と設定されているなら # 日本語と英語のメッセージ両方を返すべきだろう。 # だが、英語のMLであれば、英語だけで良い。 # 一方、英語のML(language_preference_order = en)の場合でも、 # Accept-Lanaguage: ja なら日本語で返事をするべきであろう。 # History: none # Value: MIX ( ja en ) # Examples: ja en language_preference_order = ja en =head2 言語 # Descriptions: # History: # Value: SELECT ( iso-2022-jp us-ascii ) # Examples: report_mail_default_charset = $report_mail_charset_ja # Descriptions: # History: # Value: SELECT ( iso-2022-jp ) # Examples: report_mail_charset_ja = iso-2022-jp # Descriptions: # History: # Value: SELECT ( us-ascii ) # Examples: report_mail_charset_en = us-ascii # Descriptions: # History: # Value: SELECT ( iso-2022-jp us-ascii ) # Examples: template_file_default_charset = $template_file_charset_ja # Descriptions: # History: # Value: SELECT ( euc-jp ) # Examples: template_file_charset_ja = euc-jp # Descriptions: # History: # Value: SELECT ( us-ascii ) # Examples: template_file_charset_en = us-ascii # Descriptions: # History: # Value: MIX ( iso-2022-jp us-ascii ) # Examples: template_file_charset_select_list = euc-jp us-ascii # Descriptions: # History: # Value: SUBJECT # Examples: message_default_subject = fml system message ($ml_name ML) # Descriptions: # History: # Value: SUBJECT # Examples: report_mail_subject = fml results ($ml_name ML) =head2 テンプレートファイル群 # Descriptions: directory to hold message template files # History: /usr/local/fml/drafts/ # Value: DIR # 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: DIR # Examples: /usr/local/share/fml/$fml_version/template/$language ml_local_message_template_dir = $ml_local_share_dir/message =head2 テンプレートファイル群 for user # Descriptions: ヘルプファイル # History: $HELP_FILE # Value: FILE # Examples: /var/spool/ml/elena/help help_file = $ml_home_dir/help # Descriptions: GUIDE ファイル # History: $GUIDE_FILE # Value: FILE # Examples: /var/spool/ml/elena/guide guide_file = $ml_home_dir/guide # Descriptions: objective ファイル # History: $OBJECTIVE_FILE # Value: FILE # Examples: /var/spool/ml/elena/objective objective_file = $ml_home_dir/objective # Descriptions: welcome ファイル # History: $WELCOME_FILE # Value: FILE # Examples: /var/spool/ml/elena/welcome welcome_file = $ml_home_dir/welcome # Descriptions: deny ファイル # History: $DENY_FILE # Value: FILE # Examples: /var/spool/ml/elena/deny deny_file = $ml_home_dir/deny =head1 Envelope 情報に基づく操作 # Descriptions: Envelope 情報を根拠にしたループチェックをするか? # History: # Value: YES_OR_NO # Examples: use_incoming_mail_envelope_loop_check = yes # Descriptions: Envelope に対するループチェックのルール群 # History: # Value: MIX ( # check_envelope_sender # ) # Examples: check_envelope_sender incoming_mail_envelope_loop_check_rules = check_envelope_sender =head1 ヘッダの操作 # Descriptions: ヘッダ情報を根拠にしたループチェックをするか? # History: # Value: YES_OR_NO # Examples: use_incoming_mail_header_loop_check = yes # Descriptions: ヘッダに対するループチェックのルール群 # History: # Value: MIX ( # check_message_id # check_x_ml_info # check_list_post # ) # Examples: incoming_mail_header_loop_check_rules = check_message_id check_x_ml_info check_list_post # Descriptions: すべての Message-ID のキャッシュを格納するディレクトリ # History: なし # Value: DIR # Examples: message_id_cache_dir = $db_dir/message_id =head2 ARTICLE # Descriptions: 記事としてスプールに格納されたメールの # Message-ID のキャッシュを格納するディレクトリ # History: なし # Value: DIR # Examples: article_message_id_cache_dir = $db_dir/article_message_id # Descriptions: ヘッダ書換えの操作をするか? # History: # Value: YES_OR_NO # Examples: use_article_header_rewrite = yes # Descriptions: 記事のヘッダを書き換えるルール群 # Re: を切り落とす操作はデフォルトなので指定の必要なし # History: # Value: MIX ( # delete_unsafe_header_fields # rewrite_article_subject_tag # rewrite_subject_tag # rewrite_reply_to # rewrite_reply_to_enforce_article_post_address # rewrite_errors_to # rewrite_message_id # add_software_info # add_fml_ml_name # add_fml_traditional_article_id # add_fml_article_id # add_x_sequence # add_rfc2369 # ) # Examples: article_header_rewrite_rules = delete_unsafe_header_fields rewrite_article_subject_tag rewrite_reply_to rewrite_errors_to rewrite_stardate rewrite_precedence rewrite_message_id 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_OR_NO # Examples: use_digest_header_rewrite = yes # Descriptions: 記事のまとめおくりのヘッダを書き換えるルール群 # History: # Value: MIX ( add_software_info add_rfc2369 ) # Examples: digest_header_rewrite_rules = add_software_info add_rfc2369 # Descriptions: あぶないタグを消す # History: fml 4.0 の SKIP_FIELDS # Value: HEADER_FIELD_LIST # Examples: unsafe_header_fields = Return-Receipt-To # Descriptions: Subject: のタグ # % の意味は UNIX マニュアルを参照。例えば sprintf 関数など # History: # Value: SUBJECT_TAG # Examples: [elena:00080] article_subject_tag = [$ml_name:%05d] # Descriptions: default list-software header field. # History: LIST_SOFTWARE # Value: STR # Examples: $fml_version article_header_list_software = $mail_header_default_list_software # Descriptions: list-help of article header. # History: LIST_HELP # Value: STR # Examples: article_header_list_help = $mail_header_default_list_help # Descriptions: list-id of article header. # History: LIST_HELP # Value: STR # Examples: $ml_name ML <$ml_name.$ml_domain> article_header_list_id = $mail_header_default_list_id # Descriptions: list-owner of article header. # History: none # Value: STR # Examples: article_header_list_owner = $mail_header_default_list_owner # Descriptions: list-post of article header. # History: LIST_POST # Value: STR # Examples: article_header_list_post = $mail_header_default_list_post # Descriptions: list-subscribe of article header. # History: LIST_SUBSCRIBE # Value: STR # Examples: article_header_list_subscribe = $mail_header_default_list_subscribe # Descriptions: list-unsubscribe of article header. # History: LIST_UNSUBSCRIBE # Value: STR # Examples: article_header_list_unsubscribe = $mail_header_default_list_unsubscribe =head2 OUTGOING MAIL # Descriptions: X-ML-Name: および X-Sequence にあらわれる ML 名 # XXX そこだけ変えたい場合があるかもしれないので、 # XXX 一応 $ml_name とは分けておく。 # History: # Value: ML_NAME # Examples: elena outgoing_mail_header_x_ml_name = ${mail_header_default_x_ml_name} # Descriptions: Errors-To: フィールド # History: fml 4.0 の $ERRORS_TO # Value: RFC822_ADDRESS # Examples: elena-admin@fml.org outgoing_mail_header_errors_to = ${mail_header_default_errors_to} # Descriptions: Precedence: field # History: $PRECEDENCE in fml 4.0 # Value: STR # Examples: bulk outgoing_mail_header_precedence = ${mail_header_default_precedence} =head2 GENERAL MAIL HEADER DEFINITIONS # Descriptions: デフォルトの Precedence: ヘッダフィールド # History: PRECEDENCE # Value: STR # Examples: bulk mail_header_default_precedence = bulk # Descriptions: デフォルトの Errors-To: ヘッダフィールド # History: ERRORS_TO # Value: STR # Examples: $maintainer mail_header_default_errors_to = $maintainer # Descriptions: デフォルトの X-ML-Name: ヘッダフィールド # History: ERRORS_TO # Value: STR # Examples: $ml_name mail_header_default_x_ml_name = $ml_name # Descriptions: デフォルトの list-id ヘッダフィールド # History: LIST_HELP # Value: STR # Examples: $ml_name ML <$ml_name.$ml_domain> mail_header_default_list_id = $ml_name ML <$ml_name.$ml_domain> # Descriptions: デフォルトの list-owner ヘッダフィールド # History: none # Value: STR # Examples: mail_header_default_list_owner = # Descriptions: デフォルトの list-post ヘッダフィールド # History: LIST_POST # Value: STR # Examples: mail_header_default_list_post = # Descriptions: デフォルトの list-help ヘッダフィールド # History: LIST_HELP # Value: STR # Examples: mail_header_default_list_help = # Descriptions: デフォルトの list-subscribe ヘッダフィールド # History: LIST_SUBSCRIBE # Value: STR # Examples: mail_header_default_list_subscribe = # Descriptions: デフォルトの list-unsubscribe ヘッダフィールド # History: LIST_UNSUBSCRIBE # Value: STR # Examples: mail_header_default_list_unsubscribe = # Descriptions: default list-software header field. # History: LIST_SOFTWARE # Value: STR # Examples: $fml_version mail_header_default_list_software = $fml_version =head1 メール本文(ボディ)への操作 # Descriptions: ヘッダ情報を根拠にしたループチェックをするか? # History: # Value: YES_OR_NO # Examples: use_incoming_mail_body_loop_check = yes # Descriptions: ヘッダに対するループチェックのルール群 # History: # Value: MIX ( check_body_checksum ) # Examples: incoming_mail_body_loop_check_rules = check_body_checksum # Descriptions: Message-ID のキャッシュを格納するディレクトリ # History: # Value: DIR # Examples: incoming_mail_body_checksum_cache_dir = $db_dir/body_checksum =head1 ロック # Descriptions: ロックをするか? # History: # Value: YES_OR_NO use_lock = yes # Descriptions: ロックファイルを置くディレクトリ # History: # Value: DIR # Examples: /var/spool/ml/elena/var/lock lock_dir = $var_dir/lock # Descriptions: ロックファイル (ジャイアントロック用のファイル) # History: fml 4.0 ではスプールディレクトリ $SPOOL_DIR # をロックしていた。 # Value: FILE # Examples: /var/spool/ml/elena/var/lock/giantlock lock_file = $lock_dir/giantlock # Descriptions: ロックのタイプ # History: fml 4.0 の $USE_FLOCK # Value: SELECT ( flock ) # Examples: lock_type = flock =head1 ログのとり方 =head2 普通のログファイル # Descriptions: ログとり機能を有効にする # History: fml 4.0 では有無を言わさずログをとる # Value: YES_OR_NO # Examples: use_log = yes # Descriptions: ML 固有のログファイル。 # strftime(3) で使用可能な文字列を使うことも可能 # (例: log.%C%y%m%d)。 # History: fml 4.0 の $LOGFILE と $LOGFILE_SUFFIX # Value: FILE # Examples: log_file = $ml_home_dir/log # Descriptions: ログとりのタイプ (syslog は未実装) # History: fml 8.0 new # Value: SELECT ( file syslog ) # Examples: log_type = file # Descriptions: log message format # History: # Value: STR # 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: DIR # Examples: log_dir = $var_dir/log =head2 log rotation # Descriptions: ログファイルローテションを行なうか否か # History: $LOGFILE_NEWSYSLOG_LIMIT が 0 なら no、0 でないなら yes # Value: YES_OR_NO # Examples: no use_log_rotate = no # Descriptions: ログローテションのポリシー。 # サイズが一定値を越えたら行なうのか?(デフォルト) # それても一定時間おきに行なうのか? # History: none # Value: SELECT ( size interval ) # Examples: size log_rotate_policy = size # Descriptions: ログファイルのサイズが、 # この大きさを越えたらローテーションを行なう。 # History: $LOGFILE_NEWSYSLOG_LIMIT の値 # Value: NUM # Examples: 300000 (300K bytes) log_rotate_size_limit = 300000 # Descriptions: ログファイルローテーションを行なう間隔。 # History: none # Value: NUM # Examples: 86400 (1 day) log_rotate_interval = 86400 # Descriptions: log.0 log.1 などの .数字 部分は最大いくつ? # 大きい数字にすれば、より多く保存することになる # History: none # Value: NUM # Examples: 7 log_rotate_archive_file_total = 7 =head2 charset # Descriptions: # History: # Value: SELECT ( ja en ) # Examples: log_file_default_charset = $log_file_charset_ja # Descriptions: # History: # Value: SELECT ( euc-jp us-ascii ) # Examples: log_file_charset_ja = euc-jp # Descriptions: # History: # Value: SELECT ( euc-jp us-ascii ) # Examples: log_file_charset_en = us-ascii =head2 ドメイン固有 # Descriptions: ドメイン固有のログファイル # admin/*.cgi など ml_name が特定されない場合にだけ使う。 # History: none # Value: FILE # Examples: /var/spool/ml/@log@ domain_local_log_file = $domain_local_dir/@log@ =head2 makefml や fml で詳細なログを STDERR などへ出力したい場合 # Descriptions: 機会処理にやさしいフォーマットでログを出力する。 # コマンドラインオプションで --log-computer-output を指定すると # use_log_computer_output = yes と同じ意味になる。 # History: none # Value: YES_OR_NO # Examples: no use_log_computer_output = no # Descriptions: 機会処理にやさしいフォーマットを出力する際の出力エンジン。 # perl module を指定する。 # History: none # Value: CLASS # Examples: FML::Log::Print::Simple log_computer_output_engine = FML::Log::Print::Simple =head2 syslog # Descriptions: リモートのsyslogホストに転送する場合、そのホストを指定する。 # History: none # Value: STR # Examples: log.example.co.jp log_syslog_servers = # Descriptions: すべてのメッセージの前に現れる文字列 # History: none # Value: STR # Examples: log_syslog_ident = fml/$program_name # Descriptions: see syslog(3) # History: none # Value: MIX (pid ndelay nowait) # Examples: log_syslog_options = pid # Descriptions: see syslog(3) # History: none # Value: SELECT (mail ...) # Examples: mail log_syslog_facility = mail # Descriptions: see syslog(3) # History: none # Value: SELECT (info ...) # Examples: info log_syslog_priority = info =head1 配送プロセス =head2 プロセス # Descriptions: 記事の配送処理プログラムをそもそも使うか? # History: なし # $use_distribute_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: yes / no use_article_post_function = ${use_distribute_program:-yes} =head1 記事の処理 =head2 記事の配送 # Descriptions: 記事を配送する機能を使うか否か? # History: # Value: YES_OR_NO # Examples: use_article_delivery = yes # Descriptions: トランスポート(配送システム)の指定。 # smtpのばあい、$smtp_serversで指定されたMTAを順番に試す。 # History: NONE # Value: SELECT ( smtp lmtp ) # Examples: smtp article_delivery_transport = smtp =head2 記事番号 # Descriptions: 記事番号を保存するファイル (ダミー?) # History: $SEQ_FILE # Value: FILE # Examples: article_sequence_file = $sequence_file =head2 ACL # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: SELECT ( multipart string ) # Examples: string article_post_restrictions_reject_notice_data_type = string =head2 ACL とスレッド # Descriptions: 記事の投稿時に、スレッドの続きであるなら、短時間の間、 # From: に関わらず投稿を許す。 # たとえば転送先からでも投稿を許すといった場合には便利。 # History: none # Value: NUM # Examples: 86400 article_post_article_thread_lifetime = 86400 =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: fml8 では、いくつかのフィルタや制限が整理統合された。 # fml4 では、おおむね次の3つの機能に相当している。 # $USE_DISTRIBUTE_FILTER # $INCOMING_MAIL_SIZE_LIMIT # ADD_CONTENT_HANDLER() # Value: YES_OR_NO # Examples: yes use_article_filter = yes # Descriptions: # History: # Value: MIX ( # article_size_filter # article_header_filter # article_non_mime_filter # article_mime_component_filter # article_text_plain_filter # article_spam_filter # article_virus_filter # ) # Examples: article_filter_functions = article_size_filter article_header_filter article_non_mime_filter article_mime_component_filter article_text_plain_filter article_spam_filter article_virus_filter =head2 サイズ制限ベースのフィルタ # Descriptions: サイズ情報を根拠にしたフィルタリングをするか? # History: no # Value: YES_OR_NO # Examples: use_article_size_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、記事の投稿は認められる。 # History: # Value: MIX ( check_header_size # check_body_size # permit # ) # Examples: article_size_filter_rules = check_header_size check_body_size permit =head2 ヘッダ情報ベースのフィルタ # Descriptions: ヘッダ情報を根拠にしたフィルタリングをするか? # History: disabled by default. # "yes" always if $USE_DISTRIBUTE_FILTER is yes. # Value: YES_OR_NO # Examples: use_article_header_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、記事の投稿は認められる。 # History: check_date に該当するものはない。 # Value: MIX ( # check_message_id # check_date # permit # ) # Examples: article_header_filter_rules = check_message_id check_date permit =head2 MIME 情報ベースのフィルタ # Descriptions: とりあえず、だみ〜 # History: 4.0 の content filter で、!MIME にあたる部分。 # よって、デフォルトでは no ということになる。 # Value: YES_OR_NO # Examples: use_article_non_mime_filter = yes # Descriptions: とりあえず、だみ〜 # History: なし # Value: MIX ( permit reject_empty_content_type ) # Examples: permit article_non_mime_filter_rules = reject_empty_content_type permit # Descriptions: MIME の構造に基づいたフィルタを行なう # History: 4.0 の content filter 相当。デフォルトでは no だ。 # Value: YES_OR_NO # Examples: use_article_mime_component_filter = yes # Descriptions: ファイル名 # History: 4.0 の @CONTENT_HANDLER 相当 # Value: FILE # Examples: article_mime_component_filter_rules = $fml_config_dir/mime_component_filter =head2 テキスト部分に対するフィルタ # Descriptions: 先頭の text/plain 部分に対するフィルタ。 # 簡単なシンタックスチェック # History: 4.0 の EnvelopeFilter 相当。 # $USE_DISTRIBUTE_FILTER が yes の場合、 # 以下のルールの半分くらいが自動的に適用されていた。 # Value: YES_OR_NO # Examples: use_article_text_plain_filter = yes # Descriptions: テキスト部分へのフィルタリングのルール。 # 正確には弾くべき特別なもののルール(マッチしないなら通す) # History: See kern/libenvf.pl for more detail. # [DISABLED BY DEFAULT] # # reject_not_iso2022jp_japanese_string # <=> FILTER_ATTR_REJECT_INVALID_JAPANESE # reject_old_fml_command_syntax # <=> FILTER_ATTR_REJECT_COMMAND # reject_japanese_command_syntax # <=> FILTER_ATTR_REJECT_2BYTES_COMMAND # # [ENABLED BY DEFAULT] # # reject_null_mail_body # <=> FILTER_ATTR_REJECT_NULL_BODY # reject_invalid_fml_command_syntax # <=> FILTER_ATTR_REJECT_INVALID_COMMAND # reject_one_line_message # <=> FILTER_ATTR_REJECT_ONE_LINE_BODY # reject_ms_guid # <=> FILTER_ATTR_REJECT_MS_GUID # # Note: permit by default # Value: MIX ( # 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 # ) # 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 SPAM メールに対するフィルタ # Descriptions: 外部のSPAMチェッカを使った検査、デフォルトでは無効。 # また有効にした場合、ヘッダにSPAMであることを知らせる # フラッグをつけ通過させる動作がデフォルト。 # History: none # Value: YES_OR_NO # Examples: no use_article_spam_filter = no # Descriptions: SPAMだと判定された場合、どうするか? # History: none # Value: MIX ( reject ignore header_rewrite ) # Examples: header_rewrite article_spam_filter_rules = header_rewrite # Descriptions: SPAMチェッカとして使う外部プログラム。 # 複数指定すると、複数のプログラムを順に試す。 # History: none # Value: MIX ( spamassasin spamc bogofilter ) # Examples: bogofilter article_spam_filter_drivers = bogofilter =head2 Virus メールに対するフィルタ # Descriptions: 外部のVirusチェッカを使った検査、デフォルトでは無効。 # History: none # Value: YES_OR_NO # Examples: no use_article_virus_filter = no # Descriptions: ウィルスだと判定された場合、どうするか? # History: none # Value: MIX ( reject ignore header_rewrite ) # Examples: reject article_virus_filter_rules = reject # Descriptions: ウィルスチェッカとして使う外部プログラム # 複数指定すると、複数のプログラムを順に試す。 # History: none # Value: MIX ( clamscan ) # Examples: clamscan article_virus_filter_drivers = clamscan =head2 フィルタで弾かれたことを教える # Descriptions: フィルタで弾かれたことを教える # History: maintainer には常に弾かれたことを知らせるが、 # sender に対しては $FILTER_NOTIFY_REJECTION (= 0 by default)。 # デフォルトでは、管理者にのみ知らせる。 # Value: YES_OR_NO # Examples: yes use_article_filter_reject_notice = yes # Descriptions: エラーのお知らせの受信者 # History: 4.0 では maintainer あてはハードコーデイングで常に知らせる。 # sender 宛ては $FILTER_NOTIFY_REJECTION で制御されていて # デフォルトでは知らせない。 # Value: MIX ( maintainer sender ) # Examples: maintainer sender article_filter_reject_notice_recipients = maintainer sender # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: SELECT ( multipart string ) # Examples: string article_filter_reject_notice_data_type = string =head2 スレッドの概要 # Descriptions: 自動的にスレッドの概要を記事に追加するか否か # History: none # Value: YES_OR_NO # Examples: no use_article_thread_outline = no # Descriptions: スレッドの概要を記事に追加する際にどこに追加するのか # History: none # Value: SELECT ( add_outline_to_header | append_outline_to_body ) # Examples: add_header append_body article_thread_outline_rules = add_outline_to_header append_outline_to_body # Descriptions: スレッドの概要が始まる部分につける挨拶 # History: none # Value: STR # Examples: [本スレッドのあらすじ] article_thread_outline_greeting_ja = [本スレッドのあらすじ] # Descriptions: スレッドの概要が始まる部分につける挨拶 # History: none # Value: STR # Examples: [outline of this thread] article_thread_outline_greeting_en = [outline of this thread] =head2 古い記事の自動消去 # Descriptions: 古い記事を自動消去するか否か? # History: $USE_EXPIRE # Value: YES_OR_NO # Examples: no use_article_expire = no # Descriptions: どのくらい古い記事を消すか? # History: $EXPIRE_LIMIT # Value: TIME # Examples: 90d article_expire_limit = 90d =head2 ARTICLE SPAM FILTER CONFIGURATIONS # Descriptions: # History: # Value: YES_OR_NO # Examples: use_article_spam_filter = no # Descriptions: list up driver names used as spam checker. # History: none # Value: MIX ( spamassassin spamc bogofilter ) # Examples: bogofilter article_spam_filter_functions = bogofilter =head3 SpamAssassin # Descriptions: exit non-zero status code when spam caught if "-e" specified. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: -e article_spam_filter_spamassassin_options = -e # Descriptions: spamc optoins. "-c" means check only. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: -c article_spam_filter_spamc_options = -c =head3 BogoFilter # Descriptions: "-e" implies embedded mode. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: -e article_spam_filter_bogofilter_options = -e =head1 isolation # Descriptions: top level directory to hold isolated messages # which are aligned for administrators to be easy to check. # History: NONE # Value: DIR # Examples: /var/spool/ml/elena/var/mail/queue-moderate isolated_queue_dir = $var_dir/mail/queue-isolated # Descriptions: expire messages in the queue after this limit. # History: NONE # Value: TIME # Examples: 14d isolated_queue_expire_limit = 14d =head2 ARTICLE VIRUS FILTER CONFIGURATIONS # Descriptions: # History: # Value: YES_OR_NO # Examples: use_article_virus_filter = no # Descriptions: list up driver names used as virus checker. # History: none # Value: MIX ( virusassassin virusc bogofilter ) # Examples: bogofilter article_virus_filter_functions = clamav =head3 ClamAV # Descriptions: --mbox needed for mail files. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: --quiet --mbox article_virus_filter_clamav_options = --quiet --mbox =head1 記事および記事のスプール # Descriptions: 記事をスプールディレクトリに保存する # History: 4.0 の $NOT_USE_SPOOL # Value: YES_OR_NO # Examples: use_spool = yes # Descriptions: 記事をスプールディレクトリに保存する # History: none # Value: YES_OR_NO # Examples: yes use_article_spool = ${use_spool:-yes} # Descriptions: スプールのタイプ # 記事のスプールディレクトリを階層化するか? # デフォルトでは平面的にファイルを配置する # History: 4.0 にはない。fml-devel new # Value: SELECT ( plane subdir ) # Examples: plane spool_type = plane # Descriptions: 記事を保存するディレクトリ # History: 4.0 の $SPOOL_DIR # Value: DIR # Examples: spool_dir = $ml_home_dir/spool # Descriptions: # History: # Value: NUM # Examples: spool_subdir_unit = 1000 # Descriptions: 記事番号を保存するファイル # History: $SEQ_FILE # Value: FILE # Examples: sequence_file = $ml_home_dir/seq =head1 記事のサマリ # Descriptions: # History: # Value: FILE # Examples: article_summary_file = $ml_home_dir/summary # Descriptions: # History: # Value: SELECT ( fml4_compatible ) # Examples: article_summary_file_format_style = fml4_compatible # Descriptions: アドレスは先頭の何バイトかだけを記録する。詳しくはログ見ろ # History: # Value: NUM # Examples: 15 article_summary_file_format_address_length = 15 =head2 記事の自動消去に追従 # Descriptions: 記事の自動消去($use_article_expire)に追従して # サマリも作りなおす(存在しない記事部分を削除) # History: $EXPIRE_SUMMARY # Value: YES_OR_NO # Examples: no use_article_summary_file_expire = no =head1 記事を HTML 化する # Descriptions: 記事を HTML 化するか否か # History: fml 4 の $AUTO_HTML_GEN # Value: YES_OR_NO # Examples: yes use_html_archive = yes # Descriptions: HTML 化された記事を作るディレクトリ (MLごと) # 注意: ドメインごと、MLごとに別のディレクトリになる # History: none # Value: DIR # 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: SELECT ( normal reverse ) # Examples: reverse html_archive_index_order_type = reverse # Descriptions: # History: # Value: YES_OR_NO # Examples: use_html_archive_address_mask = yes # Descriptions: # History: # Value: SELECT ( all ) # Examples: html_archive_address_mask_type = all # Descriptions: # History: # Value: SELECT ( euc-jp us-ascii ) # Examples: html_archive_default_charset = $html_archive_charset_ja # Descriptions: # History: # Value: SELECT ( euc-jp ) # Examples: html_archive_charset_ja = euc-jp # Descriptions: # History: # Value: SELECT ( us-ascii ) # Examples: html_archive_charset_en = us-ascii =head1 PGP =head2 authentication by pgp # Descriptions: pgp configurations for article authentication. # History: $DIST_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/pgp-article-post-auth article_post_auth_pgp_config_dir = $etc_dir/pgp-article-post-auth # Descriptions: pgp configurations for (user) commnad mail authentication. # History: none # Value: DIR # Examples: /var/spool/ml/elena/etc/pgp-command-mail-auth command_mail_auth_pgp_config_dir = $etc_dir/pgp-command-mail-auth # Descriptions: pgp configurations for admin commnad mail authentication. # History: $ADMIN_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/pgp-admin-command-mail-auth admin_command_mail_auth_pgp_config_dir = $etc_dir/pgp-admin-command-mail-auth # Descriptions: conventional naming # (symlink to $admin_command_mail_auth_pgp_config_dir). # History: $ADMIN_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/pgp-admin admin_command_mail_auth_pgp_config_dir_alias = $etc_dir/pgp-admin =head2 encryption by pgp # Descriptions: pgp configurations for article encryption. # History: $DIST_ENCRYPT_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/pgp-article-post-encrypt article_post_encrypt_pgp_config_dir = $etc_dir/pgp-article-post-encrypt =head1 GPG =head2 authentication by gpg # Descriptions: gpg configurations for article authentication. # History: $DIST_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/gpg-article-post-auth article_post_auth_gpg_config_dir = $etc_dir/gpg-article-post-auth # Descriptions: gpg configurations for (user) commnad mail authentication. # History: none # Value: DIR # Examples: /var/spool/ml/elena/etc/gpg-command-mail-auth command_mail_auth_gpg_config_dir = $etc_dir/gpg-command-mail-auth # Descriptions: gpg configurations for admin commnad mail authentication. # History: $ADMIN_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/gpg-admin-command-mail-auth admin_command_mail_auth_gpg_config_dir = $etc_dir/gpg-admin-command-mail-auth # Descriptions: conventional naming # (symlink to $admin_command_mail_auth_gpg_config_dir). # History: $ADMIN_AUTH_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/gpg-admin admin_command_mail_auth_gpg_config_dir_alias = $etc_dir/gpg-admin =head2 encryption by gpg # Descriptions: gpg configurations for article encryption. # History: $DIST_ENCRYPT_KEYRING_DIR # Value: DIR # Examples: /var/spool/ml/elena/etc/gpg-article-post-encrypt article_post_encrypt_gpg_config_dir = $etc_dir/gpg-article-post-encrypt =head1 コマンドの定義 =head2 プロセス # Descriptions: コマンドメールを使うか? # History: なし # $use_command_mail_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: yes / no use_command_mail_function = ${use_command_mail_program:-yes} # Descriptions: admin コマンドメールを使うか? # History: $REMOTE_ADMINISTRATION # Value: YES_OR_NO # Examples: yes / no use_admin_command_mail_function = no # Descriptions: コマンドメールの返事の先頭に # 「こちらは fml8 です…」と自己紹介するか否か? # History: none # Value: YES_OR_NO # Examples: yes / no use_command_mail_reply_preamble = yes # Descriptions: コマンドメールの返事の最後に処理結果のサマリをつけるか否か? # History: none # Value: YES_OR_NO # Examples: yes / no use_command_mail_reply_trailor = yes =head2 コマンド プロンプト # Descriptions: command prompt in message reply # History: hard coded in fml (< 4.0) # Value: PROMPT # Examples: >>> command_mail_reply_prompt = >>> =head2 フィルタ # Descriptions: # History: # Value: YES_OR_NO # Examples: use_command_mail_filter = yes # Descriptions: # History: # Value: MIX ( command_mail_size_filter ) # Examples: command_mail_filter_functions = command_mail_size_filter =head2 フィルタで弾かれたことを教える # Descriptions: フィルタで弾かれたことを教える # History: 4.0 ではハードコードだったような… # Value: YES_OR_NO # Examples: yes use_command_mail_filter_reject_notice = yes # Descriptions: エラーのお知らせの受信者 # History: 4.0 ではハードコードだったような… # Value: MIX ( maintainer sender ) # Examples: maintainer sender command_mail_filter_reject_notice_recipients = maintainer sender # Descriptions: 弾いたメールをどのようにフォワードするか? # ウィルスなどを考慮すると、文字列がいいとおもう # History: 4.0 では文字列で、これはハードコーディングされていた。 # Value: SELECT ( multipart string ) # Examples: string command_mail_filter_reject_notice_data_type = string =head2 サイズ制限ベースのフィルタ # Descriptions: サイズ情報を根拠にしたフィルタリングをするか? # History: # Value: YES_OR_NO # Examples: use_command_mail_size_filter = yes # Descriptions: フィルタリングのルール。 # どのルールにもマッチしないなら、コマンドメールは認められる。 # History: # Value: MIX ( # check_header_size # check_body_size # check_command_limit # check_line_length_limit # permit # ) # Examples: command_mail_size_filter_rules = check_header_size check_body_size check_command_limit check_line_length_limit permit # 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 コマンドメール一通あたりに含まれているコマンドへの上限 # # 以下の制限はコマンドメールの文面全体についてのものであり、 # コマンド依存の制限が別途存在する # 例: ${コマンド名}_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 CGI # Descriptions: listinfo template template dir # History: /usr/local/fml/listinfo/ # Value: DIR # Examples: /usr/local/share/fml/$fml_version/listinfo listinfo_template_base_dir = $fml_share_dir/listinfo # Descriptions: listinfo template # History: /usr/local/fml/listinfo/ # Value: DIR # Examples: /usr/local/share/fml/$fml_version/listinfo/$language listinfo_template_dir = $fml_share_dir/listinfo/$template_file_default_charset # Descriptions: information をおくディレクトリ (MLごと) # History: none # Value: DIR # 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: DIR # Examples: ~fml/public_html/fml/listinfo/fml.org/elena listinfo_dir = $listinfo_base_dir/$ml_domain/$ml_name =head2 コンテキストごとのコマンドのリスト # Descriptions: 有効なコマンド一覧を書く # History: fml 4.0 ではデフォルトのコマンド定義一覧に対し # @PERMIT_PROCEDURE @DENY_PROCEDURE などで # 変更を加える # Value: FML_COMMAND_LIST # Examples: user_command_mail_allowed_commands = help get mget get mget send subscribe add unsubscribe bye on off digest remove resign signoff chaddr confirm guide info admin objective summary # Descriptions: # History: # Value: FML_COMMAND_LIST # Examples: anonymous_command_mail_allowed_commands = guide info add subscribe chaddr $confirm_command_prefix # Descriptions: # History: # Value: FML_COMMAND_LIST # Examples: admin_command_mail_allowed_commands = 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 # Descriptions: マスター管理用 CGI で許されるコマンドのリスト # History: # Value: FML_COMMAND_LIST # Examples: adduser deluser addadmin deladmin digeston digestoff list log # newml rmml reviveml admin_cgi_allowed_commands = adduser deluser addadmin deladmin digeston digestoff list log newml rmml reviveml # Descriptions: 各MLごとの管理用 CGI で許されるコマンドのリスト # History: # Value: FML_COMMAND_LIST # Examples: adduser deluser addadmin deladmin digeston digestoff list log ml_admin_cgi_allowed_commands = adduser deluser addadmin deladmin digeston digestoff list log # Descriptions: # History: none # Value: FML_COMMAND_LIST # Examples: subscribe unsubscribe ml_anonymous_cgi_allowed_commands = subscribe unsubscribe =head2 特定のコマンドへの制限 # Descriptions: confirmation の返事を表す特別なコマンド # Value: FML_COMMAND # Examples: confirm_command_prefix = confirm # Descriptions: confirmation が有効な期間。 # m(min), h(hour), d(day), w(week) などの表記を使っても良い。 # History: $CONFIRMATION_EXPIRE # Value: TIME # Examples: 14d confirm_command_expire_limit = 14d # Descriptions: 管理用のコマンドを表す特別なコマンド # Value: FML_COMMAND # Examples: privileged_command_prefix = admin # Descriptions: get コマンドで指定できる記事数の上限。 # 一つの get コマンドの上限であり、かつ、 # 複数の get コマンドのリクエスト記事数を全部足し合わせた値が # この値を越えていないか?もチェックされる。 # History: $MGET_SEND_BACK_FILES_LIMIT # Value: NUM # Examples: 100 get_command_request_limit = 100 # Descriptions: subscribe コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation manual ) # Examples: subscribe_command_auth_type = confirmation # Descriptions: subscribe の処理は自動か?管理者による手動か? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: subscribe_command_operation_mode = automatic # Descriptions: chaddr コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation manual ) # Examples: chaddr_command_auth_type = confirmation # Descriptions: chaddr の処理は自動か?管理者による手動か? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: chaddr_command_operation_mode = automatic # Descriptions: unsubscribe コマンドで confirmation 認証(コールバック認証) # を行なうか否か? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation manual ) # Examples: unsubscribe_command_auth_type = confirmation # Descriptions: unsubscribe の処理は自動か?管理者による手動か? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: unsubscribe_command_operation_mode = automatic =head2 newml command # Descriptions: ML作成時 (makefml newml)の際に作られる # テンプレートファイル # Value: FILE_LIST # Examples: newml_command_template_files = config.cf # Descriptions: ML作成時の際に作われる fml_owner の値の指定。 # -admin 宛のエラーメールなどが転送される先である。 # デフォルトでは main.cf の fml_owner の値(通常ユーザ fml)。 # Value: RFC822_USER_OR_RFC822_ADDRESS # Examples: newml_command_ml_admin_default_address = $fml_owner =head2 list command # Descriptions: 引数で指定しない時に、list コマンドが表示するべきマップ # History: none # Value: MAP_LIST # Examples: list_command_default_maps = $recipient_maps =head log command # Descriptions: 最後の何行を表示するか?つまり tail -100 log の 100 の部分。 # History: $ADMIN_LOG_DEFAULT_LINE_LIMIT # Value: NUM # Examples: 100 log_command_tail_starting_location = 100 =head1 エラーメール解析 =head2 # Descriptions: エラーメールの転送先。デフォルトは未定義。 # エラーメールの転送先を mysql で制御したいとか # リモート管理の時は、admin_recipient_maps にしたいなどの # 需要があると思われる。 # History: 4.0 に該当するものはない # Value: MAP_LIST # Examples: file:$ml_home_dir/recipients-maintainer # $admin_recipient_maps maintainer_recipient_maps = =head2 プロセス # Descriptions: エラー解析プログラムを使うか? # History: なし # use_error_analyzer_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: yes / no use_error_mail_analyzer_function = ${use_error_analyzer_program:-yes} =head2 キャッシュ # Descriptions: error messages のキャッシュを格納するディレクトリ # History: /var/spool/ml/mead/errormaillog # Value: DIR # Examples: error_mail_analyzer_cache_dir = $db_dir/error # Descriptions: キャッシュのタイプ # History: none # Value: CLASS # Examples: File::CacheDir error_mail_analyzer_cache_type = File::CacheDir # Descriptions: キャッシュのモード # History: none # Value: SELECT ( temporal ) # Examples: error_mail_analyzer_cache_mode = temporal # Descriptions: キャッシュのサイズ # mode が temporal なら日数だ。 # History: none # Value: NUM # Examples: error_mail_analyzer_cache_size = 14 =head2 データを解析する # Descriptions: FML::Error::Analyze 中の関数名。 # History: none # Value: MIX ( simple_count histgram ) # Examples: simple_count error_mail_analyzer_function_select_list = simple_count histgram # Descriptions: FML::Error::Analyze 中の関数名。 # History: none # Value: SELECT ( simple_count histgram ) # Examples: simple_count error_mail_analyzer_function = histgram # Descriptions: simple_count のエラー回数の上限 # History: none # Value: NUM # Examples: 5 error_mail_analyzer_simple_count_limit = 5 =head1 スレッド追跡システム # Descriptions: スレッド追跡システムを使うか # History: fml 8.0 new # Value: YES_OR_NO # Examples: use_thread_track = yes # Descriptions: スレッド追跡システムは Subject タグを利用するか? # XXX ん〜でも、使わなくてもいけそうですわ # History: fml 5.0 new # Value: YES_OR_NO # Examples: use_thread_subject_tag = no # Descriptions: チケットにつけるML名 # 複数のMLにまたがったチケットを追跡するために # 必要 # History: fml 5.0 new # Value: ML_NAME # Examples: elena thread_subject_tag_name = $ml_name # Descriptions: チケット番号のシンタックス # XXX ん〜でも、使わなくてもいけそうですわ # History: fml 5.0 new # Value: SUBJECT_TAG # 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: SUBJECT_TAG # Examples: [elena_#00001010] # [elena/100] thread_subject_tag = [$thread_id_syntax] # Descriptions: Subject につけるチケット番号のシンタックスの場所 # 前につけるか、それとも後ろにつけるか? # History: fml 5.0 new # Value: SELECT ( appended prepended ) # Examples: Subject: [elena/100] .... # Subject: .... [elena/100] thread_subject_tag_location = appended # Descriptions: チケット番号を保存するファイル # History: fml 5.0 new # Value: FILE # 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: DIR # Examples: /var/spool/ml/@db@/thread thread_db_dir = $shared_db_dir/thread # Descriptions: CGI の相対パス # History: # Value: FILE # Examples: thread_cgi_base_url = /cgi-bin/fmlthread.cgi # Descriptions: CGI のタイトル # History: # Value: STR # Examples: thread_cgi_title = thread tracking system interface # Descriptions: CGI 画面の基本カラー # History: # Value: HTML_COLOR # Examples: thread_cgi_bgcolor = #E6E6FA =head1 CGI 関連の設定 =head2 管理用 CGI # Descriptions: 管理用 CGI を置くトップディレクトリ # History: # Value: DIR # Examples: cgi_base_dir = $fml_owner_home_dir/public_html/cgi-bin/fml # Descriptions: このドメイン全体を管理できる CGI を置くディレクトリ。 # 注意: ドメインごと、MLごとに別のディレクトリ。 # なお、ACL は管理用 CGI の単位「~fml/cgi-bin/fml/」か # ドメイン単位「~fml/cgi-bin/fml/ドメイン/」でかけると # 便利だろう。また、「fml/ドメイン/役割/」となっているのは、 # マスターだけ「~fml/cgi-bin/fml/ドメイン/admin」と # 各MLごと「~fml/cgi-bin/fml/ドメイン/ml-admin」で # 別の ACL を書けるようにするためである。 # History: # Value: DIR # Examples: ~fml/public_html/cgi-bin/fml/fml.org/admin admin_cgi_base_dir = $cgi_base_dir/$ml_domain/admin # Descriptions: 特定のML向け管理用 CGI を置くディレクトリ。 # 注意: ドメインごと、MLごとに別のディレクトリ # History: # Value: DIR # Examples: ~fml/public_html/cgi-bin/fml/fml.org/ml-admin/elena ml_admin_cgi_base_dir = $cgi_base_dir/$ml_domain/ml-admin/$ml_name # Descriptions: CGI 表示のデフォルト CHARSET # History: # Value: SELECT ( euc-jp us-ascii ) # Examples: cgi_default_charset = $cgi_charset_ja # Descriptions: CGI 表示の日本語デフォルト CHARSET # History: # Value: SELECT ( euc-jp ) # Examples: cgi_charset_ja = euc-jp # Descriptions: CGI の表示の英語デフォルト CHARSET # History: # Value: SELECT ( us-ascii) # Examples: cgi_charset_en = us-ascii # Descriptions: CGI のデフォルト言語モード (!= charset) # History: # Value: SELECT ( japanese ) # Examples: cgi_default_language = japanese # Descriptions: CGI で利用可能な言語モード一覧 (!= charset) # History: # Value: MIX ( japanese english ) # Examples: cgi_language_select_list = japanese english # Descriptions: デフォルトの bgcolor # History: # Value: HTML_COLOR # Examples: #FFFFFF cgi_main_menu_color = #FFFFFF # Descriptions: デフォルトの bgcolor # History: 4.0 には該当する変数はない # Value: HTML_COLOR # Examples: #FFFFFF cgi_navigation_bar_color = #FFFFFF # Descriptions: 管理用 CGI でのアドレス操作の際に選べるマップ一覧 # History: 4.0 には該当する変数はない # Value: MIX ( member recipient admin_member ) # Examples: member recipient admin_member cgi_menu_address_map_select_list = member recipient admin_member # Descriptions: 管理用 CGI でのアドレス操作に使うマップのデフォルト値 # History: 4.0 には該当する変数はない # Value: MIX ( member recipient admin_member ) # Examples: member cgi_menu_default_address_map = recipient =head2 一般人(管理者以外)向け CGI # Descriptions: WWW から subscribe や unsubscribe リクエストを受け付ける # ための CGI インターフェイスを使うか否か?。デフォルトは YES。 # History: 4.0 にはなし # Value: YES_OR_NO # Examples: yes use_anonymous_cgi_function = yes # Descriptions: 一般ユーザ用 CGI session ID の有効時間 # History: NONE # Value: TIME # Examples: 15m anonymous_cgi_expire_limit = 15m # Descriptions: 一般人向け CGI を置くトップディレクトリ。 # cgi-bin/ 直下で fml と anonymous と分けているのは、 # 管理用 CGI の単位「~fml/cgi-bin/fml/」と # 一般向け CGI の単位「~fml/cgi-bin/anonymous/」で # 別の ACL を書きやすくするため。 # History: 4.0 にはなし # Value: DIR # Examples: ~fml/public_html/cgi-bin/anonymous/fml.org anonymous_cgi_base_dir = $fml_owner_home_dir/public_html/cgi-bin/anonymous # Descriptions: このMLの一般人向け CGI を置くディレクトリ。 # 注意: ドメインごと、MLごとに別のディレクトリになる。 # History: 4.0 にはなし # Value: DIR # Examples: ~fml/public_html/cgi-bin/anonymous/fml.org/elena ml_anonymous_cgi_base_dir = $anonymous_cgi_base_dir/$ml_domain/$ml_name # Descriptions: このMLの一般人向け CGI を置く URL のベース。 # 注意: ドメインごと、MLごとに別のディレクトリになる。 # History: 4.0 にはなし # Value: DIR # Examples: /~fml/cgi-bin/anonymous/fml.org/elena ml_anonymous_cgi_base_url = /~$fml_owner/cgi-bin/anonymous/$ml_domain/$ml_name =head2 管理用 CGI 一時領域 # Descriptions: 管理用 CGI 一時領域ディレクトリ # History: none # Value: DIR # Examples: ~fml/public_html/fml/tmp html_tmp_dir = $fml_owner_home_dir/public_html/fml/tmp # Descriptions: 管理用 CGI 一時領域 URL # History: none # Value: DIR # Examples: /~fml/fml/tmp html_tmp_base_url = /~$fml_owner/fml/tmp =head1 MTA に依存する設定のヒント # Descriptions: # History: # Value: MIX ( postfix sendmail qmail procmail ) # Examples: newml_command_mta_config_list = postfix sendmail qmail procmail # Descriptions: # History: # Value: MIX ( postfix sendmail qmail procmail ) # Examples: rmml_command_mta_config_list = $newml_command_mta_config_list =head2 directory # Descriptions: MTA 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc/mail domain_mail_config_dir = $domain_config_base_dir/mail # Descriptions: postfix 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc/mail domain_postfix_config_dir = $domain_config_base_dir/postfix # Descriptions: qmail 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc/mail domain_qmail_config_dir = $domain_config_base_dir/qmail # Descriptions: exim 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc/mail domain_exim_config_dir = $domain_config_base_dir/exim # Descriptions: sendmail 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # Examples: /var/spool/ml/etc/sendmail domain_sendmail_config_dir = $domain_config_base_dir/sendmail # Descriptions: MTA 用に教えるための設定ファイルを置くディレクトリ # History: fml 4.0 ではきめうち # Value: DIR # 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 # 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 # Examples: /var/spool/ml/etc/mail/virtual postfix_virtual_map_file = $domain_postfix_config_dir/virtual # Descriptions: ML作成時 (makefml newml)の際に作られる # postfix テンプレートファイル # Value: FILE_LIST # Examples: newml_command_postfix_template_files = include include-ctl include-error # Descriptions: verps delimieters used in postfix # History: none # Value: RFC822_ADDRESS_DELIMITERS # Examples: += postfix_verp_delimiters = += =head2 qmail # Descriptions: ML作成時 (makefml newml)の際に作られる # qmail テンプレートファイル # Value: FILE_LIST # 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 # Examples: /var/qmail/control/virtualdomains qmail_virtualdomains_file = /var/qmail/control/virtualdomains # Descriptions: MTA に教えるための virtual map ファイル(テンプレート) # History: none # Value: FILE # 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: RFC822_ADDRESS_DELIMITERS # Examples: -= qmail_verp_delimiters = -= =head2 sendmail # Descriptions: MTA に教えるための virtual map ファイル # History: none # Value: FILE # 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 # Examples: /var/spool/ml/etc/procmail/aliases procmail_aliases_file = $domain_procmail_config_dir/procmailrc =head1 fetchfml: pop/imap based mta and ml emulation # Descriptions: use fetchfml function or not. # History: none # Value: YES_OR_NO # Examples: yes / no use_fetchfml_function = no # Descriptions: queue_dir fetchfml uses as temporary incoming queue # which holds messages fetched via POP3/IMAP4. # History: none # Value: DIR # Examples: /var/spool/ml/elena/var/mail/queue-fetchfml fetchfml_queue_dir = $var_dir/mail/queue-fetchfml # Descriptions: protocol to fetch messages. # History: none # Value: SELECT ( pop3 pop apop imap4 imap ) # Examples: pop3 fetchfml_fetch_protocol = pop3 # Descriptions: use fetchfml article_post function or not. # History: none # Value: YES_OR_NO # Examples: yes / no use_fetchfml_article_post_function = yes # Descriptions: username to fetch article messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_article_post_user = $ml_name # Descriptions: password to fetch article messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_article_post_password = ******** # Descriptions: use fetchfml command_mail function or not. # History: none # Value: YES_OR_NO # Examples: yes / no use_fetchfml_command_mail_function = yes # Descriptions: username to fetch command messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_command_mail_user = $ml_name-ctl # Descriptions: password to fetch command messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_command_mail_password = ******** # Descriptions: use fetchfml error_mail_analyzer function or not. # History: none # Value: YES_OR_NO # Examples: yes / no use_fetchfml_error_mail_analyzer_function = yes # Descriptions: username to fetch error messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_error_mail_analyzer_user = $ml_name-admin # Descriptions: password to fetch error messages for $ml_name ML # History: none # Value: STR # Examples: elena fetchfml_error_mail_analyzer_password = ******** # Descriptions: pop servers fetchfml process uses. # History: none # Value: STR # Examples: pop.example.co.jp fetchfml_pop_servers = localhost # Descriptions: imap servers fetchfml process uses. # History: none # Value: STR # Examples: imap.example.co.jp fetchfml_imap_servers = localhost =head1 moderate # Descriptions: use moderate function or not. # History: none # Value: YES_OR_NO # Examples: yes / no use_moderate_function = yes # Descriptions: queue_dir moderate uses as temporary incoming queue # which holds messages fetched via POP3/IMAP4. # History: none # Value: DIR # Examples: /var/spool/ml/elena/var/mail/queue-moderate moderate_queue_dir = $var_dir/mail/queue-moderate # Descriptions: expire submitted queue after $moderate_expire_limit. # History: $MODERATOR_EXPIRE_LIMIT # Value: TIME # Examples: 14d moderate_queue_expire_limit = 14d =head1 CREATE-ON-POST # Descriptions: CREATE-ON-POST 機能を使うか否か? # なお、この変数は createonpost プログラムでのみ意味がある。 # History: NONE # Value: YES_OR_NO # Examples: yes use_createonpost_function = yes =head2 CREATE-ON-POST で投稿可能な人 # Descriptions: CREATE-ON-POST なMLへ投稿できる人は誰か? # デフォルトはループを防ぐための例外を除き「誰でも投稿可」 # History: NONE # Value: MIX ( # reject_errormail # reject_fml8_managed_address # reject_createonpost_domain # reject_list_header_field # reject_system_special_accounts # permit_createonpost_sender_maps # permit_anyone # ) # Examples: permit_anyone createonpost_sender_restrictions = reject_system_special_accounts reject_errormail reject_list_header_field reject_fml8_managed_address reject_createonpost_domain permit_anyone # Descriptions: # ファイルの中は、たとえば \S+\@example.com # History: NONE # Value: FILE # Examples: pcre:$ml_home_dir/sender.allow.pcre createonpost_sender_maps = pcre:$ml_home_dir/sender.allow.pcre =head2 CREATE-ON-POST で subscribe 可能な人 # Descriptions: REATE-ON-POST なMLへ subscribe できる人は誰か? # デフォルトはループを防ぐための例外を除き「誰でも可」 # History: NONE # Value: MIX ( # reject_errormail # reject_fml8_managed_address # reject_createonpost_domain # permit_createonpost_subscribe_maps # permit_anyone # ) # Examples: permit_anyone createonpost_subscribe_restrictions = reject_system_special_accounts reject_errormail reject_fml8_managed_address reject_createonpost_domain permit_anyone # Descriptions: # ファイルの中は、たとえば \S+\@example.com # History: NONE # Value: FILE # Examples: pcre:$ml_home_dir/subscribe.allow.pcre createonpost_subscribe_maps = pcre:$ml_home_dir/subscribe.allow.pcre =head2 CREATE-ON-POST でMLを作成可能な人 # Descriptions: CREATE-ON-POST で動的にMLを作ることができるユーザ # を制限する。 # デフォルトでは $ml_domain (サーバのデフォルトドメイン) # のユーザのみ(create-on-post 用に別のドメインを使うので、 # これは大抵サーバ管理者たちという意味)。 # もっと細かい制御をしたいなら、正規表現も使える # $createonpost_newml_maps でドメイン制限などを行なうと良い。 # History: fml4 にはない。 # fml8 の初期実装では、この restrictions はなく、 # permit_anyone と同じ意味であった。 # Value: MIX ( # reject_errormail # reject_fml8_managed_address # reject_createonpost_domain # permit_createonpost_newml_maps # permit_ml_domain # permit_anyone # ) # Examples: permit_anyone createonpost_newml_restrictions = reject_system_special_accounts reject_errormail reject_fml8_managed_address reject_createonpost_domain permit_createonpost_maintainer_maps permit_ml_domain # Descriptions: CREATE-ON-POST で動的にMLを作ることができるユーザのリスト。 # pcre マップを使えば正規表現も使える。 # ファイルの中は、たとえば \S+\@example.com # History: NONE # Value: FILE # Examples: pcre:$ml_home_dir/newml.allow.pcre createonpost_newml_maps = pcre:$ml_home_dir/newml.allow.pcre =head1 program paths # Descriptions: # History: # Value: FILE # Examples: path_perl = @PERL@ # Descriptions: # History: # Value: FILE # Examples: path_cksum = @CKSUM@ # Descriptions: # History: # Value: FILE # Examples: path_sum = @SUM@ # Descriptions: # History: # Value: FILE # Examples: path_md5 = @MD5@ # Descriptions: # History: # Value: FILE # Examples: path_tar = @TAR@ # Descriptions: # History: # Value: FILE # Examples: path_gzip = @GZIP@ # Descriptions: # History: # Value: FILE # Examples: path_zcat = @ZCAT@ # Descriptions: # History: # Value: FILE # Examples: path_gzcat = @GZCAT@ # Descriptions: # History: # Value: FILE # Examples: path_gunzip = @GUNZIP@ # Descriptions: # History: # Value: FILE # Examples: path_lha = @LHA@ # Descriptions: # History: # Value: FILE # Examples: path_ls = @LS@ # Descriptions: # History: # Value: FILE # Examples: path_ish = @ISH@ # Descriptions: # History: # Value: FILE # Examples: path_bzip2 = @BZIP2@ # Descriptions: # History: # Value: FILE # Examples: path_bunzip2 = @BUNZIP2@ # Descriptions: # History: # Value: FILE # Examples: path_uuencode = @UUENCODE@ # Descriptions: # History: # Value: FILE # Examples: path_compress = @COMPRESS@ =head2 MTA related program paths # Descriptions: # History: # Value: FILE # Examples: path_sendmail = @SENDMAIL@ # Descriptions: # History: # Value: FILE # Examples: path_makemap = @MAKEMAP@ # Descriptions: # History: # Value: FILE # Examples: path_newaliases = @NEWALIASES@ # Descriptions: # History: # Value: FILE # Examples: path_postfix = @POSTFIX@ # Descriptions: # History: # Value: FILE # Examples: path_postalias = @POSTALIAS@ # Descriptions: # History: # Value: FILE # Examples: path_postconf = @POSTCONF@ # Descriptions: # History: # Value: FILE # Examples: path_postmap = @POSTMAP@ =head2 encryption/decryption # Descriptions: # History: # Value: FILE # Examples: path_pgp = @PGP@ # Descriptions: # History: # Value: FILE # Examples: path_pgp5 = @PGP5@ # Descriptions: # History: # Value: FILE # Examples: path_pgpe = @PGPe@ # Descriptions: # History: # Value: FILE # Examples: path_pgpk = @PGPK@ # Descriptions: # History: # Value: FILE # Examples: path_pgps = @PGPS@ # Descriptions: # History: # Value: FILE # Examples: path_pgpv = @PGPV@ # Descriptions: # History: # Value: FILE # Examples: path_gpg = @GPG@ # Descriptions: # History: # Value: FILE # Examples: path_gpgv = @GPGV@ # Descriptions: # History: # Value: FILE # Examples: path_gpgsplit = @GPGSPLIT@ =head2 utilities # Descriptions: # History: # Value: FILE # Examples: path_nkf = @NKF@ # Descriptions: # History: # Value: FILE # Examples: path_kakasi = @KAKASI@ # Descriptions: # History: # Value: FILE # Examples: path_namazu = @NAMAZU@ # Descriptions: # History: # Value: FILE # Examples: path_less = @LESS@ # Descriptions: # History: # Value: FILE # Examples: path_more = @MORE@ # Descriptions: # History: # Value: FILE # Examples: path_w3m = @W3M@ =head2 spam related utilities # Descriptions: # History: # Value: FILE # Examples: path_spamassassin = @SPAMASSASSIN@ # Descriptions: # History: # Value: FILE # Examples: path_spamd = @SPAMD@ # Descriptions: # History: # Value: FILE # Examples: path_spamc = @SPAMC@ # Descriptions: # History: # Value: FILE # Examples: path_bogofilter = @BOGOFILTER@ =head2 virus checker # Descriptions: # History: # Value: FILE # Examples: path_clamscan = @CLAMSCAN@ =head2 editors # Descriptions: # History: # Value: FILE # Examples: path_vi = @VI@ # Descriptions: # History: # Value: FILE # Examples: path_ng = @NG@ # Descriptions: # History: # Value: FILE # Examples: path_mule = @MULE@ # Descriptions: # History: # Value: FILE # Examples: path_emacs = @EMACS@ # Descriptions: # History: # Value: FILE # Examples: path_xemacs = @XEMACS@ =head1 システム依存 (主に BSD との非互換性を記述している) # # 注意: デフォールトは NetBSD # # Descriptions: getpwuid(2) があるか? # History: # Value: YES_OR_NO # Examples: system_has_getpwuid = yes # Descriptions: getpwgid(2) があるか? # History: # Value: YES_OR_NO # Examples: system_has_getpwgid = yes # Descriptions: alarm(2) があるか? # History: # Value: YES_OR_NO # Examples: system_has_alarm = yes # Descriptions: select(2) があるか? # History: # Value: YES_OR_NO # Examples: system_has_select = yes # Descriptions: fork(2) があるか? # History: # Value: YES_OR_NO # Examples: system_has_fork = yes =head1 COMPATIBILITY =head2 fml version 4 compatibility # Descriptions: # History: none # Value: DIR # Examples: /usr/local/etc/fml/$version/etc/compat compat_config_base_dir = $fml_default_config_dir/compat # Descriptions: # History: none # Value: DIR # Examples: /usr/local/etc/fml/$version/etc/compat/fml4 compat_old_fml_config_dir = $compat_config_base_dir/fml4 # Descriptions: # History: none # Value: PH_FILE # Examples: /usr/local/etc/fml/$version/etc/compat/fml4/default_config.ph compat_old_fml_default_config_ph_file = $compat_old_fml_config_dir/default_config.ph =head1 MySQL の例 # # 注意: 次の ^=head で名前空間はリセットされる # # [Example] # create table ml ( # fml_ml char(64), # fml_address char(64), # fml_member int, # fml_recipient int # ); [mysql:fml] # Descriptions: # History: # Value: HOSTNAME # Examples: sql_servers = localhost # Descriptions: # History: # Value: USER # Examples: sql_user = fml # Descriptions: # History: # Value: PASSWORD # Examples: sql_password = uja # Descriptions: # History: # Value: SQL_DATABASE # Examples: sql_database = fml # Descriptions: # History: # Value: SQL_TABLE # Examples: sql_table = ml # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_get_next_key = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_getline = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' # Descriptions: # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_add = insert into $sql_table values ('$ml_name', '$ml_domain', '&address', 1, 1) # Descriptions: # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_delete = delete from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address = '&address' # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_find = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address like '%®exp%' =head1 PostgreSQL の例 # # 注意: 次の ^=head で名前空間はリセットされる # # [Example] # create table ml ( # fml_ml char(64), # fml_address char(64), # fml_member int, # fml_recipient int # ); [postgresql:fml] # Descriptions: # History: # Value: HOSTNAME # Examples: sql_servers = localhost # Descriptions: # History: # Value: USER # Examples: sql_user = fml # Descriptions: # History: # Value: PASSWORD # Examples: sql_password = uja # Descriptions: # History: # Value: SQL_DATABASE # Examples: sql_database = fml # Descriptions: # History: # Value: SQL_TABLE # Examples: sql_table = ml # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_get_next_key = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_getline = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' # Descriptions: # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_add = insert into $sql_table values ('$ml_name', '$ml_domain', '&address', 1, 1) # Descriptions: # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_delete = delete from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address = '&address' # Descriptions: 注意: 各行を取り出すのではなく # とりあえず全て取りだしキャッシュするクエリ # History: # Value: SQL_QUERY_STATEMENT # Examples: sql_query_find = select fml_address from $sql_table where fml_ml = '$ml_name' and fml_domain = '$ml_domain' and fml_address like '%®exp%' =head1 LDAP の例 # # 注意: 次の ^=head で名前空間はリセットされる [ldap:fml] # Descriptions: # History: # Value: HOSTNAME # Examples: ldap_servers = localhost # Descriptions: dummy # History: # Value: USER # Examples: ldap_user = fml # Descriptions: # History: # Value: PASSWORD # Examples: ldap_password = uja # Descriptions: DN to bind. # History: # Value: STR # Examples: ldap_bind_dn = dc=fml, dc=org # Descriptions: base DN to contact in modify, search et.al. # History: # Value: STR # Examples: ldap_base_dn = dc=$ml_name, dc=fml, dc=org # Descriptions: # History: # Value: STR # Examples: ldap_query_get_next_key_result_attribute = fmlrecipient # Descriptions: # History: # Value: LDAP_QUERY_FILTER # Examples: ldap_query_get_next_key_search_filter = (&(objectclass=*)(ou=$ml_name@$ml_domain)) # Descriptions: # History: # Value: STR # Examples: ldap_query_getline_result_attribute = fmlrecipient # Descriptions: # History: # Value: LDAP_QUERY_FILTER # Examples: ldap_query_getline_search_filter = (&(objectclass=*)(ou=$ml_name@$ml_domain)) # Descriptions: attributes to add into $ldap_base_dn entry. # History: # Value: LDAP_LDIF_STATEMENT # Examples: ldap_query_add_as_ldif = fmlrecipient:&address fmlmember:&address # Descriptions: attributes to remove from $ldap_base_dn entry. # History: # Value: LDAP_LDIF_STATEMENT # Examples: ldap_query_delete_as_ldif = fmlrecipient:&address fmlmember:&address # Descriptions: # History: # Value: STR # Examples: ldap_query_find_result_attribute = fmlrecipient # Descriptions: # History: # Value: LDAP_QUERY_FILTER # Examples: ldap_query_find_search_filter = (&(objectclass=*)(ou=$ml_name@$ml_domain)) =head1 フック's ### ### ### default_config.cf file ends here. ### ### fml 4.0's 現在の LOCAL_CONFIG で別れ目になる行に相当する ### ### ### =cut # # list of available hooks # # $article_digest_finish_end_hook = q{ 1;}; # $article_digest_finish_start_hook = q{ 1;}; # $article_digest_prepare_end_hook = q{ 1;}; # $article_digest_prepare_start_hook = q{ 1;}; # $article_digest_run_end_hook = q{ 1;}; # $article_digest_run_start_hook = q{ 1;}; # $article_digest_verify_request_end_hook = q{ 1;}; # $article_digest_verify_request_start_hook = q{ 1;}; # $article_filter_end_hook = q{ 1;}; # $article_filter_start_hook = q{ 1;}; # $article_header_rewrite_end_hook = q{ 1;}; # $article_header_rewrite_start_hook = q{ 1;}; # $article_post_finish_end_hook = q{ 1;}; # $article_post_finish_start_hook = q{ 1;}; # $article_post_prepare_end_hook = q{ 1;}; # $article_post_prepare_start_hook = q{ 1;}; # $article_post_run_end_hook = q{ 1;}; # $article_post_run_start_hook = q{ 1;}; # $article_post_verify_request_end_hook = q{ 1;}; # $article_post_verify_request_start_hook = q{ 1;}; # $command_mail_filter_end_hook = q{ 1;}; # $command_mail_filter_start_hook = q{ 1;}; # $command_mail_finish_end_hook = q{ 1;}; # $command_mail_finish_start_hook = q{ 1;}; # $command_mail_prepare_end_hook = q{ 1;}; # $command_mail_prepare_start_hook = q{ 1;}; # $command_mail_run_end_hook = q{ 1;}; # $command_mail_run_start_hook = q{ 1;}; # $command_mail_verify_request_end_hook = q{ 1;}; # $command_mail_verify_request_start_hook = q{ 1;}; # $createonpost_finish_end_hook = q{ 1;}; # $createonpost_finish_start_hook = q{ 1;}; # $createonpost_prepare_end_hook = q{ 1;}; # $createonpost_prepare_start_hook = q{ 1;}; # $createonpost_run_end_hook = q{ 1;}; # $createonpost_run_start_hook = q{ 1;}; # $createonpost_verify_request_end_hook = q{ 1;}; # $createonpost_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_mail_analyzer_finish_end_hook = q{ 1;}; # $error_mail_analyzer_finish_start_hook = q{ 1;}; # $error_mail_analyzer_prepare_end_hook = q{ 1;}; # $error_mail_analyzer_prepare_start_hook = q{ 1;}; # $error_mail_analyzer_run_end_hook = q{ 1;}; # $error_mail_analyzer_run_start_hook = q{ 1;}; # $error_mail_analyzer_verify_request_end_hook = q{ 1;}; # $error_mail_analyzer_verify_request_start_hook = q{ 1;}; # $faker_finish_end_hook = q{ 1;}; # $faker_finish_start_hook = q{ 1;}; # $faker_prepare_end_hook = q{ 1;}; # $faker_prepare_start_hook = q{ 1;}; # $faker_run_end_hook = q{ 1;}; # $faker_run_start_hook = q{ 1;}; # $faker_verify_request_end_hook = q{ 1;}; # $faker_verify_request_start_hook = q{ 1;}; # $fetchfml_finish_end_hook = q{ 1;}; # $fetchfml_finish_start_hook = q{ 1;}; # $fetchfml_prepare_end_hook = q{ 1;}; # $fetchfml_prepare_start_hook = q{ 1;}; # $fetchfml_run_end_hook = q{ 1;}; # $fetchfml_run_start_hook = q{ 1;}; # $fetchfml_verify_request_end_hook = q{ 1;}; # $fetchfml_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;}; # $fmlpgp_finish_end_hook = q{ 1;}; # $fmlpgp_finish_start_hook = q{ 1;}; # $fmlpgp_prepare_end_hook = q{ 1;}; # $fmlpgp_prepare_start_hook = q{ 1;}; # $fmlpgp_run_end_hook = q{ 1;}; # $fmlpgp_run_start_hook = q{ 1;}; # $fmlpgp_verify_request_end_hook = q{ 1;}; # $fmlpgp_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;};