#
# $FML: RULES.txt,v 1.11 2006/04/30 07:01:33 fukachan Exp $
#     BASED ON fml/cf/MANIFEST 1.104
#
#	.convert		Ѵƴĥ
#	.fml8_default		fml8 ΥǥեȤƱˤ
#	.use_fml8_value		fml8 ǼưꤵͤȤ
#	.not_yet_implemented	ޤƤʤ
#				ޤѹǤʤ
#	.ignore			㤦ΤǡѴ̵̣
#				бΤʤͽʤ
#
# ɡ
#	.convert		Ѵ롼ƤӽФ
#	.use_fml8_value		fml8 ΥǥեȤƱ or fml8 ͤͥ 
#	.not_yet_implemented	̤(ͽϤ뤬Ƥʤ)
#	.not_support		fml8 Ǥϥݡͽʤεǽ
#				̵뤹(.ignore)ȤäƤɤ

#########################################################################
##### Section: Fundamental Configuration (CF Version, debug, Language) ##
# # config.ph configuration version
# # define 5.0 for fml 3.0.
# # define 6.0 for fml 3.0 + fukui-newconfig.
# CFVersion:	6.1
.ok
.if CFVersion
	.not_support


# # global debug option. if non-nil, debug mode.
# # In debug mode, fml does not distribute posted articles.
# # value: 1/0
# debug:		 0
.ok
.if debug >= 1

	use_debug = yes

.ok
.if debug == 0

	use_debug = no


# # fml 3.0 generates template files, $DIR/{help,welcome} in $LANGUAGE
# # in "makefml newml". You define this variable in installation.
# # The value is controlled by /usr/local/fml/.fml/system.
# # value: Japanese/English
# LANGUAGE:		Japanese
.ok
.if LANGUAGE == Japanese

	language_preference_order = ja en

.ok
.if LANGUAGE == English

	language_preference_order = en ja


# # Error message language fml returns.
# # If $MESSAGE_LANGUAGE is not defined, fml 3.0 uses $LANGUAGE.
# # &Mesg() tries to translate the given message to this language.
# # value: Japanese/English
# MESSAGE_LANGUAGE:
.ok
.if MESSAGE_LANGUAGE == Japanese

	language_preference_order = ja en

.ok
.if MESSAGE_LANGUAGE == English

	language_preference_order = en ja


# # ## Sub Section: DNS ##
# # fml automatically set up DNS for this host, but check it again by yourself.
# #
# #    DOMAINNAME the domain name              e.g. fml.org
# #    FQDN       Fully Qualified Domain Name  e.g. beth.fml.org
# #
# # value: string
# DOMAINNAME:	&fix:dn   phys.titech.ac.jp
.ok
.if DOMAINNAME
	.use_fml8_value


# FQDN:		&fix:fqdn axion.phys.titech.ac.jp
.ok
.if FQDN
	.use_fml8_value


#########################################################################
##### Section: Mailing List Policy (for Post, Commands), Maintainer ###
# #
# # $MAIL_LIST is the address for post. For example 'elena@fml.org'.
# #
# # $PERMIT_POST_FROM is one of "anyone", "members_only" and "moderator".
# # It defines who can post to this ML.
# # When post from not a member is rejected,
# # fml calls $REJECT_POST_HANDLER.
# # $REJECT_POST_HANDLER is one of "reject", "auto_subscribe" and "ignore".
# #    HISTORY: you can use "auto_regist" used in fml 2.x.
# #
# # value: string
# MAIL_LIST:		
# PERMIT_POST_FROM:	members_only
# REJECT_POST_HANDLER:	reject

.ok
.if MAIL_LIST
	.convert

.ok
.if PERMIT_POST_FROM
	.convert

.ok
.if REJECT_POST_HANDLER
	.convert

# # $CONTROL_ADDRESS is the address you send a command request to.
# #    For example 'elena-ctl@fml.org'.
# #
# # $PERMIT_COMMAND_FROM is one of "anyone", "members_only" and "moderator".
# # It defines who can post to this ML.
# # When command request from not a member is rejected,
# # fml calls $REJECT_COMMAND_HANDLER.
# #
# # $REJECT_COMMAND_HANDLER is one of "reject", "auto_subscribe" and "ignore".
# #   HISTORY: you can use "auto_regist" used in fml 2.x.
# #
# # Typical Configuration is
# #
# # (default)
# #    $PERMIT_COMMAND_FROM    = "members_only";
# #    $REJECT_COMMAND_HANDLER = "reject";
# #
# # (automatic subscribe: fml automatically handles subscribe request)
# #    $PERMIT_COMMAND_FROM    = "members_only";
# #    $REJECT_COMMAND_HANDLER = "auto_subscribe";
# #
# # value: string
# CONTROL_ADDRESS:  	
# PERMIT_COMMAND_FROM:	members_only
# REJECT_COMMAND_HANDLER:	reject

.ok
.if CONTROL_ADDRESS
	.convert

.ok
.if PERMIT_COMMAND_FROM
	.convert

.ok
.if REJECT_COMMAND_HANDLER
	.convert


# # obsolete (though you can use it)
# # When $MAIL_LIST_ACCEPT_COMMAND = 1,
# # both $MAIL_LIST and $CONTROL_ADDRESS accept commands
# # which format is "# command".
# # value: 1/0
# MAIL_LIST_ACCEPT_COMMAND:
.ok
.if MAIL_LIST_ACCEPT_COMMAND
	.not_support


# # ## Sub Section: Maintainer ##
# # mailing list maintainer/administrator address e.g. 'elena-admin@fml.org'.
# # $MAINTAINER != $MAIL_LIST IS REQUIRED AGAINST MAIL LOOP!
# # value: string
# MAINTAINER:		
.ok
.if MAINTAINER
	.convert


# MAINTAINER_SIGNATURE:	
.ok
.if MAINTAINER_SIGNATURE
	maintainer_signature = %s


# # ## Sub Section: ML_FN ##
# # obsolete
# #
# # You can enforce To: field of posted article by rewriting it.
# #   To: $MAIL_LIST $ML_FN => To: Elena@fml.org (Elena Lolabrigita ML)
# #
# # value: string
# ML_FN:
.ok
.if ML_FN
	.not_support



#########################################################################
## ### Section: Directory  ###
## $*DIR variable is relative under $DIR (defined in fml initialization phase).
## $FP*DIR is fully pathed directory name for each $*DIR variable.

# # article spool
# # value: directory string
# SPOOL_DIR:	 spool
.ok
.if SPOOL_DIR
	.convert


# # tmp, after chdir, under DIR
# # value: directory string
# TMP_DIR:	tmp
.ok
.if TMP_DIR
	.convert


# # multi-purpose log, temporary, transient, and spool files (4.4BSD style)
# # $LOGFILE and $SPOOL_DIR is exceptional but others is under var/.
# # value: directory string
# VAR_DIR:	var
.ok
.if VAR_DIR
	.use_fml8_value


# VARLOG_DIR:	var/log
.ok
.if VARLOG_DIR
	.use_fml8_value


# VARRUN_DIR:	var/run
.ok
.if VARRUN_DIR
	.use_fml8_value


# VARDB_DIR:	var/db
.ok
.if VARDB_DIR
	.use_fml8_value



#########################################################################
##### Section: Manual Registration ###
# #
# # Term "Manual Registration" may be ambiguous but it implies
# # ML maintainer needs to do some action to add a new member.
# # When the maintainer receives subscribe request, he/she
# #    1. remote login to the fml host and edit actives/members
# #    2. remote login to the fml host and run "makefml add ML address"
# #    3. send a command to add an address e.g. "admin add address".
# #       You need to enable remote administration function to do it.
# #       See "remote administration" section for more details.
# #
# # On contrary, "automatic registration" is fml does everything
# # to add a new member except for some error cases.
# #
# # only support 'confirmation' or 'forward_to_admin'
# # In "confirmation", fml confirms the subscribe request is valid to
# # avoid a tricky attack.
# # If "forward_to_admin" is selected, subscribe request is forwarded
# # to $MAINTAINER without further check.
# #
# # value: confirmation/forward_to_admin
# MANUAL_REGISTRATION_TYPE:	confirmation
.ok
.if MANUAL_REGISTRATION_TYPE == confirmation

	subscribe_command_auth_type = confirmation

.ok
.if MANUAL_REGISTRATION_TYPE == forward_to_admin

	subscribe_command_auth_type = manual


# # value: directory string
# MANUAL_REGISTRATION_CONFIRMATION_FILE:	$DIR/confirm.msub
.ok
.if MANUAL_REGISTRATION_CONFIRMATION_FILE
	.use_fml8_value


#########################################################################
##### Section: Automatic Registration ###
# #
# # When REJECT_{POST,COMMAND}_HANDLER is "auto_subscribe" or
# # "auto_regist", fml does everything to add a new member except for some
# # error cases. The subscription request type is as follows.
#
# # value: confirmation/subject/body/no-keyword
# AUTO_REGISTRATION_TYPE:	confirmation
.ok
.if AUTO_REGISTRATION_TYPE == confirmation
	.use_fml8_value

.ok
.if AUTO_REGISTRATION_TYPE == subject
	.not_support

.ok
.if AUTO_REGISTRATION_TYPE == body
	.not_support

.ok
.if AUTO_REGISTRATION_TYPE == no-keyword
	.not_support


# # keyword of subscribe request
# # $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD
# # value: string
# AUTO_REGISTRATION_KEYWORD:	subscribe
.ok
.if AUTO_REGISTRATION_KEYWORD == subscribe
	.use_fml8_value

.ok
.if AUTO_REGISTRATION_KEYWORD != subscribe
	.not_support


# # when automatic registration,
# # we apply $AUTO_REGISTRATION_DEFAULT_MODE e.g. "m=3mp s=1" to the address.
# # Please see "file operation" in doc/tutorial for more details.
# # value: string
# AUTO_REGISTRATION_DEFAULT_MODE:
.ok
.if AUTO_REGISTRATION_DEFAULT_MODE
	.not_support


# # "confirmation" (default) mode configurations
# # please see doc/tutorial for the detail of "confirmation"
# # value: string
# CONFIRMATION_ADDRESS:
.ok
.if CONFIRMATION_ADDRESS == CONTROL_ADDRESS
	.use_fml8_value

.ok
.if CONFIRMATION_ADDRESS != CONTROL_ADDRESS
	.not_support


# CONFIRMATION_SUBSCRIBE:		subscribe
.ok
.if CONFIRMATION_SUBSCRIBE == subscribe
	.use_fml8_value

.ok
.if CONFIRMATION_SUBSCRIBE != subscribe
	.not_support


# CONFIRMATION_KEYWORD:		confirm
.ok
.if CONFIRMATION_KEYWORD == confirm
	.use_fml8_value

.ok
.if CONFIRMATION_KEYWORD != confirm
	.not_support


# CONFIRMATION_WELCOME_STATEMENT:
.ok
.if CONFIRMATION_WELCOME_STATEMENT
	.not_support


# # "subscribe" needs no YOUR NAME.
# # value: 1/0
# CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME: 1
.ok
.if CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME == 1
	.not_support

.ok
.if CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME == 0
	.use_fml8_value


