# CAUTIONS # # [terms] # # mail rfc822/message. use mail here. # # message subject, strings within mail body and error messages. # # [rules] # $ACTION_$CONDITION format # # permit_xxx allow if condition xxx matched. # try next condition if not matched. # # reject_xxx reject if condition xxx matched. # processing stops here. # try next condition if not matched. # # check_xxx permit/reject follows condition xxx. # other variables specicy the condtion detail. # try next condition if not matched. # # permit permit_all. # processing stops here. # # reject reject_all. # processing stops here. # # [prefix] # # fml_ fml system common or common over all domains. # fml_* variable is used for function common over # the whole fml system. # Example: fml_libexec_dir = /usr/local/libexec/fml # # domain_ ? domain specific. # Except for $ml_home_prefix (= /var/spool/ml), # # Example: # 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_ program path. OS specific. # # postfix_ postfix specific ... # # qmail_ qmail specific ... # # others ML specific variables # # ****_dir ML specific directory vriables # # # References: See # http://www.fml.org/software/fml-devel/Documentation/en/tutorial/ # for the variable naming convention. # =head1 debug mode # Descriptions: debug on or off (off by default). # History: $DEBUG # Value: YES_OR_NO # Examples: no use_debug = no =head1 basic parameters =head2 ML maintainers # Descriptions: ML maintainer. person who receives the error messages. # History: fml 4.0's $MAINTAINER # Value: RFC822_ADDRESS # Examples: elena-admin@fml.org maintainer = # Descriptions: signature of ML maintainer (not used). # 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 directory =head2 mode # Descriptions: default mode in creating directory. # 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 directories "makefml newml" initializes # 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: home directory of user fml # History: none # Value: DIR # Examples: /home/fml # fml_owner_home_dir = # Descriptions: home directory of this ML # History: $DIR # Value: DIR # Examples: /var/spool/ml/elena # ml_home_dir = =head2 directories shared among ML's # Descriptions: system data directory provided by fml # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc domain_config_base_dir = $ml_home_prefix/etc # Descriptions: database directory shared among ML's # History: none # Value: DIR # Examples: /var/spool/ml/@db@ shared_db_dir = $ml_home_prefix/@db@ # Descriptions: database directory shared among ML's. # udb == unified database. # History: inherit $shared_db_dir # Value: DIR # Examples: /var/spool/ml/@udb@ udb_base_dir = $ml_home_prefix/@udb@ =head2 ML specific # Descriptions: etc directory # History: none # Value: DIR # Examples: /etc/spool/ml/elena/etc etc_dir = $ml_home_dir/etc # Descriptions: directory hoding # 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: directory to hold temporary files # History: $TMP_DIR # Value: DIR # Examples: /var/spool/ml/elena/tmp tmp_dir = $ml_home_dir/tmp # Descriptions: directoy to hold several data files # History: $VARDB_DIR # Value: DIR # Examples: /var/spool/ml/elena/var/db db_dir = $var_dir/db =head2 ml local # Descriptions: ML local directory # History: none # Value: DIR # Examples: /var/spool/ml/elena/local ml_local_dir = $ml_home_dir/local # Descriptions: ML local library path # History: none # Value: DIR # Examples: /var/spool/ml/elena/local/lib ml_local_lib_dir = $ml_local_dir/lib # Descriptions: ML local share/ # History: none # Value: DIR # Examples: /var/spool/ml/elena/local/share ml_local_share_dir = $ml_local_dir/share =head2 domain local # # used in admin/*.cgi e.g. when ml_name unspecified. # # Descriptions: domian local directory. # used in admin/*.cgi e.g. when ml_name unspecified. # History: none # Value: DIR # Examples: /var/spool/ml domain_local_dir = $ml_home_prefix # Descriptions: domian local temporary directory. # used in admin/*.cgi e.g. when ml_name unspecified. # History: none # Value: DIR # Examples: /var/spool/ml/@tmp@ domain_local_tmp_dir = $ml_home_prefix/@tmp@ =head2 scheduler # Descriptions: event queue directory for scheduler # History: none # Value: DIR # Examples: /var/spool/ml/elena/var/event event_queue_dir = $var_dir/event/queue =head1 file =head2 mode # Descriptions: default mode in creating file # History: # Value: FILE_MODE # Examples: file_default_mode = 0600 =head1 ACL =head2 auth # Descriptions: FML::Credential checks address comparison # History: always enabled # Value: YES_OR_NO # Examples: yes use_address_compare_function = yes # Descriptions: case insensitive comparison of user part of mail address. # 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: domain matching level in comparing mail addresses # History: ML_MEMBER_CHECK # Value: NUM # Examples: 3 address_compare_function_domain_matching_level = 3 =head2 restrictinos # Descriptions: restrictions for post # History: fml 4.0's 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: restrictions for command mail # History: fml 4.0's 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: restrictions for admin command mail # History: fml 4.0's ? # Value: MIX ( # permit_anyone # permit_admin_member_maps # check_admin_member_password # check_pgp_signature # reject_system_special_accounts # reject_spammer_maps # reject # isolate_system_special_accounts # isolate_spammer_maps # isolate # ) # Examples: # 1. if auth by members-admin only # permit_admin_member_maps reject # 2. password auth (members-admin + password) # check_admin_member_password reject # admin_command_mail_restrictions = reject_system_special_accounts check_admin_member_password reject =head2 who can post # Descriptions: member list == primary address list who can post. # fml (CUI,GUI,command mail) modifies this map. # XXX some map e.g. uni.group is read only # History: fml 4.0's $MEMBER_LIST # Value: MAP # Examples: /var/spool/ml/elena/members primary_member_map = file:$ml_home_dir/members # Descriptions: all maps used to check member list. # History: fml 4.0's $MEMBER_LIST + @MEMBER_LIST # Type: # Value: MAP_LIST # Examples: member_maps = $primary_member_map $admin_member_maps =head2 recipients # Descriptions: primary recipients list. # fml (CUI,GUI,command mail) modifies this map. # XXX some map e.g. uni.group is read only # History: fml 4.0's $ACTIVE_LIST # Value: MAP # Examples: /var/spool/ml/elena/recipients primary_recipient_map = file:$ml_home_dir/recipients # Descriptions: all maps used as recipient list. # actives is added for backward compability. # History: fml 4.0's $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 digest # Descriptions: dummy # History: none # Value: MAP # Examples: primary_digest_member_map = $primary_member_map # Descriptions: dummy # History: none # Value: MAP_LIST # Examples: digest_member_maps = $primary_member_maps # Descriptions: primary list of digest recipients. # fml (CUI,GUI,command mail) modifies this map. # History: In fml 4.0, options of $ACTIVE_LIST. # Value: MAP # Examples: /var/spool/ml/elena/recipients-digest primary_digest_recipient_map = file:$ml_home_dir/recipients-digest # Descriptions: all maps of digest recipients. # History: In fml 4.0, options of $ACTIVE_LIST. # Value: MAP_LIST # Examples: file:$ml_home_dir/recipients-digest # unix.group:fml digest_recipient_maps = $primary_digest_recipient_map =head2 remote administrators # Descriptions: list of remote administrators who has priviledge # of admin command mail. # fml (CUI,GUI,command mail) modifies this map. # XXX some map e.g. uni.group is read only # History: fml 4.0's $ADMIN_MEMBER_LIST # Value: MAP # Examples: /var/spool/ml/elena/members-admin primary_admin_member_map = file:$ml_home_dir/members-admin # Descriptions: all remote administrator lists # History: fml 4.0's $ADMIN_MEMBER_LIST + @ADMIN_MEMBER_LIST # Value: MAP_LIST # Examples: admin_member_maps = $primary_admin_member_map # Descriptions: dummy # History: none # Value: MAP # Examples: /var/spool/ml/elena/recipients-admin primary_admin_recipient_map = file:$ml_home_dir/recipients-admin # Descriptions: dummy # History: none # Value: MAP_LIST # Examples: /var/spool/ml/elena/recipients-admin admin_recipient_maps = $primary_admin_recipient_map # Descriptions: primary password file to authenticate remote administrator # in password auth (detault). # fml (CUI,GUI,command mail) modifies this map. # History: 4.0's $PASSWD_FILE # Value: MAP # Examples: /var/spool/ml/elena/etc/passwd primary_admin_member_password_map = file:$etc_dir/passwd-admin # Descriptions: all password files. # For backward compatibility, etc/passwd is included. # History: none # Value: MAP_LIST # Examples: admin_member_password_maps = $primary_admin_member_password_map file:$etc_dir/passwd =head2 moderator # Descriptions: primary list of moderators. # fml (CUI,GUI,command mail) modifies this map. # XXX some map e.g. uni.group is read only # History: fml 4.0's $MODERATOR_MEMBER_LIST # Value: MAP # Examples: /var/spool/ml/elena/members-moderator primary_moderator_member_map = file:$ml_home_dir/members-moderator # Descriptions: all list of moderator lists. # History: $MODERATOR_MEMBER_LIST # Value: MAP_LIST # Examples: moderator_member_maps = $primary_moderator_member_map # Descriptions: dummy # History: none # Value: MAP # Examples: /var/spool/ml/elena/recipients-moderator primary_moderator_recipient_map = file:$ml_home_dir/recipients-moderator # Descriptions: dummy # History: none # Value: MAP_LIST # Examples: /var/spool/ml/elena/recipients-moderator moderator_recipient_maps = $primary_moderator_recipient_map =head2 account based ACL # Descriptions: list of system accounts. # Such an account cannot identify the individual. # Moreover, it may be a robot program et.al. # It may cause mail loop. # Hence it is safe to reject such a sender. # History: fml 4.0's $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 reject specific addresses # Descriptions: list of spammers or addresses to reject. # History: $REJECT_ADDR_LIST # Value: MAP # Examples: pcre:/var/spool/ml/elena/spammer.pcre primary_spammer_map = # Descriptions: list of spammers or addresses to reject. # History: $REJECT_ADDR_LIST # Value: MAP_LIST # Examples: pcre:/var/spool/ml/elena/spammer.pcre spammer_maps = $primary_spammer_map =head2 LIST ADDRESSES # Descriptions: addresses fml uses: e.g. elena, elena-ctl # libexec/error ignores these addresses. # 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 limitation for number of users # Descriptions: upper limit of recipients. no limitation by default. # History: $MAX_MEMBER_LIMIT # Value: YES_OR_NO # Examples: no use_recipient_total_limit = no # Descriptions: upper limit of recipients. # History: $MAX_MEMBER_LIMIT # Value: NUM # Examples: 3000 recipient_total_limit = 3000 # Descriptions: upper limit of posters. no limitation by default. # History: $MAX_MEMBER_LIMIT # Value: YES_OR_NO # Examples: no use_member_total_limit = no # Descriptions: upper limit of posters. # History: $MAX_MEMBER_LIMIT # Value: NUM # Examples: 3000 member_total_limit = 3000 =head1 User Information # 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 size limit =head2 default size limit # Descriptions: header size limit # History: # Value: NUM # Examples: 102400 default_mail_header_size_limit = 102400 # Descriptions: body size limit # History: # Value: NUM # Examples: 10240000 default_mail_body_size_limit = 10240000 =head1 MTA configurations =head2 SMTP server parameters # Descriptions: recipient limits over one smtp transaction. # 1000 by default and ite value is same as postfix. # History: none # Value: NUM # Examples: smtp_recipient_limit = 1000 # Descriptions: smtp servers. # IPv4 and IPv6 loopback by default :) # History: fml 4.0's $HOST # Value: TRANSPORT_LIST # Examples: smtp_servers = [::1]:25 127.0.0.1:25 # Descriptions: MAIL FROM:<$smtp_sender> in SMTP # History: fml 4.0 $SMTP_SENDER # Value: RFC822_ADDRESS # Examples: elena-admin@fml.org smtp_sender = $maintainer =head2 mail queue # Descriptions: mail queue directory # History: none # Value: DIR # Examples: /var/spool/ml/elena/var/mail/queue mail_queue_dir = $var_dir/mail/queue =head2 debug of smtp =head3 smtp logging # Descriptions: log smtp transaction ? # History: $USE_SMTP_LOG # Value: YES_OR_NO # Examples: yes use_smtp_log = yes =head3 input mail cache # Descriptions: cache incoing mail ? # History: $NUM_LOG_MAIL # Value: YES_OR_NO # Examples: yes use_incoming_mail_cache = yes # Descriptions: incoming mail queue directory # 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: the maximum number of cached incoming mails # History: $NUM_LOG_MAIL # Value: NUM # Examples: 128 incoming_mail_cache_size = 128 =head3 outgoing mail cache # Descriptions: cache outgoing mail cache ? # History: $NUM_LOG_MAIL # Value: YES_OR_NO # Examples: yes use_outgoing_mail_cache = yes # Descriptions: outgoing mail cache directory # 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: the maximum number of cached outgoing mails # 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: file to store the last sequence to deliver # History: special file to store the sequence for each recipient # Value: FILE # Examples: digest_sequence_file = $ml_home_dir/seq-digest =head1 message manipulation =head2 hint # Descriptions: # History: # Value: MIX ( ja en ) # Examples: language_preference_order = en ja =head2 language # Descriptions: # History: # Value: SELECT ( iso-2022-jp us-ascii ) # Examples: report_mail_default_charset = $report_mail_charset_en # 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 template files # 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 template files for user # Descriptions: help file # History: $HELP_FILE # Value: FILE # Examples: /var/spool/ml/elena/help help_file = $ml_home_dir/help # Descriptions: guide file # History: $GUIDE_FILE # Value: FILE # Examples: /var/spool/ml/elena/guide guide_file = $ml_home_dir/guide # Descriptions: objective file # History: $OBJECTIVE_FILE # Value: FILE # Examples: /var/spool/ml/elena/objective objective_file = $ml_home_dir/objective # Descriptions: welcome file # History: $WELCOME_FILE # Value: FILE # Examples: /var/spool/ml/elena/welcome welcome_file = $ml_home_dir/welcome # Descriptions: deny file # History: $DENY_FILE # Value: FILE # Examples: /var/spool/ml/elena/deny deny_file = $ml_home_dir/deny =head1 Envelope based action # Descriptions: enable envelope based loop check or not ? # History: # Value: YES_OR_NO # Examples: use_incoming_mail_envelope_loop_check = yes # Descriptions: envelope based loop check rules # History: # Value: MIX ( # check_envelope_sender # ) # Examples: check_envelope_sender incoming_mail_envelope_loop_check_rules = check_envelope_sender =head1 header manipulation # Descriptions: use loop check based on header information ? # History: # Value: YES_OR_NO # Examples: use_incoming_mail_header_loop_check = yes # Descriptions: loop check rules # 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 cache directory # History: # Value: DIR # Examples: message_id_cache_dir = $db_dir/message_id =head2 ARTICLE # Descriptions: article Message-ID cache directory # History: # Value: DIR # Examples: article_message_id_cache_dir = $db_dir/article_message_id # Descriptions: use article header rewrite function ? # History: # Value: YES_OR_NO # Examples: use_article_header_rewrite = yes # Descriptions: header rewriting rules # 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: use digest article header rewrite function ? # History: # Value: YES_OR_NO # Examples: use_digest_header_rewrite = yes # Descriptions: digest article header rewrite rules # History: # Value: MIX ( add_software_info add_rfc2369 ) # Examples: digest_header_rewrite_rules = add_software_info add_rfc2369 # Descriptions: remove unsafe header fields # History: $SKIP_FIELDS # Value: HEADER_FIELD_LIST # Examples: unsafe_header_fields = Return-Receipt-To # Descriptions: Subject: tag. # see sprintf(3) on the usage of % et.al. # 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: ml name in both X-ML-Name: and X-Sequence header fields. # History: # Value: ML_NAME # Examples: elena outgoing_mail_header_x_ml_name = ${mail_header_default_x_ml_name} # Descriptions: Errors-To: field # History: fml 4.0 's $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: default Precedence: field. # History: PRECEDENCE # Value: STR # Examples: bulk mail_header_default_precedence = bulk # Descriptions: default Errors-To: field. # History: ERRORS_TO # Value: STR # Examples: $maintainer mail_header_default_errors_to = $maintainer # Descriptions: default X-ML-Name: field. # History: ERRORS_TO # Value: STR # Examples: $ml_name mail_header_default_x_ml_name = $ml_name # Descriptions: default list-id header field. # 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: default list-owner header field. # History: none # Value: STR # Examples: mail_header_default_list_owner = # Descriptions: default list-post header field. # History: LIST_POST # Value: STR # Examples: mail_header_default_list_post = # Descriptions: default list-help header field. # History: LIST_HELP # Value: STR # Examples: mail_header_default_list_help = # Descriptions: default list-subscribe header field. # History: LIST_SUBSCRIBE # Value: STR # Examples: mail_header_default_list_subscribe = # Descriptions: default list-unsubscribe header field. # 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 mail body # Descriptions: use loop check based on body information # History: # Value: YES_OR_NO # Examples: use_incoming_mail_body_loop_check = yes # Descriptions: body loop check rules # History: # Value: MIX ( check_body_checksum ) # Examples: incoming_mail_body_loop_check_rules = check_body_checksum # Descriptions: Message-ID cache directory # History: # Value: DIR # Examples: incoming_mail_body_checksum_cache_dir = $db_dir/body_checksum =head1 lock # Descriptions: use lock system ? # History: # Value: YES_OR_NO use_lock = yes # Descriptions: directory where lock files are created. # History: # Value: DIR # Examples: /var/spool/ml/elena/var/lock lock_dir = $var_dir/lock # Descriptions: giant lock file name # History: $SPOOL_DIR # Value: FILE # Examples: /var/spool/ml/elena/var/lock/giantlock lock_file = $lock_dir/giantlock # Descriptions: lock algorithm type # History: $USE_FLOCK # Value: SELECT ( flock ) # Examples: lock_type = flock =head1 logging # Descriptions: user logging function # History: enabled by default # Value: YES_OR_NO # Examples: use_log = yes # Descriptions: log file. # You can use % format strftime(3) can recognize # (e.g. log.%C%y%m%d). # History: $LOGFILE # Value: FILE # Examples: log_file = $ml_home_dir/log # Descriptions: logging type # 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 ? # process[pid] # process:time.pid ? # Examples: * fml4_compatible example # 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: log dir # History: # Value: DIR # Examples: log_dir = $var_dir/log =head2 log rotation # Descriptions: rotate log files or not. # History: no if $LOGFILE_NEWSYSLOG_LIMIT == 0, yes if > 0. # Value: YES_OR_NO # Examples: no use_log_rotate = no # Descriptions: log rotation policy. # History: none # Value: SELECT ( size interval ) # Examples: size log_rotate_policy = size # Descriptions: rotate log if the size is over this size. # History: $LOGFILE_NEWSYSLOG_LIMIT value. # Value: NUM # Examples: 300000 (300K bytes) log_rotate_size_limit = 300000 # Descriptions: The interval field specifies the time separation # between trimming of the logfile. # History: none # Value: NUM # Examples: 86400 (1 day) log_rotate_interval = 86400 # Descriptions: number of archive files to be kept besides the log # file itself. # 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_en # 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 domain local # Descriptions: domin local log file. # used in admin/*.cgi e.g. when ml_name unspecified. # History: none # Value: FILE # Examples: /var/spool/ml/@log@ domain_local_log_file = $domain_local_dir/@log@ =head2 makefml/fml outputs machine friendly log # Descriptions: if yes, makefml/fml outputs machine friendly log. # --coputer-output option implies "use_log_computer_output = yes". # History: none # Value: YES_OR_NO # Examples: no use_log_computer_output = no # Descriptions: specify perl module for output engine. # History: none # Value: CLASS # Examples: FML::Log::Print::Simple log_computer_output_engine = FML::Log::Print::Simple =head2 syslog # Descriptions: specify host name if remote syslog host is used. # History: none # Value: STR # Examples: log.example.co.jp log_syslog_servers = # Descriptions: string prepended to every message. # 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 function of article delivery =head2 article delivery process # Descriptions: use function of article delivery # History: none # use_distribute_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: yes use_article_post_function = ${use_distribute_program:-yes} =head1 article handling =head2 article delivery system # Descriptions: user article delivery function ? # History: # Value: YES_OR_NO # Examples: use_article_delivery = yes # Descriptions: specify transport for article delivery. # try MTA of $smtp_servers incrementary in the case of smtp. # History: none # Value: SELECT ( smtp lmtp ) # Examples: smtp article_delivery_transport = smtp =head2 article sequence number # Descriptions: file to store sequence number # History: $SEQ_FILE # Value: FILE # Examples: article_sequence_file = $sequence_file =head2 ACL # Descriptions: how to inform the rejected message # when the filter system rejects. # We prefer string not mime/multipart to avoid parsing by MUA. # History: string in 4.0. # Value: SELECT ( multipart string ) # Examples: string article_post_restrictions_reject_notice_data_type = string =head2 ACL and thread # Descriptions: permit post from anyone if the posted message follows # one of valid current threads. # useful to permit post from another mail address, # which receives forwarded ML articles. # History: none # Value: NUM # Examples: 86400 article_post_article_thread_lifetime = 86400 =head2 size limit # Descriptions: maximum size limit of article header passed from MTA. # History: # Value: NUM # Examples: 102400 incoming_article_header_size_limit = $default_mail_header_size_limit # Descriptions: maximum size limit of article body passed from MTA. # History: # Value: NUM # Examples: 10240000 incoming_article_body_size_limit = $default_mail_body_size_limit # Descriptions: maximum size limit of deliverd article header. # (not yet implemented ;-) # History: # Value: NUM # Examples: 102400 outgoing_article_header_size_limit = $default_mail_header_size_limit # Descriptions: maximum size limit of deliverd article body. # (not yet implemented ;-) # Value: NUM # Examples: 10240000 outgoing_article_body_size_limit = $default_mail_body_size_limit =head2 filter # Descriptions: # History: fml8 rearragena fml4 filter functions and integrates them # into one. # Roughly speaking, fml8 filter is composed of the following # $USE_DISTRIBUTE_FILTER # $INCOMING_MAIL_SIZE_LIMIT # ADD_CONTENT_HANDLER() # functions. # 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 size based filter # Descriptions: use size based filter. # History: no # Value: YES_OR_NO # Examples: use_article_size_filter = yes # Descriptions: size based filter rules. # first match. # permit post if no rule matched. # History: # Value: MIX ( check_header_size # check_body_size # permit # ) # Examples: article_size_filter_rules = check_header_size check_body_size permit =head2 header base filter # Descriptions: use header based filter ? # History: disabled by default. # "yes" always if $USE_DISTRIBUTE_FILTER is yes. # Value: YES_OR_NO # Examples: use_article_header_filter = yes # Descriptions: header filter rules. # first match. # permit post if no rule matched. # History: fml4 has no check_date rule. # Value: MIX ( # check_message_id # check_date # permit # ) # Examples: article_header_filter_rules = check_message_id check_date permit =head2 filter for non MIME structure # Descriptions: dummy # History: disabled by default. # !MIME of 4.0 content filter. # Value: YES_OR_NO # Examples: use_article_non_mime_filter = yes # Descriptions: dummy # History: # Value: MIX ( permit reject_empty_content_type ) # Examples: permit article_non_mime_filter_rules = permit # Descriptions: MIME structure based filter # History: 4.0 content filter. disabled by default. # Value: YES_OR_NO # Examples: use_article_mime_component_filter = yes # Descriptions: file of filter rules # History: @CONTENT_HANDLER # Value: FILE # Examples: article_mime_component_filter_rules = $fml_config_dir/mime_component_filter =head2 filter for text/plain # Descriptions: use text/plain filter, which is a simple syntax checker. # History: 4.0's EnvelopeFilter. # half of the following rules applied when # $USE_DISTRIBUTE_FILTER is enabled. # Value: YES_OR_NO # Examples: use_article_text_plain_filter = yes # Descriptions: filter rules of text/plain filter. # first match. # permit post if no rule matched. # 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 external SPAM filter # Descriptions: use external spam checker. # disabled by default. # add flag to header and go through if the message looks a spam. # History: none # Value: YES_OR_NO # Examples: no use_article_spam_filter = no # Descriptions: action if the message looks a spam. # History: none # Value: MIX ( reject ignore header_rewrite ) # Examples: header_rewrite article_spam_filter_rules = header_rewrite # Descriptions: external spam checker. # if plural drivers specified, try them sequentially. # History: none # Value: MIX ( spamassasin spamc bogofilter ) # Examples: bogofilter article_spam_filter_drivers = bogofilter =head2 external virus checker # Descriptions: external virus checker. disabled by default. # History: none # Value: YES_OR_NO # Examples: no use_article_virus_filter = no # Descriptions: action if virus found. # History: none # Value: MIX ( reject ignore header_rewrite ) # Examples: reject article_virus_filter_rules = reject # Descriptions: external virus checker. # if plural drivers specified, try them sequentially. # History: none # Value: MIX ( clamscan ) # Examples: clamscan article_virus_filter_drivers = clamscan =head2 inform the filter rejection # Descriptions: infor the filter rejection ? # History: halfly hard-coded in fml 4.0. # notice is always sent to maintainer, # but not to sender by default. # $FILTER_NOTIFY_REJECTION controlls notice to sender. # Value: YES_OR_NO # Examples: yes use_article_filter_reject_notice = yes # Descriptions: recipients to inform # History: halfly hard-coded in fml 4.0. # notice is always sent to maintainer, # but not to sender by default. # $FILTER_NOTIFY_REJECTION controlls notice to sender. # Value: MIX ( maintainer sender ) # Examples: maintainer sender article_filter_reject_notice_recipients = maintainer sender # Descriptions: how fml refer the rejeced message. # We prefer string not multipart to avoid parsing of MUA. # History: string in fml 4.0. # Value: SELECT ( multipart string ) # Examples: string article_filter_reject_notice_data_type = string =head2 article thread # Descriptions: add thread outline automatically ? # History: none # Value: YES_OR_NO # Examples: no use_article_thread_outline = no # Descriptions: where should we add thread outline ? # 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: greeting prepended to thread outline # History: none # Value: STR # Examples: [outline of this thread] article_thread_outline_greeting_en = [outline of this thread] =head2 EXPIRE # Descriptions: expire too old article or not ? # History: $USE_EXPIRE # Value: YES_OR_NO # Examples: no use_article_expire = no # Descriptions: how old article to be removed # 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 article and article spool # Descriptions: store article into spool directory ? # History: $NOT_USE_SPOOL # Value: YES_OR_NO # Examples: use_spool = yes # Descriptions: store article into spool directory ? # History: $NOT_USE_SPOOL # Value: YES_OR_NO # Examples: use_article_spool = ${ues_spool:-yes} # Descriptions: use subdir in spool directory ? # History: # Value: SELECT ( plane subdir ) # Examples: plane spool_type = plane # Descriptions: # History: # Value: NUM # Examples: spool_subdir_unit = 1000 # Descriptions: file to store article sequence. # History: $SEQ_FILE # Value: FILE # Examples: sequence_file = $ml_home_dir/seq # Descriptions: spool directory # History: $SPOOL_DIR # Value: DIR # Examples: spool_dir = $ml_home_dir/spool =head1 article summary # Descriptions: article summary file. # History: # Value: FILE # Examples: article_summary_file = $ml_home_dir/summary # Descriptions: format style. # History: # Value: SELECT ( fml4_compatible ) # Examples: article_summary_file_format_style = fml4_compatible # Descriptions: save the first N bytes of the address in summary. # History: # Value: NUM # Examples: 15 article_summary_file_format_address_length = 15 =head2 expire # Descriptions: remove content correspoding with article expiration. # History: $EXPIRE_SUMMARY # Value: YES_OR_NO # Examples: no use_article_summary_file_expire = no =head1 convert article to html format. # Descriptions: use html converter function ? # History: $AUTO_HTML_GEN # Value: YES_OR_NO # Examples: yes use_html_archive = yes # Descriptions: html archive directory of the specific 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_en # 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 command definitoins =head2 process # Descriptions: use commnd mail ? # History: none # use_command_mail_program (fml8 pre alpha) # Value: YES_OR_NO # Examples: yes use_command_mail_function = ${use_command_mail_program:-yes} # Descriptions: use admin command mail ? # History: $REMOTE_ADMINISTRATION # Value: YES_OR_NO # Examples: yes / no use_admin_command_mail_function = no # Descriptions: add self introduction into the preamble of command mail reply. # History: none # Value: YES_OR_NO # Examples: yes / no use_command_mail_reply_preamble = yes # Descriptions: add processing summary into the trailor of command mail reply. # History: none # Value: YES_OR_NO # Examples: yes / no use_command_mail_reply_trailor = yes =head2 size limit # Descriptions: maximum size limit of article header passed from MTA. # History: # Value: NUM # Examples: 102400 incoming_command_mail_header_size_limit = $default_mail_header_size_limit # Descriptions: maximum size limit of article body passed from MTA. # History: # Value: NUM # Examples: 10240000 incoming_command_mail_body_size_limit = $default_mail_body_size_limit # Descriptions: maximum size limit of deliverd article header. # (not yet implemented ;-) # History: # Value: NUM # Examples: 102400 outgoing_command_mail_header_size_limit = $default_mail_header_size_limit # Descriptions: maximum size limit of deliverd article body. # (not yet implemented ;-) # History: # Value: NUM # Examples: 10240000 outgoing_command_mail_body_size_limit = $default_mail_body_size_limit =head2 command specific limit # Descriptions: maximu number of request in get command(s) in one mail. # History: $MGET_SEND_BACK_FILES_LIMIT # Value: NUM # Examples: 100 get_command_request_limit = 100 =head2 filter # 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 size based filter # Descriptions: use size based filter # History: # Value: YES_OR_NO # Examples: use_command_mail_size_filter = yes # Descriptions: size based filter rules. # first match. # permit if no rule matched. # 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 =head2 command limit in one mail # Descriptions: the numfer of effective commands in one command mail. # History: $MAXNUM_COMMAND_INPUT # Value: NUM # Examples: 100 command_mail_valid_command_limit = 100 # Descriptions: the numfer of ineffective commands in one command mail. # History: $MAXNUM_COMMAND_INPUT # Value: NUM # Examples: 100 command_mail_invalid_command_limit = 100 # Descriptions: maximum length of one command line. # History: $MAXLEN_COMMAND_INPUT # Value: NUM # Examples: 128 command_mail_line_length_limit = 128 =head2 misc # Descriptions: command prompt in message reply # History: hard coded in fml (< 4.0) # Value: PROMPT # Examples: >>> command_mail_reply_prompt = >>> # Descriptions: use comnfirmation in subscribe command ? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation manual ) # Examples: subscribe_command_auth_type = confirmation # Descriptions: operate action automatically or manually by maintainer ? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: subscribe_command_operation_mode = automatic # Descriptions: use comnfirmation in chaddr command ? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation ) # Examples: chaddr_command_auth_type = confirmation # Descriptions: operate action automatically or manually by maintainer ? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: chaddr_command_operation_mode = automatic # Descriptions: use comnfirmation in unsubscribe command ? # History: $MANUAL_REGISTRATION_TYPE # Value: SELECT ( confirmation ) # Examples: unsubscribe_command_auth_type = confirmation # Descriptions: operate action automatically or manually by maintainer ? # History: $PERMIT_POST_HANDLER $PERMIT_COMMAND_HANDER # Value: SELECT ( automatic manual ) # Examples: unsubscribe_command_operation_mode = automatic # Descriptions: effective command in normal commnd mail (for usual users) # History: @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: # History: # Value: FML_COMMAND_LIST # Examples: admin_cgi_allowed_commands = adduser deluser addadmin deladmin digeston digestoff list log newml rmml reviveml # Descriptions: # History: # Value: FML_COMMAND_LIST # Examples: 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 # Descriptions: special command name used as confirmation # Value: FML_COMMAND # Examples: confirm_command_prefix = confirm # Descriptions: how long confirmation is effective ? # special words such as # m(min), h(hour), d(day), w(week) are avialable. # History: $CONFIRMATION_EXPIRE # Value: TIME # Examples: 14d confirm_command_expire_limit = 14d # Descriptions: special command name used as admin command mail # Value: FML_COMMAND # Examples: privileged_command_prefix = admin =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_charset # Descriptions: base directory for ML information # 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: directory for ML information # History: none # Value: DIR # Examples: ~fml/public_html/fml/listinfo/fml.org/elena listinfo_dir = $listinfo_base_dir/$ml_domain/$ml_name =head2 inform filter rejection # Descriptions: inform filter rejection ? # History: hard-coded. # Value: YES_OR_NO # Examples: yes use_command_mail_filter_reject_notice = yes # Descriptions: recipients to inform # History: hard-coded. # Value: MIX ( maintainer sender ) # Examples: maintainer sender command_mail_filter_reject_notice_recipients = maintainer sender # Descriptions: how fml refer the rejeced message. # We prefer string not multipart to avoid parsing of MUA. # History: string in fml 4.0. # Value: SELECT ( multipart string ) # Examples: string command_mail_filter_reject_notice_data_type = string =head2 newml command # Descriptions: template files used in running "makefml newml" # Value: FILE_LIST # Examples: newml_command_template_files = config.cf # Descriptions: fml_owner value used by newml command. # this value is a destination where error mail are forwardeded. # user "fml" by default (same as $fml_owner in main.cf). # Value: RFC822_USER_OR_RFC822_ADDRESS # Examples: newml_command_ml_admin_default_address = $fml_owner =head2 list command # Descriptions: default map to show by list command. # History: none # Value: MAP_LIST # Examples: list_command_default_maps = $recipient_maps =head2 log command # Descriptions: show the last N lines of log file where N == 100. # History: $ADMIN_LOG_DEFAULT_LINE_LIMIT # Value: NUM # Examples: 100 log_command_tail_starting_location = 100 =head1 error message analyzer =head2 # Descriptions: where error mail is forwarded to ? # it is useful to use mysql to control recipients of # error messages. # History: none # Value: MAP_LIST # Examples: file:$ml_home_dir/recipients-maintainer # $admin_recipient_maps maintainer_recipient_maps = =head2 process # Descriptions: use error message analyzer ? # History: none # 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 cache # Descriptions: directory to cache error messages. # History: /var/spool/ml/mead/errormaillog # Value: DIR # Examples: error_mail_analyzer_cache_dir = $db_dir/error # Descriptions: module as cache engine # History: none # Value: CLASS # Examples: File::CacheDir error_mail_analyzer_cache_type = File::CacheDir # Descriptions: mode of cache expiration # History: none # Value: SELECT ( temporal ) # Examples: error_mail_analyzer_cache_mode = temporal # Descriptions: cache size. # it implies days if the cache mode is temporal. # History: none # Value: NUM # Examples: error_mail_analyzer_cache_size = 14 =head2 analyzer # Descriptions: functions defined in FML::Error::Analyze # History: none # Value: MIX ( simple_count histgram ) # Examples: simple_count error_mail_analyzer_function_select_list = simple_count histgram # Descriptions: function in FML::Error::Analyze to analyze. # History: none # Value: SELECT ( simple_count histgram ) # Examples: simple_count error_mail_analyzer_function = histgram # Descriptions: error limit in using simple_count as anlyzer function. # History: none # Value: NUM # Examples: 5 error_mail_analyzer_simple_count_limit = 5 =head1 thread tracking system # Descriptions: user thread tracking system ? # History: fml 8.0 new # Value: YES_OR_NO # Examples: use_thread_track = yes # Descriptions: use special subject tag ? # History: fml 8.0 new # Value: YES_OR_NO # Examples: use_thread_subject_tag = no # Descriptions: ml name assigned to ticket # History: fml 8.0 new # Value: ML_NAME # Examples: elena thread_subject_tag_name = $ml_name # Descriptions: ticket number # History: fml 8.0 new # Value: SUBJECT_TAG # Examples: elena_#00001010 $ml_name_#%08d # elena/100 $ml_name/%d thread_id_syntax = $ml_name/%d # Descriptions: syntax added to Subject: # History: fml 8.0 new # Value: SUBJECT_TAG # Examples: [elena_#00001010] # [elena/100] thread_subject_tag = [$thread_id_syntax] # Descriptions: location of insertion of tag # History: fml 8.0 new # Value: SELECT ( appended prepended ) # Examples: Subject: [elena/100] .... # Subject: .... [elena/100] thread_subject_tag_location = appended # Descriptions: file to store ticket sequence # History: fml 8.0 new # Value: FILE # Examples: /var/spool/ml/elena/thread.seq thread_sequence_file = $ml_home_dir/thread.seq # Descriptions: directory to hold ticket data # History: fml 8.0 new # Value: DIR # Examples: /var/spool/ml/@db@/thread thread_db_dir = $shared_db_dir/thread # Descriptions: CGI relative path # History: # Value: FILE # Examples: thread_cgi_base_url = /cgi-bin/fmlthread.cgi # Descriptions: CGI title # History: # Value: STR # Examples: thread_cgi_title = thread tracking system interface # Descriptions: CGI color # History: # Value: HTML_COLOR # Examples: thread_cgi_bgcolor = #E6E6FA =head1 CGI # Descriptions: base directory which locates .cgi for this domain. # History: # Value: DIR # Examples: cgi_base_dir = $fml_owner_home_dir/public_html/cgi-bin/fml/$ml_domain # Descriptions: base directory which locates .cgi for this domain. # History: # Value: DIR # Examples: ~fml/public_admin/cgi-bin/fml/admin/fml.org/elena # Notes: ACL is contorlled by # admin/.htaccess or admin/$domain/.htaccess. admin_cgi_base_dir = $cgi_base_dir/admin # Descriptions: base directory which locates .cgi for this ML. # History: # Value: DIR # Examples: ~fml/public_admin/cgi-bin/fml/admin/fml.org/elena ml_admin_cgi_base_dir = $cgi_base_dir/ml-admin/$ml_name # Descriptions: default charset # History: # Value: SELECT ( euc-jp us-ascii ) # Examples: cgi_default_charset = us-ascii # Descriptions: cgi charset in Japanese # History: # Value: SELECT ( euc-jp ) # Examples: cgi_charset_ja = euc-jp # Descriptions: cgi charset in English # History: # Value: SELECT ( us-ascii) # Examples: cgi_charset_en = us-ascii # Descriptions: language mode of CGI (!= charset) # History: # Value: SELECT ( japanese ) # Examples: cgi_default_language = english # Descriptions: available language mode in CGI # History: # Value: MIX ( japanese english ) # Examples: cgi_language_select_list = english japanese # Descriptions: default bgcolor # History: # Value: HTML_COLOR # Examples: #FFFFFF cgi_main_menu_color = #FFFFFF # Descriptions: default bgcolor in navigation menu # History: # Value: HTML_COLOR # Examples: #FFFFFF cgi_navigation_bar_color = #FFFFFF # Descriptions: choise of address list types in CGI operations. # History: # Value: MIX ( member recipient admin_member ) # Examples: member recipient admin_member cgi_menu_address_map_select_list = member recipient admin_member # Descriptions: default value of list types in CGI operations. # History: # Value: MIX ( member recipient admin_member ) # Examples: member cgi_menu_default_address_map = recipient =head2 CGI for anonymous users # Descriptions: allow a request e.g. subscribe and unsubscribe from www. # yes by default. # History: none # Value: YES_OR_NO # Examples: yes use_anonymous_cgi_function = yes # Descriptions: expire limit of anonymous CGI session ID. # History: NONE # Value: TIME # Examples: 15m anonymous_cgi_expire_limit = 15m # Descriptions: top level directory for anonymous cgi scripts. # History: none # 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 specific directory for anonymous cgi scripts. # History: none # 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 specific url base for anonymous cgi scripts. # History: none # 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 temporary area for CGI # Descriptions: temporary directory for CGI # History: none # Value: DIR # Examples: ~fml/public_html/fml/tmp html_tmp_dir = $fml_owner_home_dir/public_html/fml/tmp # Descriptions: temporary url base for CGI # History: none # Value: DIR # Examples: /~fml/fml/tmp html_tmp_base_url = /~$fml_owner/fml/tmp =head1 MTA related configurations # 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: directory to hold config files for MTA # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/mail domain_mail_config_dir = $domain_config_base_dir/mail # Descriptions: directory to hold postfix specific config files. # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/mail domain_postfix_config_dir = $domain_config_base_dir/postfix # Descriptions: directory to hold qmail specific config files. # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/mail domain_qmail_config_dir = $domain_config_base_dir/qmail # Descriptions: directory to hold exim specific config files. # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/mail domain_exim_config_dir = $domain_config_base_dir/exim # Descriptions: directory to hold sendmail specific config files. # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/sendmail domain_sendmail_config_dir = $domain_config_base_dir/sendmail # Descriptions: directory to hold procmail specific config files. # History: hard-coded in fml 4.0 # Value: DIR # Examples: /var/spool/ml/etc/procmail domain_procmail_config_dir = $domain_config_base_dir/procmail =head2 sendmail / postfix # Descriptions: aliases # History: hard-coded in fml 4.0 # Value: FILE # Examples: /var/spool/ml/etc/mail/aliases mail_aliases_file = $domain_mail_config_dir/aliases =head2 postfix # Descriptions: virtual map file # History: none # Value: FILE # Examples: /var/spool/ml/etc/mail/virtual postfix_virtual_map_file = $domain_postfix_config_dir/virtual # Descriptions: templates of include files # 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: templates files of ~fml/.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: template of /var/qmail/control/virtualdomains # 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: sample of /etc/mail/virtusertable # History: none # Value: FILE # Examples: /var/spool/ml/etc/mail/virtual sendmail_virtual_map_file = $domain_sendmail_config_dir/virtusertable =head2 procmail # Descriptions: sample of ~fml/.procmailrc # History: hard-coded in 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: use CREATE-ON-POST or not ? # This variable is meaningful only in createonpost program. # History: NONE # Value: YES_OR_NO # Examples: yes use_createonpost_function = yes =head2 CREATE-ON-POST who can post ? # Descriptions: who can post for CREATE-ON-POST ML ? # anyone by default. # 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: restrict "who can post". PCRE is available. # e.g. \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: who can subscribe ? # anyone by default. # 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: restrict "who can subscribe". PCRE is available. # e.g. \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 who can create a new create-on-post ML ? # Descriptions: Who can create a new CREATE-ON-POST ML ? # user@$ml_domain is allowed by default. # It is recommended that you should use $createonpost_newml_maps # to control senders more granually. # History: fml4 has no such function. # fml8 before 2008/07 does not have this rectrictions. # It means permit_anyone. # Default action is changed to permit_ml_domain at 2008/07. # 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: restrict "who can create a new ML". PCRE is available. # e.g. \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 system dependence (incompatibility against BSD) # # XXX we assume NetBSD by default. # # Descriptions: has getpwuid(2) ? # History: # Value: YES_OR_NO # Examples: system_has_getpwuid = yes # Descriptions: has getpwgid(2) ? # History: # Value: YES_OR_NO # Examples: system_has_getpwgid = yes # Descriptions: has alarm(2) ? # History: # Value: YES_OR_NO # Examples: system_has_alarm = yes # Descriptions: has select(2) ? # History: # Value: YES_OR_NO # Examples: system_has_select = yes # Descriptions: has 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 example # # [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 example # # [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 HOOK's ### ### ### default_config.cf file ends here. ### ### ### =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;};