=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