# # file to send back "what is confirmation?" with "confirmation request"
# # reply mail in "confirmation" mode.
# # value: filename string
# CONFIRMATION_FILE:	 $DIR/confirm
.ok
.if CONFIRMATION_FILE
	.use_fml8_value


# # Expire of request queue. The unit is "hour". (default, 168 == 7*24)
# # value: number
# CONFIRMATION_EXPIRE:		168
.ok
.if CONFIRMATION_EXPIRE == 168
	.use_fml8_value


# # confirmation request queue (you should not manually edit it)
# # value: filename string
# CONFIRMATION_LIST:		
.ok
.if CONFIRMATION_LIST
	.use_fml8_value


# # In fact, obsolete.
# # default keyword for trap
# # value: string
# DEFAULT_SUBSCRIBE:  subscribe
.ok
.if DEFAULT_SUBSCRIBE == subscribe
	.use_fml8_value

.ok
.if DEFAULT_SUBSCRIBE != subscribe
	.not_support


# # In adding a new member, fml sends $WELCOME_FILE to him/her.
# # ML maintainer should set up this file as a guide of mailing list.
# # This function works in automatic registration.
# # value: filename string
# WELCOME_FILE:	 $DIR/welcome
.ok
.if WELCOME_FILE
	.convert


# # subject of mail ($WELCOME_FILE) sent to a new member
# # value: string
# WELCOME_STATEMENT:Welcome to our $ML_FN\n         You are added automatically
.ok
.if WELCOME_STATEMENT == Welcome to our $ML_FN\n         You are added automatically
	.not_support


# # Enforce file to add a new member address for some purposes.
# # In default fml adds it to both $ACTIVE_LIST and $MEMBER_LIST.
# # value: filename string
# FILE_TO_REGIST:	
.ok
.if FILE_TO_REGIST
	.convert


# # obsolete in fact.
# #
# # In default if body lines > $AUTO_REGISTRATION_LINES_LIMIT,
# # we forward this mail to $MAIL_LIST. If $AUTO_REGISTERED_UNDELIVER_P is set,
# # we ALWAYS DO NOT Forward it to $MAIL_LIST.
# # value: 1/0
# AUTO_REGISTERED_UNDELIVER_P:  1
.ok
.if AUTO_REGISTERED_UNDELIVER_P == 1
	.use_fml8_value

.ok
.if AUTO_REGISTERED_UNDELIVER_P == 0
	.not_support

# TYPO
.ok
.if AUTO_REGISTERD_UNDELIVER_P == 1
	.not_support



# AUTO_REGISTRATION_LINES_LIMIT:  0
.ok
.if AUTO_REGISTRATION_LINES_LIMIT == 0
	.not_support

.ok
.if AUTO_REGISTRATION_LINES_LIMIT > 0
	.not_support



#########################################################################
##### Section: Confirmd ###
# # confirmd
# # value: filename string
# CONFIRMD_ACK_REQ_FILE:	$DIR/confirmd.ackreq
.if CONFIRMD_ACK_REQ_FILE == $DIR/confirmd.ackreq
	.not_yet_implemented

# CONFIRMD_ACK_LOGFILE:	$VARLOG_DIR/confirmd.ack
.if CONFIRMD_ACK_LOGFILE == $VARLOG_DIR/confirmd.ack
	.not_yet_implemented


# # value: number / ( number + month/week/day )
# CONFIRMD_ACK_EXPIRE_UNIT:	1month
.if CONFIRMD_ACK_EXPIRE_UNIT == 1month
	.not_yet_implemented


# CONFIRMD_ACK_WAIT_UNIT:		2weeks
.if CONFIRMD_ACK_WAIT_UNIT == 2weeks
	.not_yet_implemented



#########################################################################
##### Section: Remote Administration ###
# #
# # For security, I do not recommend you use remote control of fml.
# # If $REMOTE_ADMINISTRATION is set, you can control FML by sending
# # a command mail from remote host.
# # Another choice from remote host is CGI interface but fml 3.0 does not
# # provide it. CGI development is underway.
# #
# # value: 1/0
# REMOTE_ADMINISTRATION:  0
.ok
.if REMOTE_ADMINISTRATION == 0

	use_admin_command_mail_function = no

.ok
.if REMOTE_ADMINISTRATION == 1

	use_admin_command_mail_function = yes


# COMPAT_CF_2
# if ($REMOTE_ADMINISTRATION_REQUIRE_PASSWORD) {
#     $REMOTE_ADMINISTRATION_AUTH_TYPE = "crypt";
# }
# else {
#     $REMOTE_ADMINISTRATION_AUTH_TYPE = "address";
# }

.ok
.if REMOTE_ADMINISTRATION_REQUIRE_PASSWORD == 1

	admin_command_mail_restrictions = reject_system_special_accounts check_admin_member_password reject

.ok
.if REMOTE_ADMINISTRATION_REQUIRE_PASSWORD == 0

	admin_command_mail_restrictions = reject_system_special_accounts permit_admin_member_maps reject

# # Of course, the remote control requires some kind of authentication.
# # The choice of authentication is $REMOTE_ADMINISTRATION_AUTH_TYPE,
# # which is one of
# #    address		From: field
# #    crypt		From: field + password (e.g. "#admin pass PASSWORD")
# #    md5		From: field + password (e.g. "#admin pass PASSWORD")
# #    pgp                PGP(Pretty Good Privacy) signature
# #
# # The difference of "crypt" and "md5" is $PASSWD_FILE format.
# # HISTORY: $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD <=> "crypt"
# #
# # value: crypt/address/md5/pgp/pgp2/pgp5/gpgp
# REMOTE_ADMINISTRATION_AUTH_TYPE:	crypt
.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == crypt

	admin_command_mail_restrictions = reject_system_special_accounts check_admin_member_password reject

.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == address

	admin_command_mail_restrictions = reject_system_special_accounts permit_admin_member_maps reject


.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == md5

	admin_command_mail_restrictions = reject_system_special_accounts check_admin_member_password reject

.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == pgp

	admin_command_mail_restrictions = reject_system_special_accounts check_pgp_signature reject

.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == pgp2

	admin_command_mail_restrictions = reject_system_special_accounts check_pgp_signature reject

.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == pgp5

	admin_command_mail_restrictions = reject_system_special_accounts check_pgp_signature reject

.ok
.if REMOTE_ADMINISTRATION_AUTH_TYPE == gpg

	admin_command_mail_restrictions = reject_system_special_accounts check_pgp_signature reject


# # address list of members who can send a command mail from remote
# # value: filename string
# ADMIN_MEMBER_LIST:	$DIR/members-admin
.ok
.if ADMIN_MEMBER_LIST
	.convert


# # help file of admin commands
# # value: filename string
# ADMIN_HELP_FILE:	$DIR/help-admin
.ok
.if ADMIN_HELP_FILE
	.use_fml8_value


# # password file to authenticate members
# # The format is "address encrypted-password" and uses one line for one address.
# # value: filename string
# PASSWD_FILE: 		$DIR/etc/passwd
.ok
.if PASSWD_FILE
	.convert


# # "admin add" to add an address to a member list. If it succeeds, fml
# # sends back $WELCOME_FILE if this variable is defined. In default fml
# # does not do it, so the maintainer needs to send the success of subscribe
# # and guide to the new member.
# # value: 1/0
# ADMIN_ADD_SEND_WELCOME_FILE:	0
.ok
.if ADMIN_ADD_SEND_WELCOME_FILE == 0
	.not_support

.ok
.if ADMIN_ADD_SEND_WELCOME_FILE == 1
	.use_fml8_value


# # N, the number of lines, of "tail -N $LOGFILE".
# # "admin log" is "tail -100 log" in default to avoid too big mail.
# # value: number
# ADMIN_LOG_DEFAULT_LINE_LIMIT:	100
.ok
.if ADMIN_LOG_DEFAULT_LINE_LIMIT
	log_command_tail_starting_location = %s


# # PGP directory path (obsolete in fml 4.0)
# # value: filename string
# PGP_PATH:		$DIR/etc/pgp
.ok
.if PGP_PATH == $DIR/etc/pgp
	.use_fml8_value


# # If you enforce the following *KEYRING_DIR in $CFVersion < 6.1,
# # set this variable on.
# # value: 1/0
# USE_FML40_PGP_PATH:	1
.ok
.if USE_FML40_PGP_PATH == 1
	.use_fml8_value


# # fml 4.0
# # value: directory string
# DIST_AUTH_KEYRING_DIR:		$DIR/etc/dist-auth
.ok
.if DIST_AUTH_KEYRING_DIR == $DIR/etc/dist-auth
	.use_fml8_value


# DIST_ENCRYPT_KEYRING_DIR:	$DIR/etc/dist-encrypt
.ok
.if DIST_ENCRYPT_KEYRING_DIR == $DIR/etc/dist-encrypt
	.use_fml8_value


# ADMIN_AUTH_KEYRING_DIR:		$DIR/etc/admin-auth
.ok
.if ADMIN_AUTH_KEYRING_DIR == $DIR/etc/admin-auth
	.use_fml8_value


# ADMIN_ENCRYPT_KEYRING_DIR:	$DIR/etc/admin-encrypt
.ok
.if ADMIN_ENCRYPT_KEYRING_DIR == $DIR/etc/admin-encrypt
	.use_fml8_value



#########################################################################
##### Section: Moderations; moderators check posted articles ###

# # "moderator" certification type
# # value: 1/2/3
# MODERATOR_FORWARD_TYPE:	2
#
# !!! MODERATOR_FORWARD_TYPE  PERMIT_*_FROM ξʸǥå !!!
#


# # member list who receives submitted article.
# # If this file does not exist, it is forwarded to only $MAINTAINER.
# # A moderator who certificate submitted articles and permit the post
# # to mailing list.
# #
# # fml does not check moderator's addresses. fml check only "moderators
# # knows passwords or identifiers (one time password)".
# #
# # value: filename string
# MODERATOR_MEMBER_LIST:	$DIR/moderators
.ok
.if MODERATOR_MEMBER_LIST
	.convert


# # expire old submitted but not certified articles
# # default: 2 weeks
# # value: number
# MODERATOR_EXPIRE_LIMIT:	14
.ok
.if MODERATOR_EXPIRE_LIMIT == 14
	.use_fml8_value



#########################################################################
##### Section: Security ###

# # We reject $REJECT_ADDR@ARBITRARY.DOM.AIN since these are clearly NOT
# # individuals. It also may be effective to avoid mail loop since
# # some error or automatic reply comes from not individual addresses.
# # This restriction is stronger than $PERMIT_*_FROM variable.
# # For example, if $PERMIT_POST_FROM is "anyone", fml does not permit
# # post from root@some.domain. If you permit it, please define $REJECT_ADDR.
# #
# # XXX This variable name is ambiguous. It should be $REJECT_ACCOUNT?
# #
# # value: regexp string
# REJECT_ADDR:	root|postmaster|MAILER-DAEMON|msgs|nobody|news|majordomo|listserv|listproc|\S+\-help|\S+\-subscribe|\S+\-unsubscribe
.ok
.if REJECT_ADDR
	.convert


# # list of addresses fml should reject. fml checks From: field for this but
# # it may be ineffective since SMTP has no general authentication method.
# # value: filename string
# REJECT_ADDR_LIST:	$DIR/spamlist
.ok
.if REJECT_ADDR_LIST
	.convert


