配送やコマンドメールといった機能別に 「フィルタを使うか使わないか?」 「使うフィルタルールは?」 などの変数が定義されています。
変数名の命名規則体系の基本は以下のとおりです。
use_サービス_filter = yes か no サービス_filter_functions = 機能A 機能B use_機能A = yes か no 機能A_rules = ルール1 ルール2
# 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 # 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 # 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 # 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 # 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 # 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 # 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 # 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 # 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 # 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 # Descriptions: "-e" implies embedded mode. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: -e article_spam_filter_bogofilter_options = -e # 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 # Descriptions: --mbox needed for mail files. # History: none # Value: COMMAND_LINE_OPTIONS # Examples: --quiet --mbox article_virus_filter_clamav_options = --quiet --mbox # 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 # 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 # 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: # History: # Value: FILE # Examples: path_bogofilter = @BOGOFILTER@ # $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;};
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >