fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev | Chapter 39. フィルタ | Next

# フィルタに関する設定

配送やコマンドメールといった機能別に 「フィルタを使うか使わないか？」 「使うフィルタルールは？」 などの変数が定義されています。

変数名体系の基本は以下の通りです。

    use_サービス_filter       = yes か no
    サービス_filter_functions = 機能A 機能B

    use_機能A   = yes か no
    機能A_rules = ルール1 ルール2

    # Descriptions:
    #      History: fml8 では、いくつかのフィルタや制限が整理統合された。
    #		fml4 では、おおむね次の３つの機能に相当している。
    #		$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;};

Prev | Home | Next
フィルタ | Up | フィルタ: サイズ制限

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.