# # check UNIX from to avoid mail loop. check in default.
# # value: 1/0
# NOT_USE_UNIX_FROM_LOOP_CHECK:  0
.ok
.if NOT_USE_UNIX_FROM_LOOP_CHECK == 0
	.use_fml8_value

.ok
.if NOT_USE_UNIX_FROM_LOOP_CHECK == 1

	incoming_mail_envelope_loop_check_rules -= check_envelope_sender


# # check Message-Id: duplication to avoid mail loop
# # value: 1/0
# CHECK_MESSAGE_ID:	1
.ok
.if CHECK_MESSAGE_ID == 1
	.use_fml8_value

.ok
.if CHECK_MESSAGE_ID == 0

	incoming_mail_header_loop_check_rules -= check_message_id


# # check mail body content md5 checksum to avoid mail loop
# # do not check it in default.
# # value: 1/0
# CHECK_MAILBODY_CKSUM:	0
.ok
.if CHECK_MAILBODY_CKSUM == 1
	.use_fml8_value

.ok
.if CHECK_MAILBODY_CKSUM == 0

	incoming_mail_body_loop_check_rules -= check_body_checksum

# # obsolete today
# # Logs the getpeername()
# # value: 1/0
# LOG_CONNECTION:	0
.ok
.if LOG_CONNECTION
	.not_support


# # address check levels, which level is the tree depth from the root.
# # For example
# #    fukachan@phys.titech.ac.jp
# #    fukachan@axion.phys.titech.ac.jp
# #
# # fml checks $ADDR_CHECK_MAX level from the name space root. That is
# # compare "jp" -> compare "ac" -> titech -> phys -> axion ...
# #
# # When $ADDR_CHECK_MAX = 3, fml regards these two are the same.
# # When $ADDR_CHECK_MAX = 4, fml regards these two are the same.
# # When $ADDR_CHECK_MAX = 5, fml regards these two are DIFFERENT!
# #
# # value: number
# ADDR_CHECK_MAX:		3
.ok
.if ADDR_CHECK_MAX
	address_compare_function_domain_matching_level = %s


# XXX SIZE OF THIS LIMIT = HEADER_SIZE + BODY_SIZE
# # fml reject too big mail.
# # In-coming mail size > $INCOMING_MAIL_SIZE_LIMIT, fml discards it
# # and send a warning only to the maintainer.
# # 0 (default) implies infinite (no limit)
# # value: number
# INCOMING_MAIL_SIZE_LIMIT:
.ok
.if INCOMING_MAIL_SIZE_LIMIT == 0
	.not_support

.ok
.if INCOMING_MAIL_SIZE_LIMIT != 0
	.convert


# # When fml reject too big mail,
# # if $NOTIFY_MAIL_SIZE_OVERFLOW is set, notify the rejection to the sender.
# # value: 1/0
# NOTIFY_MAIL_SIZE_OVERFLOW:	1
.ok
.if NOTIFY_MAIL_SIZE_OVERFLOW == 1
	.use_fml8_value


.ok
.if NOTIFY_MAIL_SIZE_OVERFLOW == 0
	.not_yet_implemented



# # When fml reject too big mail,
# # if $ANNOUNCE_MAIL_SIZE_OVERFLOW is set, announce "too big mail from someone"
# # to mailing list (SARASHIMONO:-).
# # value: 1/0
# ANNOUNCE_MAIL_SIZE_OVERFLOW:	0
.ok
.if ANNOUNCE_MAIL_SIZE_OVERFLOW == 0
	.not_yet_implemented

.ok
.if ANNOUNCE_MAIL_SIZE_OVERFLOW == 1
	.not_yet_implemented



# # Resource Limit (useful for ISP ?): (default 0 == not check this limit)
# # the maximum of ML delivery members when auto registration routine works.
# #
# # If member > $MAX_MEMBER_LIMIT, auto registration rejects the request.
# # We check actives to permit aliases of post-able addresses.
# # We check @ACTIVE_LIST effective members, not @MEMBER_LIST.
# # value: number
# MAX_MEMBER_LIMIT:
.ok
.if MAX_MEMBER_LIMIT
	.convert

# # Filter of posted article.
# # &EnvelopeFilter is called in the top of &Distribute if you set
# # $USE_DISTRIBUTE_FILTER = 1;
# # value: 1/0
# USE_DISTRIBUTE_FILTER:
.ok
.if USE_DISTRIBUTE_FILTER == 1

	use_article_filter = yes

.ok
.if USE_DISTRIBUTE_FILTER == 0

	use_article_filter = no


# # Filter of posted article.
# # You can use $DISTRIBUTE_FILTER_HOOK for advanced customizes.
# # value: string
# DISTRIBUTE_FILTER_HOOK:
.ok
.if DISTRIBUTE_FILTER_HOOK
	.not_support


# # $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to
# # the sender.
# # value: 1/0
# FILTER_NOTIFY_REJECTION:
.ok
.if FILTER_NOTIFY_REJECTION == 1

	use_article_filter_reject_notice = yes

.ok
.if FILTER_NOTIFY_REJECTION == 0

	use_article_filter_reject_notice = no



# # Attribute of filter of posted article
# # value: 1/0
# FILTER_ATTR_REJECT_NULL_BODY:	1
.ok
.if FILTER_ATTR_REJECT_NULL_BODY == 1

	article_text_plain_filter_rules += reject_null_mail_body

.ok
.if FILTER_ATTR_REJECT_NULL_BODY == 0

	article_text_plain_filter_rules -= reject_null_mail_body



# # Attribute of filter of posted article
# # When $FILTER_ATTR_REJECT_COMMAND is 1 under distribution mode,
# # rejects "# command" syntax just before distribution (&Distribute;)
# # value: 1/0
# FILTER_ATTR_REJECT_COMMAND:
# XXX fml8 += operation meas append (but we need prepend here)
.ok
.if FILTER_ATTR_REJECT_COMMAND == 1
	.use_fml8_value

.ok
.if FILTER_ATTR_REJECT_COMMAND == 0

	article_text_plain_filter_rules -= reject_old_fml_command_syntax



# # Attribute of filter of posted article
# # reject Japanese "2byes English words"
# # value: 1/0
# FILTER_ATTR_REJECT_2BYTES_COMMAND:
# XXX fml8 += operation meas append (but we need prepend here)
.ok
.if FILTER_ATTR_REJECT_2BYTES_COMMAND == 1
	.use_fml8_value

.ok
.if FILTER_ATTR_REJECT_2BYTES_COMMAND == 0

	article_text_plain_filter_rules -= reject_japanese_command_syntax




# # Attribute of filter of posted article
# # reject command mail sent to the address for posting.
# # value: 1/0
# FILTER_ATTR_REJECT_INVALID_COMMAND:	1
.ok
.if FILTER_ATTR_REJECT_INVALID_COMMAND == 1

	article_text_plain_filter_rules += reject_invalid_fml_command_syntax

.ok
.if FILTER_ATTR_REJECT_INVALID_COMMAND == 0

	article_text_plain_filter_rules -= reject_invalid_fml_command_syntax


# # Attribute of filter of posted article
# # reject a mail with "one line" mail body (must be invalid command mail)
# # one line means the input mail has one line in the first paragraph
# # except for signature (last paragraph).
# # Even if it has one line, the paragraph ends with period '.'
# # it must be an effective paragraph. So we should not reject it.
# # value: 1/0
# FILTER_ATTR_REJECT_ONE_LINE_BODY:	1
.ok
.if FILTER_ATTR_REJECT_ONE_LINE_BODY == 1

	article_text_plain_filter_rules += reject_one_line_message


.ok
.if FILTER_ATTR_REJECT_ONE_LINE_BODY == 0

	article_text_plain_filter_rules -= reject_one_line_message


# # Attribute of filter of posted article
# # reject MIME/multipart mails with Microsoft GUID within it,
# # We intend to reject "Melissa virus" family by it.
# # value: 1/0
# FILTER_ATTR_REJECT_MS_GUID: 1
.ok
.if FILTER_ATTR_REJECT_MS_GUID == 1

	article_text_plain_filter_rules += reject_ms_guid

.ok
.if FILTER_ATTR_REJECT_MS_GUID == 0

	article_text_plain_filter_rules -= reject_ms_guid


# # reject not ascii nor ISO-2022-JP
# # value: 1/0
# FILTER_ATTR_REJECT_INVALID_JAPANESE: 0
# XXX fml8 += operation meas append (but we need prepend here)
.ok
.if FILTER_ATTR_REJECT_INVALID_JAPANESE == 1
	.use_fml8_value

.ok
.if FILTER_ATTR_REJECT_INVALID_JAPANESE == 0

	article_text_plain_filter_rules -= reject_not_iso2022jp_japanese_string


# # cutoff empty message.
# # value: 1/0
# CONTENT_HANDLER_CUTOFF_EMPTY_MESSAGE:	0
.ok
.if CONTENT_HANDLER_CUTOFF_EMPTY_MESSAGE
	.not_support


# # reject empty message after cut off process.
# # value: 1/0
# CONTENT_HANDLER_REJECT_EMPTY_MESSAGE:	0
.ok
.if CONTENT_HANDLER_REJECT_EMPTY_MESSAGE
	.not_support


# # try to convert Japanese HANKAKU chars in the mail body to ZENAKKU
# # value: 1/0
# USE_HANKAKU_CONVERTER:	0
.ok
.if USE_HANKAKU_CONVERTER == 0
	.not_yet_implemented

.ok
.if USE_HANKAKU_CONVERTER == 1
	.not_yet_implemented


# # reject HTML mails that the same content exist in the form of both
# # plain and html. e.g. some versions of M$ outlook, netscape mail
# # "AGAINST_HTML_MAIL: 1/0" is old style, which works for compatibility though.
# # NULL (default) is "pass through a html mail".
# # value: "strip" / "reject" / ""
# HTML_MAIL_DEFAULT_HANDLER:
.ok
.if HTML_MAIL_DEFAULT_HANDLER
	.not_support


# # Traffic Monitoring Mechanism within fml
# # Mail Traffic Information: internal traffic monitor
# # value: 1/0
# USE_MTI:
.if USE_MTI
	.not_yet_implemented


# # MIT warning (mail bomb report) negative cache interval
# # to avoid mail bomb of "mail bomb attack report" itself.
# # value: number
# MTI_WARN_INTERVAL: 3600
.if MTI_WARN_INTERVAL
	.not_yet_implemented


# # value: filename string
# MTI_WARN_LASTLOG:
.if MTI_WARN_LASTLOG
	.not_yet_implemented


# # garbage collection
# # how old data (cache) to remove in clean up
# # value: number
# MTI_EXPIRE_UNIT: 3600
.if MTI_EXPIRE_UNIT



# # low water mark
# # value: number
# MTI_BURST_SOFT_LIMIT: 1
.if MTI_BURST_SOFT_LIMIT
	.not_yet_implemented


# # high water mark
# # value: number
# MTI_BURST_HARD_LIMIT: 2
.if MTI_BURST_HARD_LIMIT
	.not_yet_implemented


# # function name to evaluate the current traffic load
# # value: funtion string
# MTI_COST_EVAL_FUNCTION: MTISimpleBomberP
.if MTI_COST_EVAL_FUNCTION
	.not_yet_implemented


# # cache of spammer candidates
# # value: filename string
# MTI_MAIL_FROM_HINT_LIST: $DIR/mti_mailfrom.hints
.if MTI_MAIL_FROM_HINT_LIST
	.not_yet_implemented


# # how to announce the new comer if $AUTO_REGISTERED_UNDELIVER_P is 0.
# # value: raw / prepend_info
# SUBSCRIBE_ANNOUNCE_FORWARD_TYPE: prepend_info
.ok
.if SUBSCRIBE_ANNOUNCE_FORWARD_TYPE == prepend_info
	.not_support

.ok
.if SUBSCRIBE_ANNOUNCE_FORWARD_TYPE == raw
	.not_support



# # Optional. If UNSUBSCRIBE_AUTH_TYPE is 'confirmation', fml sends back
# # confirmation against a fake. In default, FML does not do confirmation.
# # available type is "confirmation" only.
# # value: confirmation
# UNSUBSCRIBE_AUTH_TYPE:
# XXX in fml8, encfore use of confirmation
.ok
.if UNSUBSCRIBE_AUTH_TYPE == confirmation

	unsubscribe_command_auth_type = confirmation


.ok
.if UNSUBSCRIBE_AUTH_TYPE != confirmation

	unsubscribe_command_auth_type = confirmation


# # chaddr checks confirmation
# # value: confirmation / ""
# CHADDR_AUTH_TYPE:
# XXX in fml8, encfore use of confirmation
.ok
.if CHADDR_AUTH_TYPE == confirmation

	chaddr_command_auth_type = confirmation

.ok
.if CHADDR_AUTH_TYPE != confirmation

	unsubscribe_command_auth_type = confirmation


# # LOGGING THE LATEST IN-COMING MAILS
# # Logs an in-coming mail to $LOG_MAIL_DIR/$id
# # where ($id = `cat $LOG_MAIL_SEQ`; $id = $id % $NUM_LOG_MAIL; $id++).
# # Latest $NUM_LOG_MAIL files are stored in $LOG_MAIL_DIR and
# # the message size of each file except for the header
# # is limited up to $LOG_MAIL_FILE_SIZE_MAX bytes to save disk.
# # value: 1/0
# USE_LOG_MAIL:	0
.ok
.if USE_LOG_MAIL == 0

	use_incoming_mail_cache = no

.ok
.if USE_LOG_MAIL == 1

	use_incoming_mail_cache = yes


# # value: filename string
# LOG_MAIL_DIR:	$VAR_DIR/Mail
.ok
.if LOG_MAIL_DIR
	.use_fml8_value


# LOG_MAIL_SEQ:	$LOG_MAIL_DIR/.seq
.ok
.if LOG_MAIL_SEQ
	.use_fml8_value


# # value: number
# NUM_LOG_MAIL:	100
.ok
.if NUM_LOG_MAIL
	incoming_mail_cache_size = %s


# LOG_MAIL_FILE_SIZE_MAX:	2048
.ok
.if LOG_MAIL_FILE_SIZE_MAX
	.use_fml8_value


# # PGP Encrypted ML
# # value: 1/0
# USE_ENCRYPTED_DISTRIBUTION:
.ok
.if USE_ENCRYPTED_DISTRIBUTION == 1
	.not_yet_implemented

.ok
.if USE_ENCRYPTED_DISTRIBUTION == 0
	.not_yet_implemented


# # value: pgp / pgp2 / pgp5 / gpg
# ENCRYPTED_DISTRIBUTION_TYPE:	pgp2
.ok
.if ENCRYPTED_DISTRIBUTION_TYPE == pgp
	.not_yet_implemented

.ok
.if ENCRYPTED_DISTRIBUTION_TYPE == pgp2
	.not_yet_implemented

.ok
.if ENCRYPTED_DISTRIBUTION_TYPE == pgp5
	.not_yet_implemented

.ok
.if ENCRYPTED_DISTRIBUTION_TYPE == gpg
	.not_yet_implemented


# # obosolete in fml 4.0
# # value: 2/5/6
# # PGP_VERSION:	2


#########################################################################
##### Section: Header Customization ###
# # In general, you can control fields in header in the following:
# #
# #   @HdrFieldsOrder 				 Fields Order In Header
# #					 	
# #   &DEFINE_FIELD_ORIGINAL('field');             Conserve Original
# #   &DEFINE_FIELD_FORCED('field', "contents");   Overwrite
# #
# # In default, we discard fields not shown in @HdrFieldsOrder.

# # Date: definition ("makefml config" can control this)
# # 1 original-date			Date:
# # * Date: == when distribute() works
# # 2 distribute-date+posted		Date: + Posted:
# # 3 distribute-date+x-posted		Date: + X-Posted:
# # 4 distribute-date+x-original-date	Date: + X-Original-Date:
# # * Date: == when fml.pl receives or is kicked off.
# # 5 received-date+posted		Date: + Posted:
# # 6 received-date+x-posted		Date: + X-Posted:
# # 7 received-date+x-original-date	Date: + X-Original-Date:
# # value: original-date/distribute-date+posted/distribute-date+x-posted
# #	 /distribute-date+x-original-date/received-date+posted
# #	 /received-date+x-posted/received-date+x-original-date
# DATE_TYPE:	original-date
.ok
.if DATE_TYPE == original-date
	.use_fml8_value

.ok
.if DATE_TYPE != original-date
	.not_support


# # In article header, fml adds following header fields.
# #
# #   $XMLNAME
# #   $XMLCOUNT: sequence-number
# #
# #   e.g.
# #   X-ML-Name: Elena
# #   X-Mail-Count: 00007
# #
# # value: string
# XMLNAME:	 X-ML-Name: Elena
.ok
.if XMLNAME == X-ML-Name: Elena
	.convert

.ok
.if XMLNAME != X-ML-Name: Elena
	.convert

# XMLCOUNT:	 X-Mail-Count
.ok
.if XMLCOUNT == X-Mail-Count

	article_header_rewrite_rules += add_fml_traditional_article_id

.ok
.if XMLCOUNT != X-Mail-Count
	.not_support


# # In default subject tag does not exist to show more and more effective
# # subject and body. Client Interface SHOULD CONTROL subject descriptions.
# #
# # The available type is [:] [,] [ ] (:) (,) ( ).
# # e.g. [:]  => [Elena:00100] format (here $BRACKET is "Elena").
# # But you can customize SUBJECT_FREE_* series variables.
# # Please see doc/tutorial for the detail
# #
# # value:  (:) / [:] / () / [] / (,) / [,] / () / [] / (ID) / [ID] / ""
# SUBJECT_TAG_TYPE:	
.ok
.if SUBJECT_TAG_TYPE
	.convert


# # BRACKET of "Subject: [BRACKET:ID] ..." form
# # value: string
# BRACKET:	 Elena
.ok
.if BRACKET == Elena
	.not_support


# # obsolete
# # We strip off e.g. [ML:fukachan] form in Subject
# # but this operations depends on special forms, so not functional.
# # You do not expect a lot on this option.
# STRIP_BRACKETS:  0
.ok
.if STRIP_BRACKETS == 0
	.not_support


# # You can customize your own bracket by these variables.
# # See doc/tutorial and libtagdef.pl on examples.
# # value: regexp string
# BRACKET_SEPARATOR:
.ok
.if BRACKET_SEPARATOR
	.not_support


# SUBJECT_FREE_FORM:
.ok
.if SUBJECT_FREE_FORM
	.not_support


# SUBJECT_FREE_FORM_REGEXP:
.ok
.if SUBJECT_FREE_FORM_REGEXP
	.not_support


# SUBJECT_FORM_LONG_ID:
.ok
.if SUBJECT_FORM_LONG_ID
	.convert


# # obsolete based on RFC1123
# # value: 1/0
# USE_ERRORS_TO:	
.ok
.if USE_ERRORS_TO == 1

	article_header_rewrite_rules += rewrite_errors_to

.ok
.if USE_ERRORS_TO == 0

	article_header_rewrite_rules -= rewrite_errors_to


# # obsolete based on RFC1123
# # value: string
# ERRORS_TO:
.ok
.if ERRORS_TO
	.convert


# # Message-Id: use original Message-Id or Server Defined Message-Id ?
# # if 1, original and
# # if 0, fml generates a message-id like $day.FMLAAA.$pid.$MAIL_LIST
# # value: 1/0
# USE_ORIGINAL_MESSAGE_ID:	1
.ok
.if USE_ORIGINAL_MESSAGE_ID == 1
	.use_fml8_value

.ok
.if USE_ORIGINAL_MESSAGE_ID == 0
	.not_yet_implemented


# # Precedence: field;
# # value: string
# PRECEDENCE:	bulk
.ok
.if PRECEDENCE
	mail_header_default_precedence = %s


# # append STARTREK stardate :-) in article.
# # Stardate calculation algorithm is ambiguous.
# # X-Stardate: field
# # value: 1/0
# APPEND_STARDATE:
.ok
.if APPEND_STARDATE == 1

	article_header_rewrite_rules += rewrite_stardate

.ok
.if APPEND_STARDATE == 0

	article_header_rewrite_rules -= rewrite_stardate


# # RFC2369 e.g. list-post: ..
# # value: 1/0
# USE_RFC2369:	1
.ok
.if USE_RFC2369 == 1

	article_header_rewrite_rules += add_rfc2369

.ok
.if USE_RFC2369 == 0

	article_header_rewrite_rules -= add_rfc2369


# # List-*
# LIST_SOFTWARE:		
.ok
.if LIST_SOFTWARE
	.use_fml8_value

# LIST_POST:		
.ok
.if LIST_POST
	.convert

# LIST_OWNER:		
.ok
.if LIST_OWNER
	.convert

# LIST_HELP:		
.ok
.if LIST_HELP
	.convert

# LIST_SUBSCRIBE:	
.ok
.if LIST_SUBSCRIBE
	.convert

# LIST_UNSUBSCRIBE:	
.ok
.if LIST_UNSUBSCRIBE
	.convert

# LIST_ID:		
.ok
.if LIST_ID
	.convert



# # obsolete in fml 3.0
# # We should force "To: $MAIL_LIST" form "For Eye" or NOT?
# # default is "NO".
# #
# # 0 Pass the original field To:
# # 1 We rewrite "To: $MAIL_LIST, original-to-fields".
# # 2 Force "To: $MAIL_LIST".
#
# # REWRITE_TO = 1 if NOT_REWRITE_TO == 0 (2.1 Release)
# # value: 0/1/2
# REWRITE_TO:
.ok
.if REWRITE_TO == 2
	.not_support

.ok
.if REWRITE_TO == 1
	.not_support

.ok
.if REWRITE_TO == 0
	.use_fml8_value


# # Default values if no value (no field) is given.
# # value: string
# Subject:
.ok
.if Subject
	.not_support

# From_address:	 not.found
.ok
.if From_address
	.not_support

# User:		 not.found
.ok
.if User
	.not_support

# Date:		 not.found
.ok
.if Date
	.not_support


# # TIME ZONE;  +0900 is RFC822 syntax (I like JST but ... ;-)
# # value: +\d{4} / -\d{4}
# TZone:		 +0900
.ok
.if TZone
	.not_support


# # time zone within summer time if you use summer time.
# # thank HIROSHIMA Naoki <naoki@bcrossing.com> on this idea
# TZONE_DST:
.ok
.if TZONE_DST
	.not_support


# # ## Sub Section: Pass All Header ? ##
# # In some cases you need to pass only defined fields of the header
# # which is defined in @HdrFieldsOrder (see "sub SetDefaults" in fml.pl).
# # All files except $SKIP_FIELDS is passed through
# # when $PASS_ALL_FIELDS_IN_HEADER is set.
# # The old variable name is $SUPERFLUOUS_HEADERS.
# # value: 1/0
# PASS_ALL_FIELDS_IN_HEADER: 1
.ok
.if PASS_ALL_FIELDS_IN_HEADER == 1
	.use_fml8_value

.ok
.if PASS_ALL_FIELDS_IN_HEADER == 0
	.not_support

.ok
.if SUPERFLUOUS_HEADERS == 1
	.use_fml8_value

.ok
.if SUPERFLUOUS_HEADERS == 0
	.not_support


# # ignore header field irrespective of @HdrFieldsOrder and
# # $PASS_ALL_FIELDS_IN_HEADER setting
# # value: regexp string
# SKIP_FIELDS:	Return-Receipt-To
.ok
.if SKIP_FIELDS
	.convert


# # correct a wrong input
# # value: 1/0
# ALLOW_WRONG_LINES_IN_HEADER: 1
# XXX after fml 4.0.3
.ok
.if ALLOW_WRONG_LINES_IN_HEADER == 1
	.not_support



#########################################################################
##### Section: Commands, Command Traps, File Operations (e.g. mget) ###

# # obsolete
# # COMMAND format is "#help" == "# help" if $COMMAND_SYNTAX_EXTENSION is set.
# # value: 1/0
# COMMAND_SYNTAX_EXTENSION:  1
.ok
.if COMMAND_SYNTAX_EXTENSION == 1
	.use_fml8_value


# # "Subject: # commands" is available?
# # value: 1/0
# USE_SUBJECT_AS_COMMANDS:	0
.ok
.if USE_SUBJECT_AS_COMMANDS
	.not_support


# # obsolete
# # If NOT "# command" syntax commands is given, ignore or warn to the user?
# # Our default is not, since most such cases are "signature".
# # value: 1/0
# USE_WARNING:			0
.ok
.if USE_WARNING == 0
	.use_fml8_value

.ok
.if USE_WARNING == 1
	.not_support


# # obsolete: since this is the same as --ctladdr.
# # value: 1/0
# COMMAND_ONLY_SERVER:	0
.ok
.if COMMAND_ONLY_SERVER
	.use_fml8_value


# # **ATTENTION**
# # $PROHIBIT_COMMAND_FOR_STRANGER is obsoletes since
# # $PROHIBIT_COMMAND_FOR_STRANGER equals $PERMIT_COMMAND_FROM = "anyone";

# # ## Sub Section: traps ##
# # obsolete
# # when $MAIL_LIST == $CONTROL_ADDRESS,
# # the first $COMMAND_CHECK_LIMIT lines is checked for commands mail or not?
# # $GUIDE_CHECK_LIMIT is the same kind of variable but for "# guide" trap.
# # $GUIDE_KEYWORD determines "guide" of "$ guide" trap.
# # value: number
# COMMAND_CHECK_LIMIT:  	3
.ok
.if COMMAND_CHECK_LIMIT == 3
	.not_support


# # obsolete
# # value: number
# GUIDE_CHECK_LIMIT:	3
.ok
.if GUIDE_CHECK_LIMIT == 3
	.not_support


# # obsolete
# # value: string
# GUIDE_KEYWORD:	guide
.ok
.if GUIDE_KEYWORD == guide
	.not_support



# # The maximum length for each command. 128 bytes by default.
# # value: number
# MAXLEN_COMMAND_INPUT: 128
.ok
.if MAXLEN_COMMAND_INPUT > 0
	.if MAXLEN_COMMAND_INPUT != 128

	command_mail_line_length_limit = %s


# # The maximum number of commands in one command mail.
# # The variable \$MAXNUM_COMMAND_INPUT controls this.
# # If the value is 3, fml permits 3 commands in one command mail.
# # 0 or NULL implies infinite (default).
# # value: number
# MAXNUM_COMMAND_INPUT:
.ok
.if MAXNUM_COMMAND_INPUT > 0

	command_mail_valid_command_limit = %s


# # "# chaddr" command name aliases
# # value: regexp string
# CHADDR_KEYWORD:	 chaddr|change\-address|change
.ok
.if CHADDR_KEYWORD == chaddr|change\-address|change
	.use_fml8_value


# # choise of addresses to return for "chaddr" command reply
# # value: newaddr curaddr maintainer
# CHADDR_REPLY_TO: newaddr curaddr
.ok
.if CHADDR_REPLY_TO == newaddr curaddr
	.not_yet_implemented


# # choise of addresses to return for "admin chaddr" command reply
# # value: newaddr curaddr maintainer
# ADMIN_CHADDR_REPLY_TO: newaddr curaddr
.ok
.if ADMIN_CHADDR_REPLY_TO == newaddr curaddr
	.not_yet_implemented


# # ## Sub Section: mget ##
# # The default mode of "mget" without mode (default is "tar.gz" form).
# # $MGET_TEXT_MODE_DEFAULT is used by &SendFileBySplit
# # value: mode string
# MGET_MODE_DEFAULT:
.ok
.if MGET_MODE_DEFAULT
	.not_support


# MGET_TEXT_MODE_DEFAULT:
.ok
.if MGET_TEXT_MODE_DEFAULT
	.not_support


# # The reply for "mget" commands sends long reply mails as splitten mails
# # by the unit $MAIL_LENGTH_LIMIT lines once at $SLEEPTIME secs..
# # value: number
# MAIL_LENGTH_LIMIT:	1000
.ok
.if MAIL_LENGTH_LIMIT == 1000
	.not_support


# SLEEPTIME:		60
.ok
.if SLEEPTIME
	.not_support


# # almost obsolete
# # special case of "mget" routine uses these variables.
# # It is not user defined variable.
# # See doc/tutorial and libfop.pl for the detail.
# # You change MIME/Multipart default.
# # value: string
# MIME_VERSION:
.ok
.if MIME_VERSION
	.not_support

# MIME_CONTENT_TYPE:
.ok
.if MIME_CONTENT_TYPE
	.not_support

# MIME_MULTIPART_BOUNDARY:
.ok
.if MIME_MULTIPART_BOUNDARY
	.not_support

# MIME_MULTIPART_CLOSE_DELIMITER:
.ok
.if MIME_MULTIPART_CLOSE_DELIMITER
	.not_support

# MIME_MULTIPART_DELIMITER:
.ok
.if MIME_MULTIPART_DELIMITER
	.not_support

# MIME_MULTIPART_PREAMBLE:
.ok
.if MIME_MULTIPART_PREAMBLE
	.not_support

# MIME_MULTIPART_TRAILER:
.ok
.if MIME_MULTIPART_TRAILER
	.not_support


# # Japanese specific
# # sjis conversion in "mget ish" mode.
# # value: 1/0
# USE_SJIS_IN_ISH:
.ok
.if USE_SJIS_IN_ISH
	.not_support


# # RFC1153 configurations; see doc/tutorial for the detail
# # value: number
# RFC1153_ISSUE:
.ok
.if RFC1153_ISSUE
	.not_support


# # value: number / string
# RFC1153_VOL:
.ok
.if RFC1153_VOL
	.not_support


# # value: filename string
# RFC1153_SEQUENCE_FILE:
.ok
.if RFC1153_SEQUENCE_FILE
	.not_support


# # ## Sub Section: MTA specific ##
# # qmail specific extension
# # To send "get 1" to ml-ctl@domain is equivalent to that
# # send anything to ml-get-1@domain if this variable is defined.
# # value: 1/0
# USE_DOT_QMAIL_EXT:	0
.ok
.if USE_DOT_QMAIL_EXT == 0
	.use_fml8_value


# # ## Sub Section: Headers of reply from FML ##
# # obsolete
# # For the reply for commands from fml,
# # we force Reply-To: $FORCE_COMMAND_REPLY_TO ?(default is $CONTROL_ADDRESS)
# # value: string
# FORCE_COMMAND_REPLY_TO:
.ok
.if FORCE_COMMAND_REPLY_TO
	.not_yet_implemented


# # Subject template in "mget" reply.
# # automatic substitute is done before send the reply; For example,
# # Subject: result for mget [last:3 tar + gzip] (1/1) (Elena Lolabrigita ML)
# #
# #   _DOC_MODE_   <=>    [last:10 tar + gzip]
# #   _PART_       <=>    (1/4)
# #   _ML_FN_      <=>    $ML_FN (here is "(Elena Lolabrigita ML)")
# #
# # $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
# #
# # value: string
# MGET_SUBJECT_TEMPLATE:	result for mget _DOC_MODE_ _PART_ _ML_FN_
.ok
.if MGET_SUBJECT_TEMPLATE == result for mget _DOC_MODE_ _PART_ _ML_FN_
	.not_support


# # send error message to Reply-To: ? or From: ?
# # (Of course From: if Reply-To: is not defined).
# # If $MESSAGE_RETURN_ADDR_POLICY is null,
# # it implies we prefer Reply-To: (by default).
# # value: from / reply-to
# MESSAGE_RETURN_ADDR_POLICY: reply-to
.ok
.if MESSAGE_RETURN_ADDR_POLICY == reply-to
	.not_support


#########################################################################
##### Section: Digest/Matome Okuri Configurations ###
# #
# # $MSEND_MODE_DEFAULT is the default of msend (when e.g. m=3)
# # and the format is the same as $MGET_MODE_DEFAULT.
# # which is "tar.gz" format.

# # Subject template in Digest/matome okuri.
# # automatic substitute is done before send the reply; For example,
# # Digest -Matome Okuri- Article 768 [last:10 tar + gzip] (1/1) (Elena ML)
# #
# #   _ARTICLE_RANGE_  <=>    Article 768
# #   _DOC_MODE_       <=>    [last:10 tar + gzip]
# #   _PART_           <=>    (1/4)
# #   _ML_FN_          <=>    $ML_FN (here is "(Elena ML)")
# #
# # $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
# #
# # value: string
# MSEND_SUBJECT_TEMPLATE:	Digest _ARTICLE_RANGE_ _PART_ _ML_FN_
.ok
.if MSEND_SUBJECT_TEMPLATE
	.not_support


# # Digest/Matome Okuri rc file
# # value: filename string
# MSEND_RC:	 $VARLOG_DIR/msendrc
.ok
.if MSEND_RC
	.not_support

# # rfc1153 or rfc934
# # obsoletes $USE_RFC1153, $USE_RFC1153_DIGEST, $USE_RFC934
# # value: mode string
# MSEND_MODE_DEFAULT:
.ok
.if MSEND_MODE_DEFAULT
	.not_support


# # Subject:
# # value: string
# MSEND_DEFAULT_SUBJECT:
.ok
.if MSEND_DEFAULT_SUBJECT
	.not_support


# # If no articles to send, we send "no traffic" to the member of $MAIL_LIST
# # with the subject $MSEND_NOTIFICATION_SUBJECT if $MSEND_NOTIFICATION is set.
# # value: 1/0
# MSEND_NOTIFICATION:
.ok
.if MSEND_NOTIFICATION
	.not_support


# # value: string
# MSEND_NOTIFICATION_SUBJECT:
.ok
.if MSEND_NOTIFICATION_SUBJECT
	.not_support


# # not require X-ML-Info: in the "mget";
# # value: 1/0
# MSEND_NOT_USE_X_ML_INFO:
.ok
.if MSEND_NOT_USE_X_ML_INFO == 0
	.use_fml8_value

.ok
.if MSEND_NOT_USE_X_ML_INFO == 1
	.not_support


# # not do newsyslog in the Sundays morning. $NOT_USE_NEWSYSLOG (CFVersion 2)
# # value: 1/0
# MSEND_NOT_USE_NEWSYSLOG:
.ok
.if MSEND_NOT_USE_NEWSYSLOG == 0
	.not_support


#########################################################################
##### Section: Other Files for Configurations and Logs ###

# # cache file of Message-ID: loop check
# # value: filename string
# LOG_MESSAGE_ID:	$VARRUN_DIR/msgidcache
.ok
.if LOG_MESSAGE_ID == $VARRUN_DIR/msgidcache
	.use_fml8_value


# # cache size of Message-ID: negative cache
# # value: number
# MESSAGE_ID_CACHE_BUFSIZE:	6000
.ok
.if MESSAGE_ID_CACHE_BUFSIZE == 6000
	.use_fml8_value


# # cache file of mailbody cksum mail loop check
# # value: filename string
# LOG_MAILBODY_CKSUM:	$VARRUN_DIR/bodycksumcache
.ok
.if LOG_MAILBODY_CKSUM != $VARRUN_DIR/bodycksumcache
	.use_fml8_value


# # $MEMBER_LIST 	member who can post and use commands
# # $ACTIVE_LIST 	delivery list
# # value: filename string
# MEMBER_LIST: 	 $DIR/members
.ok
.if MEMBER_LIST != $DIR/members
	.convert


# ACTIVE_LIST: 	 $DIR/actives
.ok
.if ACTIVE_LIST != $DIR/actives
	.convert



# # ATTENTION: only "guide" is also send to strangers
# #
# # $GUIDE_FILE 		sent by "# guide" command,
# # $OBJECTIVE_FILE 	sent by "# objective" command
# # $HELP_FILE 		sent by "# help" command
# # value: filename string
# GUIDE_FILE:	 $DIR/guide
.ok
.if GUIDE_FILE != $DIR/guide
	.convert


# OBJECTIVE_FILE:	 $DIR/objective
.ok
.if OBJECTIVE_FILE != $DIR/objective
	.convert


# HELP_FILE:	 $DIR/help
.ok
.if HELP_FILE
	.use_fml8_value


# # When fml rejects mail from someone, fml sends back this file to the sender.
# # value: filename string
# DENY_FILE:	 $DIR/deny
.ok
.if DENY_FILE != $DIR/deny
	.convert


# # $LOGFILE		log file
# # $MGET_LOGFILE		log file for mget routine, $LOGFILE in default.
# # value: filename string
# LOGFILE:	 $DIR/log
.ok
.if LOGFILE != $DIR/log
	.convert


# MGET_LOGFILE:    $DIR/log
.ok
.if MGET_LOGFILE != $DIR/log
	.not_support


# # suffix extension if defined. For example log.2000
# # For example $LOGFILE_SUFFIX = ".%C%y", file name is "log.2000".
# # See UNIX manual "strftime(3)" for more details on format.
# # value: srtings
# LOGFILE_SUFFIX:
.ok
.if LOGFILE_SUFFIX
	.convert


# # when -d2 ($debug = 2), logs this file for convenience.
# # value: filename string
# DEBUG_LOGFILE:    $DIR/log.debug
.ok
.if DEBUG_LOGFILE == $DIR/log.debug
	.not_support


# # article summary file
# # value: filename string
# SUMMARY_FILE: 	 $DIR/summary
.ok
.if SUMMARY_FILE != $DIR/summary
	.convert


# # sequence number file
# # value: filename string
# SEQUENCE_FILE: 	 $DIR/seq
.ok
.if SEQUENCE_FILE != $DIR/seq
	.convert


# # rename(2) lock (liblock.pl)
# # value: filename string
# LOCK_FILE:	 $VARRUN_DIR/lockfile.v7
.ok
.if LOCK_FILE == $VARRUN_DIR/lockfile.v7
	.not_support

.ok
.if LOCK_DIR
	.not_support

.ok
.if LOCKDIR
	.not_support

.ok
.if LOCKFILE
	.not_support



#########################################################################
##### Section: SMTP and Delivery ###
# #
# # fml sends mail via SMTP to mail server $HOST:$PORT/tcp.
# # The default host is one fml runs on itself.
# # $HOST is an arbitrary host (if you can access it) which runs MTA
# # (e.g. sendmail). If the Mailing List Server machine is week,
# # you can use the sendmail of another powerful host(host).

# # always try IPv6 connection by default
# # value: 1/0
# USE_INET6: 1
.ok
.if USE_INET6 == 1
	.use_fml8_value

.ok
.if USE_INET6 == 0
	.not_support


# # value: string
# HOST:		localhost
.ok
.if HOST
	.convert


# # value: number
# PORT:		25
.ok
.if PORT
	.convert


# # enforce MAIL FROM:<$SMTP_SENDER> if defined
# # value: address
# SMTP_SENDER:
.ok
.if SMTP_SENDER
	.convert


# # IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG
# # value: filename string
# SMTP_LOG:		$VARLOG_DIR/_smtplog
.ok
.if SMTP_LOG
	.use_fml8_value


# # rotate use of var/log/_smtplog.$i (where $i is the number)
# # value: 1/0
# USE_SMTP_LOG_ROTATE:	1
.ok
.if USE_SMTP_LOG_ROTATE == 1
	.use_fml8_value

.ok
.if USE_SMTP_LOG_ROTATE == 0
	.not_support



# # expire how old _smtplog.$date
# # value: number
# SMTP_LOG_ROTATE_EXPIRE_LIMIT:	90
.ok
.if SMTP_LOG_ROTATE_EXPIRE_LIMIT == 90
	.not_support

.ok
.if SMTP_LOG_ROTATE_EXPIRE_LIMIT != 90
	.not_support


# # the number of var/log/_smtplog.$i files. This is the value of modulus.
# # value: number
# NUM_SMTP_LOG_ROTATE:	8
.ok
.if NUM_SMTP_LOG_ROTATE
	.use_fml8_value


# # type of suffix for _smtplog
# # value: number / day
# SMTP_LOG_ROTATE_TYPE:	number
.ok
.if SMTP_LOG_ROTATE_TYPE == day
	.not_support

.ok
.if SMTP_LOG_ROTATE_TYPE
	.use_fml8_value



# # IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG
# # IF $TRACE_SMTP_DELAY IS 1, we log the delay of response between SMTP server.
# # value: 1/0
# NOT_TRACE_SMTP:  	0
.ok
.if NOT_TRACE_SMTP == 0

	use_smtp_log = yes

.ok
.if NOT_TRACE_SMTP == 1

	use_smtp_log = no


# TRACE_SMTP_DELAY:
.ok
.if TRACE_SMTP_DELAY
	.not_support


# # smtp profile for debug
# # value: 1/0
# USE_SMTP_PROFILE:	0
.ok
.if USE_SMTP_PROFILE
	.not_support


# # You can use plural MTA for parallel delivery.
# # $MCI_SMTP_HOSTS is the number of hosts you use.
# # @HOSTS is the array of hosts you use.
# # value: number
# MCI_SMTP_HOSTS:		
.ok
.if MCI_SMTP_HOSTS
	.not_support


# # obsolete today
# # value: string
# DEFAULT_RELAY_SERVER:
.ok
.if DEFAULT_RELAY_SERVER
	.not_support


# # obsolete today
# # CF (by motonori@wide.ad.jp) base relay control if $RELEY_HACK is on.
# # with %RELAY_GW, %RELAY_NGW, %RELAY_NGW_DOM (set in librelayhack.pl)
# # $CF_DEF is CF's configuration files;
# # **ATTENTION**; we do not use sendmail.cf but CF's configuration.
# # value: 1/0
# RELAY_HACK:
.ok
.if RELAY_HACK
	.not_support


# # obsolete today
# # value: filename string
# CF_DEF:
.ok
.if CF_DEF
	.not_support


# # list-outgoing@domain is a real distribution address. Fml does not
# # sends article to all recipient list to MTA but only this address.
# # MTA expands address list and distribute article.
# # In default fml does not use this but effective for poor machine like
# # 486 16M ;-)
# #
# #  fml -> list-outgoing -> expanded and distributed to $ACTIVE_LIST members
# #
# # XXX dedicated to minmin sama:D
# #
# # value: 1/0
# USE_OUTGOING_ADDRESS:
.ok
.if USE_OUTGOING_ADDRESS
	.not_yet_implemented


# # list-outgoing@domain is a real distribution address. Fml does not
# # sends article to all recipient list to MTA but only this address.
# # MTA expands address list and distribute article.
# # In default fml does not use this but effective for poor machine like
# # 486 16M ;-)
# #
# #  fml -> list-outgoing -> expanded and distributed to $ACTIVE_LIST members
# #
# # value: string
# OUTGOING_ADDRESS:
.ok
.if OUTGOING_ADDRESS
	.not_yet_implemented


# # VERPs: Variable Envelope Return Paths. See qmail documents for more details.
# # XXX you need additional configuration so that MTA receives VERPs addresses.
# #
# # value: 1/0
# USE_VERP:
.ok
.if USE_VERP
	.not_support


# # postfix $verp_delimiters
# # value: string
# POSTFIX_VERP_DELIMITERS: +=
.ok
.if POSTFIX_VERP_DELIMITERS
	postfix_verp_delimiters = %s


# # try VERPs once a day for efficient delivery.
# # value: 1/0
# TRY_VERP_PER_DAY:
.ok
.if TRY_VERP_PER_DAY
	.not_support


# # we use ESMTP pipelining mechanism by default.
# # value: 1/0
# NOT_USE_ESMTP_PIPELINING: 0
.ok
.if NOT_USE_ESMTP_PIPELINING == 0
	.not_support


# # smtpfeed special option which provides VERPs like error track trick.
# # value: 1/0
# USE_SMTPFEED_F_OPTION:
.ok
.if USE_SMTPFEED_F_OPTION
	.not_support


#########################################################################
##### Section: MISC ###

# # ## Sub Section: MIME ##
# # Mime Decode On if $USE_MIME for ISO-2022-JP statements.
# # e.g. Decode $SUMMARY_FILE subject and so on.
# # default 1 from 2.1C#13
# # value: 1/0
# USE_MIME:		1
.ok
.if USE_MIME == 1
	.use_fml8_value

.ok
.if USE_MIME == 0
	.not_support


# # special hack to treat broken MIME ending (e.g. by MacOS X)
# # value: 1/0
# MIME_BROKEN_ENCODING_FIXUP:	0
.ok
.if MIME_BROKEN_ENCODING_FIXUP == 0
	.use_fml8_value


# # obsolete and Japanese specific
# # NOT RECOMMENDED OPTION:
# # articles in the spool are MIME-DECODED for poor environment users.
# # These articles may be insane in strict MIME oriented mail interfaces.
# # value: 1/0
# MIME_DECODED_ARTICLE:
.ok
.if MIME_DECODED_ARTICLE
	.not_support



# # ## Sub Section: Preamble and Trailer for Mail Body ##
# # FOR COMMAND RESULT MAIL,
# # you always append some message in the command reply mail body.
# # For example, the mail body becomes
# #
# #    $PREAMBLE_MAILBODY
# #    original body
# #    $TRAILER_MAILBODY
# #
# # If you use the article distributed in ML, you must use some hooks.
# # For example, append this in the last of config.ph (but before 1;)
# # $SMTP_OPEN_HOOK = q
# #   $e{'Body'} = $PREAMBLE_MAILBODY. $e{'Body'} .$TRAILER_MAILBODY;
# # #;
# # Please see doc/tutorial for our policy behind this.
# #
# # value: string
# PREAMBLE_MAILBODY:
.ok
.if PREAMBLE_MAILBODY
	.not_support

# TRAILER_MAILBODY:
.ok
.if TRAILER_MAILBODY
	.not_support



# # ## Sub Section: Reply Configurations ##
# # In the last of e.g. "command status report", we add
# # "$GOOD_BYE_PHRASE $FACE_MARK" :-) in the last of the reply.
# # So the standard form is
# #
# #    message
# #    FYI message generated by the function $PROC_GEN_INFO.
# #    $GOOD_BYE_PHRASE $FACE_MARK
# #    for example, "	--$MAIL_LIST, Be Seeing You!"
# #
# # value: string
# GOOD_BYE_PHRASE:
.ok
.if GOOD_BYE_PHRASE
	.not_support

# FACE_MARK:
.ok
.if FACE_MARK
	.not_support


# # value: function name string
# PROC_GEN_INFO:		GenInfo
.ok
.if PROC_GEN_INFO
	.not_support



# # ## Sub Section: Lock Algorithm ##
# # use flock for lock algorithm if $USE_FLOCK is on.
# # see flock(2), alarm(3). If not, we rename(2) base lock.
# # The timeout of rename(2) lock is rand(3) *  $MAX_TIMEOUT secs.
# # value: 1/0
# USE_FLOCK:	 1
.ok
.if USE_FLOCK == 1
	.use_fml8_value

.ok
.if USE_FLOCK == 0
	.not_support


# # In rename(2) base lock case,
# # the timeout of rename(2) lock is rand(3) *  $MAX_TIMEOUT secs.
# # value: number
# MAX_TIMEOUT:	 200
.ok
.if MAX_TIMEOUT == 200
	.not_support



# # ## Sub Section: misc ##
# # Not spooling of articles (default is "spooling")
# # It may be used for some secret ML, ML on diskless machihe;-), ISP services
# # value: 1/0
# NOT_USE_SPOOL:	
.ok
.if NOT_USE_SPOOL == 1

	use_article_spool = no

.ok
.if NOT_USE_SPOOL == 0

	use_article_spool = yes


# # "$CFVersion < 2" equals "$COMPAT_FML15 = 1;"
# # value: 1/0
# COMPAT_FML15:		0
.ok
.if COMPAT_FML15 == 0
	.not_support


# # newsyslog library maximum number. default is 4.
# # log.4 is removed and
# # log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0
# # value: number
# NEWSYSLOG_MAX:		4
.ok
.if NEWSYSLOG_MAX == 4
	.not_support


# # not used generally. This is "cron of fml package" configuration.
# # $CRONTAB 	configuratoin file
# # $CRON_PIDFILE	pid file
# # value: filename string
# CRONTAB:			etc/crontab
.ok
.if CRONTAB == etc/crontab
	.not_support

# CRON_PIDFILE:			var/run/cron.pid
.ok
.if CRON_PIDFILE == var/run/cron.pid
	.not_support


# # not used generally. This is "cron of fml package" configuration.
# # cron notifies what is done to $MAINTAINER.
# # value: 1/0
# CRON_NOTIFY:			1
.ok
.if CRON_NOTIFY == 1
	.not_support


# # cross operations
# # value: 1/0
# USE_CROSSPOST:
.ok
.if USE_CROSSPOST
	.not_support


# # Under $USE_MEMBER_NAME is set, commands on member lists
# # are with Gecos Fields which are extracted from From: field
# # in the time of auto registration.
# # Author: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
# # value: 1/0
# USE_MEMBER_NAME:
.ok
.if USE_MEMBER_NAME
	.not_support



#########################################################################
##### Section: Expire and Archive  ###

# # If $USE_EXPIRE is set, we do expire articles in $SPOOL_DIR.
# # The default is "no". You need to remove articles if you do so.
#
# # Expiration limit is $EXPIRE_LIMIT, which syntax is
# #   e.g. 7days(days) or 100 (articles left in spool)
# # If you re-generate $SUMMARY_FILE, set $EXPIRE_SUMMARY
# #
# # value: 1/0
# USE_EXPIRE:			0
.ok
.if USE_EXPIRE == 0

	use_article_expire = no

.ok
.if USE_EXPIRE == 1

	use_article_expire = yes


# # expire summary file when $USE_EXPIRE is enabled.
# # value: 1/0
# EXPIRE_SUMMARY:
.ok
.if EXPIRE_SUMMARY == 0

	use_article_summary_file_expire = no

.ok
.if EXPIRE_SUMMARY == 1

	use_article_summary_file_expire = yes


# # expire how old articles
# # value: number / ( number + day/week/month )
# EXPIRE_LIMIT:			7days
.ok
.if EXPIRE_LIMIT == 7days
	.use_fml8_value


# # If $USE_ARCHIVE is on, we do automatically archive, which is
# # spool/articles is aggregated to e.g. "$ARCHIVE_DIR/100.tar.gz"
# # by the unit $ARCHIVE_UNIT.
# #
# # the location of store (when $USE_ARCHIVE on):	$ARCHIVE_DIR
# # the search path order                       : $ARCHIVE_DIR @ARCHIVE_DIR
# #
# # If @ARCHIVE_DIR is set and $ARCHIVE_DIR is not set,
# #    we use $ARCHIVE_DIR[0] as the $ARCHIVE_DIR.
# #
# # value: 1/0
# USE_ARCHIVE:			0
.ok
.if USE_ARCHIVE == 0
	.not_support


# # spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz"
# # by the unit $ARCHIVE_UNIT.
# # value: number
# ARCHIVE_UNIT:			100
.ok
.if ARCHIVE_UNIT == 100
	.not_support


# DEFAULT_ARCHIVE_UNIT:		100
.ok
.if DEFAULT_ARCHIVE_UNIT == 100
	.not_support


# # spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz"
# # value: directory string
# ARCHIVE_DIR:			var/archive
.ok
.if ARCHIVE_DIR == var/archive
	.not_support


# # "index" command
# # In default we scan spool and archives and reports, but
# # send back $INDEX_FILE if $INDEX_FILE exists.
# # value: filename string
# INDEX_FILE:			$DIR/index
.ok
.if INDEX_FILE == $DIR/index
        .not_yet_implemented


# # show directory name in "index" command result? default is "no".
# # value: 1/0
# INDEX_SHOW_DIRNAME:		0
.ok
.if INDEX_SHOW_DIRNAME == 0
        .not_yet_implemented



##### Section: Library Commands  ###
# #
# # "library" command is a small mailing list within mailing list.
# # It is useful to exchange some files.
# # You can put and get files by "library" commands.
# #
# # In default, @DenyProcedure = ('library'); So 'library' command is disabled;
# # Set @DenyProcedure = ('') in LOCAL CONFIG part (the last of config.ph).
# #
# # value: directory string
# LIBRARY_DIR:			var/library
.ok
.if LIBRARY_DIR == var/library
	.not_support


# LIBRARY_ARCHIVE_DIR:		archive
.ok
.if LIBRARY_ARCHIVE_DIR == archive
	.not_support


# # ## Sub Section: newsyslog(8) ##
# # to turn over \$DIR/log
# # value: number
# LOGFILE_NEWSYSLOG_LIMIT:
.ok
.if LOGFILE_NEWSYSLOG_LIMIT
	.convert


# # to turn over $ACTIVE_LIST and $MEMBER_LIST if the file size over this value,
# # default 150K = 30*5000
# # value: number / (number + K/M)
# AMLIST_NEWSYSLOG_LIMIT:	150K
.ok
.if AMLIST_NEWSYSLOG_LIMIT == 150K
	.not_support



##### Section: Html Configurations ###
# #
# # HTML article generator: Please see doc/tutorial for the details.
# # AUTO_HTML_GEN == AUTOmatic HTML GENeration
# # if $AUTO_HTML_GEN, we generate html'ed articles in $DIR/$HTML_DIR
# # value: 1/0
# AUTO_HTML_GEN:
.ok
.if AUTO_HTML_GEN == 1

	use_html_archive = yes

.ok
.if AUTO_HTML_GEN == 0

	use_html_archive = no


# # use Mail::HTML::Lite in fml-devel (fml next generation).
# # value: 1/0
# USE_NEW_HTML_GEN:
.ok
.if USE_NEW_HTML_GEN == 1

	use_html_archive = yes

.ok
.if USE_NEW_HTML_GEN == 0

	use_html_archive = no


# # value: 1/0
# HTML_THREAD:			1
.ok
.if HTML_THREAD == 1
	.use_fml8_value

.ok
.if HTML_THREAD == 0
	.not_support


# # value: 1/0
# HTML_INDEX_REVERSE_ORDER:	1
.ok
.if HTML_INDEX_REVERSE_ORDER == 1
	.use_fml8_value

.ok
.if HTML_INDEX_REVERSE_ORDER == 0
	.not_support


# # generate html articles under htdocs/
# # value: directory string
# HTML_DIR:			htdocs
.ok
.if HTML_DIR == htdocs
	.use_fml8_value


# # expire old html articles if non-zero value is defined.
# # not expire in default since the value is 0 or NULL.
# # options: Please see doc/tutorial for the details.
# # value: number
# HTML_EXPIRE_LIMIT:
.ok
.if HTML_EXPIRE_LIMIT
	.not_support


# # title of index.html
# # value: string
# HTML_INDEX_TITLE:
.ok
.if HTML_INDEX_TITLE
	.not_support


# # cache file
# # value: filename string
# HTML_DATA_CACHE:
.ok
.if HTML_DATA_CACHE
	.use_fml8_value


# HTML_DATA_THREAD:
.ok
.if HTML_DATA_THREAD
	.use_fml8_value


# # filter in generate html file
# # value: filename string
# HTML_OUTPUT_FILTER:
.ok
.if HTML_OUTPUT_FILTER
	.not_support


# # stylesheet file name (see HTML 4.0)
# # "fml.css" is default.
# # value: filename string
# HTML_STYLESHEET_BASENAME:	
.ok
.if HTML_STYLESHEET_BASENAME
	.not_support


# # threading algorithm type
# # value: default / prefer-in-reply-to
# HTML_THREAD_REF_TYPE:		prefer-in-reply-to
.ok
.if HTML_THREAD_REF_TYPE == prefer-in-reply-to
	.use_fml8_value

.ok
.if HTML_THREAD_REF_TYPE == default
	.not_support


# # sort type for entries of thread.html
# # default is "time" from past to latest,
# # "reverse-number" is from latest to past.
# # value: "" / reverse-number
# HTML_THREAD_SORT_TYPE:
.ok
.if HTML_THREAD_SORT_TYPE == reverse-number

	html_archive_index_order_type = reverse

.ok
.if HTML_THREAD_SORT_TYPE == NULL

	html_archive_index_order_type = normal


# # $subdir type of htdocs/$subdir/
# # value: number / day / week / month / infinite
# HTML_INDEX_UNIT:		day
.ok
.if HTML_INDEX_UNIT
	.not_support


# # threading type
# # value: "" / UL
# HTML_INDENT_STYLE:		UL
.ok
.if HTML_INDENT_STYLE
	.not_support


# # image file embedding style
# # value: A / IMAGE
# HTML_MULTIPART_IMAGE_REF_TYPE:
.ok
.if HTML_MULTIPART_IMAGE_REF_TYPE
	.not_support


# # html file umask
# # value: "" / umask
# HTML_DEFAULT_UMASK:
.ok
.if HTML_DEFAULT_UMASK
	.not_support


# HTML_WRITE_UMASK:
.ok
.if HTML_WRITE_UMASK
	.not_support



##### Section: Interface to DataBase Management System ###

# # value: 1/0
# USE_DATABASE:
.ok
.if USE_DATABASE
	.not_support


# # value:
# DATABASE_METHOD:
.ok
.if DATABASE_METHOD
	.not_support


# # value:
# DATABASE_CACHE_FILE_SUFFIX:
.ok
.if DATABASE_CACHE_FILE_SUFFIX
	.not_support


# # value: filename
# DATABASE_DRIVER: toymodel.pl
.ok
.if DATABASE_DRIVER == toymodel.pl
	.not_support


# # attributes to inform database drivers
# # value:
# DATABASE_DRIVER_ATTRIBUTES: always_lower_domain
.ok
.if DATABASE_DRIVER_ATTRIBUTES == always_lower_domain
	.not_support


# # ## Sub Section: RDBMS

# # value: string
# SQL_SERVER_HOST:
.ok
.if SQL_SERVER_HOST
	.not_support


# # value: number
# SQL_SERVER_PORT:
.ok
.if SQL_SERVER_PORT
	.not_support


# # value: string
# SQL_SERVER_USER:
.ok
.if SQL_SERVER_USER
	.not_support


# # value: string
# SQL_DATABASE_NAME:
.ok
.if SQL_DATABASE_NAME
	.not_support


# # value: string
# SQL_SERVER_PASSWORD:
.ok
.if SQL_SERVER_PASSWORD
	.not_support


# # value: string
# SQL_DATABASE_NAME:
.ok
.if SQL_DATABASE_NAME
	.not_support



# # ## Sub Section: LDAP

# # value: string
# LDAP_SERVER_HOST:
.ok
.if LDAP_SERVER_HOST
	.not_support


# LDAP_SERVER_PASSWORD:
.ok
.if LDAP_SERVER_PASSWORD
	.not_support


# LDAP_SEARCH_BASE:
.ok
.if LDAP_SEARCH_BASE
	.not_support


# LDAP_SERVER_BIND:
.ok
.if LDAP_SERVER_BIND
	.not_support


# LDAP_QUERY_FILTER:
.ok
.if LDAP_QUERY_FILTER
	.not_support




##### Section: Interface to other Services (http,ftp,gopher,www) ###

# # "whois": default is search of local database file
# # If "whois -h host" syntax is given, we connects "host" whois server.
# # If $USE_WHOIS set, you can use local database $WHOIS_DB.
# # If you have local whois server (inetd), you can also use it.
# # If "whois help" is given, send back $WHOIS_HELP_FILE if it exists.
# #
# # value: 1/0
# USE_WHOIS:
.ok
.if USE_WHOIS
	.not_support


# # value: string
# DEFAULT_WHOIS_SERVER:
.ok
.if DEFAULT_WHOIS_SERVER
	.not_support


# # value: filename string
# WHOIS_DB:		$VARDB_DIR/whoisdb
.ok
.if WHOIS_DB == $VARDB_DIR/whoisdb
	.not_support


# WHOIS_HELP_FILE:
.ok
.if WHOIS_HELP_FILE
	.not_support


# # do Japanese conversion or not? for the result from whois server
# # value: 1/0
# WHOIS_JCODE_P:		1
.ok
.if WHOIS_JCODE_P == 1
	.not_support



#########################################################################
##### Section: Architecture Dependence ###

# # cpu-type manufacturer operating-system by GNU config.guess ("makefml")
# # value: string
# CPU_TYPE_MANUFACTURER_OS:
.ok
.if CPU_TYPE_MANUFACTURER_OS
	.use_fml8_value


# # struct sockaddr
# # It is system dependent.
# # value: string
# STRUCT_SOCKADDR:	S n a4 x8
.ok
.if STRUCT_SOCKADDR
	.use_fml8_value


# # flock(2) system call; please see "/usr/include/sys/file.h"
# # value: number
# LOCK_SH: 	 1
.ok
.if LOCK_SH
	.use_fml8_value


# LOCK_EX: 	 2
.ok
.if LOCK_EX
	.use_fml8_value


# LOCK_NB:	 4
.ok
.if LOCK_NB
	.use_fml8_value


# LOCK_UN: 	 8
.ok
.if LOCK_UN
	.use_fml8_value


# # enforce solaris 2 compatible
# # value: 1/0
# COMPAT_SOLARIS2:	
.ok
.if COMPAT_SOLARIS2
	.use_fml8_value


# # used in cron of fml package
# # we can emulate daemon(3) ?
# # value: 1/0
# NOT_USE_TIOCNOTTY:	
.ok
.if NOT_USE_TIOCNOTTY
	.use_fml8_value


# # On Unix, always yes set 1 in &SetDefaults;
# # value: 1/0
# HAS_GETPWUID:	&is_unix
.ok
.if HAS_GETPWUID
	.use_fml8_value


# # On Unix, always yes set 1 in &SetDefaults;
# # value: 1/0
# HAS_GETPWGID:	&is_unix
.ok
.if HAS_GETPWGID
	.use_fml8_value


# # On Unix, always yes set 1 in &SetDefaults;
# # value: 1/0
# HAS_ALARM:	&is_unix
.ok
.if HAS_ALARM
	.use_fml8_value


# # On Unix, always yes set 1 in &SetDefaults;
# # value: 1/0
# UNISTD:		&is_unix
.ok
.if UNISTD
	.use_fml8_value



# # program paths fml uses
# # Usually "makefml newml" checks and expands this value.
# # value: filename string
# SENDMAIL:	&path(sendmail)
.ok
.if SENDMAIL
	.use_fml8_value


# TAR:		&path(tar) cf -
.ok
.if TAR
	.use_fml8_value


# UUENCODE:	&path(uuencode)
.ok
.if UUENCODE
	.use_fml8_value


# COMPRESS:	&path(gzip) -c
.ok
.if COMPRESS
	.use_fml8_value


# ZCAT:		&path(gzcat:zcat:gzip\s-cd)
.ok
.if ZCAT
	.use_fml8_value


# LHA:		&path(lha)
.ok
.if LHA
	.use_fml8_value


# ISH:		&path(ish)
.ok
.if ISH
	.use_fml8_value


# ZIP:		&path(zip)
.ok
.if ZIP
	.use_fml8_value


# BZIP2:		&path(bzip2)
.ok
.if BZIP2
	.use_fml8_value


# PGP:		&path(pgp)
.ok
.if PGP
	.use_fml8_value


# PGP5:		&path(pgp5)
.ok
.if PGP5
	.use_fml8_value


# PGPE:		&path(pgpe)
.ok
.if PGPE
	.use_fml8_value


# PGPK:		&path(pgpk)
.ok
.if PGPK
	.use_fml8_value


# PGPS:		&path(pgps)
.ok
.if PGPS
	.use_fml8_value


# PGPV:		&path(pgpv)
.ok
.if PGPV
	.use_fml8_value


# GPG:		&path(gpg)
.ok
.if GPG
	.use_fml8_value


# RCS:		&path(rcs)
.ok
.if RCS
	.use_fml8_value


# CI:		&path(ci)
.ok
.if CI
	.use_fml8_value



# BASE64_DECODE:
.ok
.if BASE64_DECODE
	.use_fml8_value



# BASE64_ENCODE:
.ok
.if BASE64_ENCODE
	.use_fml8_value


# MD5:		&path(md5:md5sum)
.ok
.if MD5
	.use_fml8_value


#
# ??? OLD CONFIGURATIONS ???
#
.ok
.if SMTPLOG
	.use_fml8_value

# PERMIT_COMMAND_FROM = members_only
.ok
.if PROHIBIT_COMMAND_FOR_STRANGER
	.use_fml8_value

.ok
.if USE_LIBMIME == 1
	.use_fml8_value

.ok
.if USE_LIBMIME == 0
	.not_support

.ok
.if LIBMIMEDIR
	.not_support

.ok
.if RPG_ML_FORM_FLAG == 1
	.use_fml8_value

.ok
.if RPG_ML_FORM_FLAG == 0
	.not_support

.ok
.if SUN_OS_413 == 1
	.not_support

.ok
.if SUN_OS_413 == 0
	.not_support

.ok
.if SUBJECT_HML_FORM
	.convert

.ok
.if HML_FORM_LONG_ID
	.convert

.ok
.if ML_MEMBER_CHECK
	.not_support

.ok
.if DEFAULT_HTTP_PORT
	.not_support

.ok
.if DEFAULT_GOPHER_PORT
	.not_support

.ok
.if DEFAULT_HTML_FIELD
	.not_support

.ok
.if CP
	.use_fml8_value

.ok
.if RM
	.use_fml8_value

.ok
.if FML
	.not_support

.ok
.if LOAD_LIBRARY
	.not_support

.ok
.if STORED_BOUNDARY
	.not_support

.ok
.if AGAINST_NIFTY
	.not_support

.ok
.if _Ds
	.not_support

.ok
.if _Dm
	.not_support


# LOCAL_CONFIG:
# # ## Sub Section: Available Hooks ##
# # You can set customized hooks here. See doc/tutorial's chapter "HOOKS".
# # For example available hooks are
# # $START_HOOK, $DISTRIBUTE_START_HOOK, $SMTP_OPEN_HOOK
# # $HEADER_ADD_HOOK, $DISTRIBUTE_CLOSE_HOOK, $DISTRIBUTE_END_HOOK
# # $ADMIN_COMMAND_HOOK, $RFC1153_CUSTOM_HOOK, $MSEND_OPT_HOOK
# # $FML_EXIT_HOOK, $FML_EXIT_PROG, $MSEND_START_HOOK
# # $REPORT_HEADER_CONFIG_HOOK, $AUTO_REGISTRATION_HOOK, $MSEND_HEADER_HOOK
# # $SMTP_CLOSE_HOOK, $MODE_BIFURCATE_HOOK. $HTML_TITLE_HOOK
# # $PROCEDURE_CONFIG_HOOK, $ADMIN_PROCEDURE_CONFIG_HOOK, $COMMAND_HOOK
# #
# # ## Sub Section: Available Arrays and Assoc-Arrays ##
# # Also you can set here arrays and association arrays:
# #
# # @MEMBER_LIST, @ACTIVE_LIST, @CROSSPOST_CF
# # @HOST, @HOSTS, @MAIL_LIST_ALIASES, @HdrFieldsOrder
# #
# # value: perl statement
