diff options
| author | fukachan <fukachan> | 2004-03-15 09:03:35 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2004-03-15 09:03:35 +0000 |
| commit | 9ed717d08165575ea10b84cbb39a0abdcb7c1e15 (patch) | |
| tree | ae9029cc7574e32eed18962bf73026a9f42be39d /gnu | |
| parent | 3a8cd77204643ff9cdd456fcad299131b6596265 (diff) | |
| download | fml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.tar.gz fml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.tar.bz2 fml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.zip | |
Initial revision
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/dist/fml4/cf/MANIFEST | 1547 | ||||
| -rw-r--r-- | gnu/dist/fml4/cf/MANIFEST.Japanese | 1692 | ||||
| -rw-r--r-- | gnu/dist/fml4/cf/README | 15 | ||||
| -rw-r--r-- | gnu/dist/fml4/cf/compat.ignore | 16 | ||||
| -rwxr-xr-x | gnu/dist/fml4/cf/config | 807 |
5 files changed, 4077 insertions, 0 deletions
diff --git a/gnu/dist/fml4/cf/MANIFEST b/gnu/dist/fml4/cf/MANIFEST new file mode 100644 index 00000000..6bb7a395 --- /dev/null +++ b/gnu/dist/fml4/cf/MANIFEST @@ -0,0 +1,1547 @@ +INFO: +# FML Configurable Variable Definitions +# +# Copyright (C) 1996-2003 Ken'ichi Fukamachi +# All rights reserved. +# 1993-1996 fukachan@phys.titech.ac.jp +# 1996-2003 fukachan@sapporo.iij.ad.jp +# +# FML is free software; you can redistribute it and/or modify +# it under the terms of GNU General Public License. +# See the file COPYING for more details. +# +# $FML: MANIFEST,v 1.104 2003/12/06 04:06:29 fukachan Exp $ +# + + +##################################################################### +# ### 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 + +# global debug option. if non-nil, debug mode. +# In debug mode, fml does not distribute posted articles. +# value: 1/0 +debug: 0 + +# 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 + +# 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: + +# ## 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 +FQDN: &fix:fqdn axion.phys.titech.ac.jp + + +##################################################################### +# ### 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 + + +# $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 + +# 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: + +# ## 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: +MAINTAINER_SIGNATURE: + +# ## 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: + + +##################################################################### +# ### 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 + +# tmp, after chdir, under DIR +# value: directory string +TMP_DIR: tmp + +# 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 +VARLOG_DIR: var/log +VARRUN_DIR: var/run +VARDB_DIR: var/db + + +##################################################################### +# ### 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 + +# value: directory string +MANUAL_REGISTRATION_CONFIRMATION_FILE: $DIR/confirm.msub + +##################################################################### +# ### 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 + +# keyword of subscribe request +# $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD +# value: string +AUTO_REGISTRATION_KEYWORD: subscribe + +# 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: + +# "confirmation" (default) mode configurations +# please see doc/tutorial for the detail of "confirmation" +# value: string +CONFIRMATION_ADDRESS: +CONFIRMATION_SUBSCRIBE: subscribe +CONFIRMATION_KEYWORD: confirm +CONFIRMATION_WELCOME_STATEMENT: + +# "subscribe" needs no YOUR NAME. +# value: 1/0 +CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME: 1 + +# file to send back "what is confirmation?" with "confirmation request" +# reply mail in "confirmation" mode. +# value: filename string +CONFIRMATION_FILE: $DIR/confirm + +# Expire of request queue. The unit is "hour". (default, 168 == 7*24) +# value: number +CONFIRMATION_EXPIRE: 168 + +# confirmation request queue (you should not manually edit it) +# value: filename string +CONFIRMATION_LIST: + +# In fact, obsolete. +# default keyword for trap +# value: string +DEFAULT_SUBSCRIBE: subscribe + +# 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 + +# subject of mail ($WELCOME_FILE) sent to a new member +# value: string +WELCOME_STATEMENT:Welcome to our $ML_FN\n You are added automatically + +# 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: + +# 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 +AUTO_REGISTRATION_LINES_LIMIT: 0 + + +##################################################################### +# ### Section: Confirmd ### +# confirmd +# value: filename string +CONFIRMD_ACK_REQ_FILE: $DIR/confirmd.ackreq +CONFIRMD_ACK_LOGFILE: $VARLOG_DIR/confirmd.ack + +# value: number / ( number + month/week/day ) +CONFIRMD_ACK_EXPIRE_UNIT: 1month +CONFIRMD_ACK_WAIT_UNIT: 2weeks + +##################################################################### +# ### 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 + +# 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 + +# address list of members who can send a command mail from remote +# value: filename string +ADMIN_MEMBER_LIST: $DIR/members-admin + +# help file of admin commands +# value: filename string +ADMIN_HELP_FILE: $DIR/help-admin + +# 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 + +# "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 + +# 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 + +# PGP directory path (obsolete in fml 4.0) +# value: filename string +PGP_PATH: $DIR/etc/pgp + +# If you enforce the following *KEYRING_DIR in $CFVersion < 6.1, +# set this variable on. +# value: 1/0 +USE_FML40_PGP_PATH: 1 + +# fml 4.0 +# value: directory string +DIST_AUTH_KEYRING_DIR: $DIR/etc/dist-auth +DIST_ENCRYPT_KEYRING_DIR: $DIR/etc/dist-encrypt +ADMIN_AUTH_KEYRING_DIR: $DIR/etc/admin-auth +ADMIN_ENCRYPT_KEYRING_DIR: $DIR/etc/admin-encrypt + + +##################################################################### +# ### Section: Moderations; moderators check posted articles ### + +# "moderator" certification type +# value: 1/2/3 +MODERATOR_FORWARD_TYPE: 2 + +# 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 + +# expire old submitted but not certified articles +# default: 2 weeks +# value: number +MODERATOR_EXPIRE_LIMIT: 14 + + +##################################################################### +# ### 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 + + +# 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 + +# check UNIX from to avoid mail loop. check in default. +# value: 1/0 +NOT_USE_UNIX_FROM_LOOP_CHECK: 0 + +# check Message-Id: duplication to avoid mail loop +# value: 1/0 +CHECK_MESSAGE_ID: 1 + +# check mail body content md5 checksum to avoid mail loop +# do not check it in default. +# value: 1/0 +CHECK_MAILBODY_CKSUM: 0 + +# obsolete today +# Logs the getpeername() +# value: 1/0 +LOG_CONNECTION: 0 + +# 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 + +# 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: + +# 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 + +# 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 + +# 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: + +# 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: + +# Filter of posted article. +# You can use $DISTRIBUTE_FILTER_HOOK for advanced customizes. +# value: string +DISTRIBUTE_FILTER_HOOK: + +# $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to +# the sender. +# value: 1/0 +FILTER_NOTIFY_REJECTION: + +# Attribute of filter of posted article +# value: 1/0 +FILTER_ATTR_REJECT_NULL_BODY: 1 + +# 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: + +# Attribute of filter of posted article +# reject Japanese "2byes English words" +# value: 1/0 +FILTER_ATTR_REJECT_2BYTES_COMMAND: + +# Attribute of filter of posted article +# reject command mail sent to the address for posting. +# value: 1/0 +FILTER_ATTR_REJECT_INVALID_COMMAND: 1 + +# 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 + +# 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 + +# reject not ascii nor ISO-2022-JP +# value: 1/0 +FILTER_ATTR_REJECT_INVALID_JAPANESE: 0 + +# cutoff empty message. +# value: 1/0 +CONTENT_HANDLER_CUTOFF_EMPTY_MESSAGE: 0 + +# reject empty message after cut off process. +# value: 1/0 +CONTENT_HANDLER_REJECT_EMPTY_MESSAGE: 0 + +# try to convert Japanese HANKAKU chars in the mail body to ZENAKKU +# value: 1/0 +USE_HANKAKU_CONVERTER: 0 + +# 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: + +# Traffic Monitoring Mechanism within fml +# Mail Traffic Information: internal traffic monitor +# value: 1/0 +USE_MTI: + +# MIT warning (mail bomb report) negative cache interval +# to avoid mail bomb of "mail bomb attack report" itself. +# value: number +MTI_WARN_INTERVAL: 3600 + +# value: filename string +MTI_WARN_LASTLOG: + +# garbage collection +# how old data (cache) to remove in clean up +# value: number +MTI_EXPIRE_UNIT: 3600 + +# low water mark +# value: number +MTI_BURST_SOFT_LIMIT: 1 + +# high water mark +# value: number +MTI_BURST_HARD_LIMIT: 2 + +# function name to evaluate the current traffic load +# value: funtion string +MTI_COST_EVAL_FUNCTION: MTISimpleBomberP + +# cache of spammer candidates +# value: filename string +MTI_MAIL_FROM_HINT_LIST: $DIR/mti_mailfrom.hints + + +# how to announce the new comer if $AUTO_REGISTERED_UNDELIVER_P is 0. +# value: raw / prepend_info +SUBSCRIBE_ANNOUNCE_FORWARD_TYPE: prepend_info + + +# 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: + +# chaddr checks confirmation +# value: confirmation / "" +CHADDR_AUTH_TYPE: + +# 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 + +# value: filename string +LOG_MAIL_DIR: $VAR_DIR/Mail +LOG_MAIL_SEQ: $LOG_MAIL_DIR/.seq + +# value: number +NUM_LOG_MAIL: 100 +LOG_MAIL_FILE_SIZE_MAX: 2048 + +# PGP Encrypted ML +# value: 1/0 +USE_ENCRYPTED_DISTRIBUTION: + +# value: pgp / pgp2 / pgp5 / gpgp +ENCRYPTED_DISTRIBUTION_TYPE: pgp2 + +# 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 + +# 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 +XMLCOUNT: X-Mail-Count + +# 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: + +# BRACKET of "Subject: [BRACKET:ID] ..." form +# value: string +BRACKET: Elena + +# 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 + +# You can customize your own bracket by these variables. +# See doc/tutorial and libtagdef.pl on examples. +# value: regexp string +BRACKET_SEPARATOR: +SUBJECT_FREE_FORM: +SUBJECT_FREE_FORM_REGEXP: +SUBJECT_FORM_LONG_ID: + +# obsolete based on RFC1123 +# value: 1/0 +USE_ERRORS_TO: + +# obsolete based on RFC1123 +# value: string +ERRORS_TO: + +# 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 + +# Precedence: field; +# value: string +PRECEDENCE: bulk + +# append STARTREK stardate :-) in article. +# Stardate calculation algorithm is ambiguous. +# X-Stardate: field +# value: 1/0 +APPEND_STARDATE: + +# RFC2369 e.g. list-post: .. +# value: 1/0 +USE_RFC2369: 1 + +# List-* +LIST_SOFTWARE: +LIST_POST: +LIST_OWNER: +LIST_HELP: +LIST_SUBSCRIBE: +LIST_UNSUBSCRIBE: +LIST_ID: + + +# 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: + +# Default values if no value (no field) is given. +# value: string +Subject: +From_address: not.found +User: not.found +Date: not.found + +# TIME ZONE; +0900 is RFC822 syntax (I like JST but ... ;-) +# value: +\d{4} / -\d{4} +TZone: +0900 + +# time zone within summer time if you use summer time. +# thank HIROSHIMA Naoki <naoki@bcrossing.com> on this idea +TZONE_DST: + +# ## 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 + +# ignore header field irrespective of @HdrFieldsOrder and +# $PASS_ALL_FIELDS_IN_HEADER setting +# value: regexp string +SKIP_FIELDS: Return-Receipt-To + +# correct a wrong input +# value: 1/0 +ALLOW_WRONG_LINES_IN_HEADER: 1 + + +##################################################################### +# ### 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 + +# "Subject: # commands" is available? +# value: 1/0 +USE_SUBJECT_AS_COMMANDS: 0 + +# 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 + +# obsolete: since this is the same as --ctladdr. +# value: 1/0 +COMMAND_ONLY_SERVER: 0 + +# **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 + +# obsolete +# value: number +GUIDE_CHECK_LIMIT: 3 + +# obsolete +# value: string +GUIDE_KEYWORD: guide + + +# The maximum length for each command. 128 bytes by default. +# value: number +MAXLEN_COMMAND_INPUT: 128 + +# 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: + + +# "# chaddr" command name aliases +# value: regexp string +CHADDR_KEYWORD: chaddr|change\-address|change + +# choise of addresses to return for "chaddr" command reply +# value: newaddr curaddr maintainer +CHADDR_REPLY_TO: newaddr curaddr + +# choise of addresses to return for "admin chaddr" command reply +# value: newaddr curaddr maintainer +ADMIN_CHADDR_REPLY_TO: newaddr curaddr + +# ## 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: +MGET_TEXT_MODE_DEFAULT: + +# 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 +SLEEPTIME: 60 + +# 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: +MIME_CONTENT_TYPE: +MIME_MULTIPART_BOUNDARY: +MIME_MULTIPART_CLOSE_DELIMITER: +MIME_MULTIPART_DELIMITER: +MIME_MULTIPART_PREAMBLE: +MIME_MULTIPART_TRAILER: + +# Japanese specific +# sjis conversion in "mget ish" mode. +# value: 1/0 +USE_SJIS_IN_ISH: + +# RFC1153 configurations; see doc/tutorial for the detail +# value: number +RFC1153_ISSUE: + +# value: number / string +RFC1153_VOL: + +# value: filename string +RFC1153_SEQUENCE_FILE: + +# ## 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 + +# ## 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: + +# 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_ + +# 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 + +##################################################################### +# ### 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_ + + +# Digest/Matome Okuri rc file +# value: filename string +MSEND_RC: $VARLOG_DIR/msendrc + +# rfc1153 or rfc934 +# obsoletes $USE_RFC1153, $USE_RFC1153_DIGEST, $USE_RFC934 +# value: mode string +MSEND_MODE_DEFAULT: + +# Subject: +# value: string +MSEND_DEFAULT_SUBJECT: + +# 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: + +# value: string +MSEND_NOTIFICATION_SUBJECT: + +# not require X-ML-Info: in the "mget"; +# value: 1/0 +MSEND_NOT_USE_X_ML_INFO: + +# not do newsyslog in the Sundays morning. $NOT_USE_NEWSYSLOG (CFVersion 2) +# value: 1/0 +MSEND_NOT_USE_NEWSYSLOG: + + +##################################################################### +# ### Section: Other Files for Configurations and Logs ### + +# cache file of Message-ID: loop check +# value: filename string +LOG_MESSAGE_ID: $VARRUN_DIR/msgidcache + +# cache size of Message-ID: negative cache +# value: number +MESSAGE_ID_CACHE_BUFSIZE: 6000 + +# cache file of mailbody cksum mail loop check +# value: filename string +LOG_MAILBODY_CKSUM: $VARRUN_DIR/bodycksumcache + +# $MEMBER_LIST member who can post and use commands +# $ACTIVE_LIST delivery list +# value: filename string +MEMBER_LIST: $DIR/members +ACTIVE_LIST: $DIR/actives + + +# 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 +OBJECTIVE_FILE: $DIR/objective +HELP_FILE: $DIR/help + +# When fml rejects mail from someone, fml sends back this file to the sender. +# value: filename string +DENY_FILE: $DIR/deny + +# $LOGFILE log file +# $MGET_LOGFILE log file for mget routine, $LOGFILE in default. +# value: filename string +LOGFILE: $DIR/log +MGET_LOGFILE: $DIR/log + +# 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: + +# when -d2 ($debug = 2), logs this file for convenience. +# value: filename string +DEBUG_LOGFILE: $DIR/log.debug + +# article summary file +# value: filename string +SUMMARY_FILE: $DIR/summary + +# sequence number file +# value: filename string +SEQUENCE_FILE: $DIR/seq + +# rename(2) lock (liblock.pl) +# value: filename string +LOCK_FILE: $VARRUN_DIR/lockfile.v7 + + +##################################################################### +# ### 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 + +# value: string +HOST: localhost + +# value: number +PORT: 25 + +# enforce MAIL FROM:<$SMTP_SENDER> if defined +# value: address +SMTP_SENDER: + +# IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG +# value: filename string +SMTP_LOG: $VARLOG_DIR/_smtplog + +# rotate use of var/log/_smtplog.$i (where $i is the number) +# value: 1/0 +USE_SMTP_LOG_ROTATE: 1 + +# expire how old _smtplog.$date +# value: number +SMTP_LOG_ROTATE_EXPIRE_LIMIT: 90 + +# the number of var/log/_smtplog.$i files. This is the value of modulus. +# value: number +NUM_SMTP_LOG_ROTATE: 8 + +# type of suffix for _smtplog +# value: number / day +SMTP_LOG_ROTATE_TYPE: number + + +# 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 +TRACE_SMTP_DELAY: + +# smtp profile for debug +# value: 1/0 +USE_SMTP_PROFILE: 0 + +# 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: + +# obsolete today +# value: string +DEFAULT_RELAY_SERVER: + +# 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: + +# obsolete today +# value: filename string +CF_DEF: + +# 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: + +# 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: + +# 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: + +# postfix $verp_delimiters +# value: string +POSTFIX_VERP_DELIMITERS: += + +# try VERPs once a day for efficient delivery. +# value: 1/0 +TRY_VERP_PER_DAY: + +# we use ESMTP pipelining mechanism by default. +# value: 1/0 +NOT_USE_ESMTP_PIPELINING: 0 + +# smtpfeed special option which provides VERPs like error track trick. +# value: 1/0 +USE_SMTPFEED_F_OPTION: + +##################################################################### +# ### 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 + +# special hack to treat broken MIME ending (e.g. by MacOS X) +# value: 1/0 +MIME_BROKEN_ENCODING_FIXUP: 0 + +# 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: + + +# ## 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: +TRAILER_MAILBODY: + + +# ## 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: +FACE_MARK: + +# value: function name string +PROC_GEN_INFO: GenInfo + + +# ## 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 + +# In rename(2) base lock case, +# the timeout of rename(2) lock is rand(3) * $MAX_TIMEOUT secs. +# value: number +MAX_TIMEOUT: 200 + + +# ## 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: + +# "$CFVersion < 2" equals "$COMPAT_FML15 = 1;" +# value: 1/0 +COMPAT_FML15: 0 + +# 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 + +# not used generally. This is "cron of fml package" configuration. +# $CRONTAB configuratoin file +# $CRON_PIDFILE pid file +# value: filename string +CRONTAB: etc/crontab +CRON_PIDFILE: var/run/cron.pid + +# not used generally. This is "cron of fml package" configuration. +# cron notifies what is done to $MAINTAINER. +# value: 1/0 +CRON_NOTIFY: 1 + +# cross operations +# value: 1/0 +USE_CROSSPOST: + +# 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: + + +##################################################################### +# ### 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 + +# expire summary file when $USE_EXPIRE is enabled. +# value: 1/0 +EXPIRE_SUMMARY: + +# expire how old articles +# value: number / ( number + day/week/month ) +EXPIRE_LIMIT: 7days + +# 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 + +# spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz" +# by the unit $ARCHIVE_UNIT. +# value: number +ARCHIVE_UNIT: 100 +DEFAULT_ARCHIVE_UNIT: 100 + +# spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz" +# value: directory string +ARCHIVE_DIR: var/archive + +# "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 + +# show directory name in "index" command result? default is "no". +# value: 1/0 +INDEX_SHOW_DIRNAME: 0 + + +# ### 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 +LIBRARY_ARCHIVE_DIR: archive + +# ## Sub Section: newsyslog(8) ## +# to turn over \$DIR/log +# value: number +LOGFILE_NEWSYSLOG_LIMIT: + +# 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 + + +# ### 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: + +# use Mail::HTML::Lite in fml-devel (fml next generation). +# value: 1/0 +USE_NEW_HTML_GEN: + +# value: 1/0 +HTML_THREAD: 1 + +# value: 1/0 +HTML_INDEX_REVERSE_ORDER: 1 + +# generate html articles under htdocs/ +# value: directory string +HTML_DIR: htdocs + +# 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: + +# title of index.html +# value: string +HTML_INDEX_TITLE: + +# cache file +# value: filename string +HTML_DATA_CACHE: +HTML_DATA_THREAD: + +# filter in generate html file +# value: filename string +HTML_OUTPUT_FILTER: + +# stylesheet file name (see HTML 4.0) +# "fml.css" is default. +# value: filename string +HTML_STYLESHEET_BASENAME: + +# threading algorithm type +# value: default / prefer-in-reply-to +HTML_THREAD_REF_TYPE: prefer-in-reply-to + +# 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: + +# $subdir type of htdocs/$subdir/ +# value: number / day / week / month / infinite +HTML_INDEX_UNIT: day + +# threading type +# value: "" / UL +HTML_INDENT_STYLE: UL + +# image file embedding style +# value: A / IMAGE +HTML_MULTIPART_IMAGE_REF_TYPE: + +# html file umask +# value: "" / umask +HTML_DEFAULT_UMASK: +HTML_WRITE_UMASK: + + +# ### Section: Interface to DataBase Management System ### + +# value: 1/0 +USE_DATABASE: + +# value: +DATABASE_METHOD: + +# value: +DATABASE_CACHE_FILE_SUFFIX: + +# value: filename +DATABASE_DRIVER: toymodel.pl + +# attributes to inform database drivers +# value: +DATABASE_DRIVER_ATTRIBUTES: always_lower_domain + +# ## Sub Section: RDBMS + +# value: string +SQL_SERVER_HOST: + +# value: number +SQL_SERVER_PORT: + +# value: string +SQL_SERVER_USER: + +# value: string +SQL_DATABASE_NAME: + +# value: string +SQL_SERVER_PASSWORD: + +# value: string +SQL_DATABASE_NAME: + + +# ## Sub Section: LDAP + +# value: string +LDAP_SERVER_HOST: +LDAP_SERVER_PASSWORD: +LDAP_SEARCH_BASE: +LDAP_SERVER_BIND: +LDAP_QUERY_FILTER: + + + +# ### 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: + +# value: string +DEFAULT_WHOIS_SERVER: + +# value: filename string +WHOIS_DB: $VARDB_DIR/whoisdb +WHOIS_HELP_FILE: + +# do Japanese conversion or not? for the result from whois server +# value: 1/0 +WHOIS_JCODE_P: 1 + + +##################################################################### +# ### Section: Architecture Dependence ### + +# cpu-type manufacturer operating-system by GNU config.guess ("makefml") +# value: string +CPU_TYPE_MANUFACTURER_OS: + +# struct sockaddr +# It is system dependent. +# value: string +STRUCT_SOCKADDR: S n a4 x8 + +# flock(2) system call; please see "/usr/include/sys/file.h" +# value: number +LOCK_SH: 1 +LOCK_EX: 2 +LOCK_NB: 4 +LOCK_UN: 8 + +# enforce solaris 2 compatible +# value: 1/0 +COMPAT_SOLARIS2: + +# used in cron of fml package +# we can emulate daemon(3) ? +# value: 1/0 +NOT_USE_TIOCNOTTY: + +# On Unix, always yes set 1 in &SetDefaults; +# value: 1/0 +HAS_GETPWUID: &is_unix + +# On Unix, always yes set 1 in &SetDefaults; +# value: 1/0 +HAS_GETPWGID: &is_unix + +# On Unix, always yes set 1 in &SetDefaults; +# value: 1/0 +HAS_ALARM: &is_unix + +# On Unix, always yes set 1 in &SetDefaults; +# value: 1/0 +UNISTD: &is_unix + + +# program paths fml uses +# Usually "makefml newml" checks and expands this value. +# value: filename string +SENDMAIL: &path(sendmail) +TAR: &path(tar) cf - +UUENCODE: &path(uuencode) +COMPRESS: &path(gzip) -c +ZCAT: &path(gzcat:zcat:gzip\s-cd) +LHA: &path(lha) +ISH: &path(ish) +ZIP: &path(zip) +BZIP2: &path(bzip2) +PGP: &path(pgp) +PGP5: &path(pgp5) +PGPE: &path(pgpe) +PGPK: &path(pgpk) +PGPS: &path(pgps) +PGPV: &path(pgpv) +GPG: &path(gpg) +RCS: &path(rcs) +CI: &path(ci) +BASE64_DECODE: +BASE64_ENCODE: +MD5: &path(md5:md5sum) + + +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 diff --git a/gnu/dist/fml4/cf/MANIFEST.Japanese b/gnu/dist/fml4/cf/MANIFEST.Japanese new file mode 100644 index 00000000..b7ebba7b --- /dev/null +++ b/gnu/dist/fml4/cf/MANIFEST.Japanese @@ -0,0 +1,1692 @@ +.translate value: string ʸ»úÎó +.translate value: number ¿ô»ú +.translate value: regexp Àµµ¬É½¸½ +.translate value: value: ÊÑ¿ô¤¬¤È¤ê¤¦¤ëÃÍ: + +INFO: +# FML Configurable Variable Definitions +# +# Copyright (C) 1993-2000 Ken'ichi Fukamachi +# All rights reserved. +# 1993-1996 fukachan@phys.titech.ac.jp +# 1996-2000 fukachan@sapporo.iij.ad.jp +# +# FML is free software; you can redistribute it and/or modify +# it under the terms of GNU General Public License. +# See the file COPYING for more details. +# +# $Id: MANIFEST.Japanese,v 1.11 2003/12/06 04:06:30 fukachan Exp $ +# + + +##################################################################### +# ### Section: DNS and Other Fundamental (CF Version, debug, Language) ### +# config.ph configuration version +.j Section::Fundamental ´ðËÜŪ¤ÊÀßÄê +.j config.ph¤Î¥Ð¡¼¥¸¥ç¥ó +CFVersion: 5.0 + +# global debug option. if non-nil, debug mode. +# In debug mode, NOT do distribution +.j ¥Ç¥Ð¥Ã¥°¥Õ¥é¥Ã¥°: 0 °Ê³°¤Ë¤¹¤ë¤È¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Ë¤Ê¤ë¡£ +# value: 1/0 +debug: 0 + +# for further extension: FML 2.1 DOES NOT use this +# except for files (e.g. help, welcome, ...) created in "makefml newml" +.j ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë(help¤Ê¤É)¤Î¸À¸ì»ØÄê +# value: Japanese/English +LANGUAGE: Japanese + +# &Mesg() tries to translate thie language. +.j ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¸À¸ì»ØÄê +# value: Japanese/English +MESSAGE_LANGUAGE: + +# ## Sub Section: DNS ## +.j Section::Fundamental::DNS ´ðËÜŪ¤ÊÀßÄê(DNS) +# DNS setting s automatically checked by makefml but check them, please +# +# DOMAINNAME the domain name e.g. fml.org +# FQDN Fully Qualified Domain Name e.g. beth.fml.org +# +.j fml ¤Îư¤¤¤Æ¤¤¤ë¥Þ¥·¥ó¤Î̾Á° +.j DOMAINNAME ¥É¥á¥¤¥ó̾ Îã: fml.org +.j FQDN ´°Á´¤Ê¥Þ¥·¥ó̾(Fully Qualified Domain Name) Îã: beth.fml.org +.j Ãí: virtual domain¤Î¾ì¹ç¤Ï virtual ¤Î̾Á°¤Ë¤Ê¤ë¤À¤í¤¦ +# value: string +DOMAINNAME: &fix:dn phys.titech.ac.jp +FQDN: &fix:fqdn axion.phys.titech.ac.jp + + +##################################################################### +# ### Section: Mailing List Policy (for Post, Commands), Maintainer ### +# +# $MAIL_LIST is THE ADDRESS FOR POST. +# $PERMIT_POST_FROM is "anyone", "members_only" or "moderator", +# which permit post from who? If not-member posts is rejected, +# THE FUNCTION $REJECT_POST_HANDLER is applied. +# $REJECT_POST_HANDLER is "reject", "auto_subscribe" or "ignore" +# you can use "auto_regist" used in fml 2.x. +# +# **ATTENTION**: "reject" implies just "NOT REGISTERED IN $MEMBER_LIST". +# See "Section: Security" for positive reject against e.g. spammers. +# +.j $MAIL_LIST ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢Åê¹Æ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤â¤¢¤ë +.j +.j $PERMIT_POST_FROM ¤ÏÅê¹Æ¤Ç¤¤ë¿Í¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£¼è¤êÆÀ¤ëÃÍ¤Ï +.j +.j anyone ï¤Ç¤âÅê¹Æ²Äǽ +.j members_only £Í£Ì¤Î¥á¥ó¥Ð¡¼¤È¤·¤ÆÅÐÏ¿¤·¤Æ¤¢¤ë¿Í (¥Ç¥Õ¥©¡¼¥ë¥È) +.j moderator ¥â¥Ç¥ì¡¼¥¿¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¿Í +.j +.j ¤â¤·¥á¥ó¥Ð¡¼°Ê³°¤¬Åê¹Æ¤·¤è¤¦¤È¤¹¤ë¤È$REJECT_POST_HANDLER¤¬Å¬ÍѤµ¤ì¤ë¡£ +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï reject ¤ÇÅê¹Æ¤òµñÈݤ¹¤ë¡£ +.j +.j reject Åê¹Æ¤òµñÈݤ¹¤ë¡£$DIR/deny ¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹ +.j auto_subscribe ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë +.j ignore ñ¤Ë¤½¤Î¥á¡¼¥ë¤ò̵»ë¤¹¤ë¡£²¿¤âµ¯¤³¤é¤Ê¤¤¡£ +.j +# value: string +MAIL_LIST: Elena@$FQDN +PERMIT_POST_FROM: members_only +REJECT_POST_HANDLER: reject + + +# $CONTROL_ADDRESS is THE ADDRESS FOR COMMANDS. +# $PERMIT_COMMAND_FROM is "anyone", "members_only" or "moderator", +# which permit command from who? If not-member commands is rejected, +# THE FUNCTION $REJECT_COMMAND_HANDLER is applied. +# $REJECT_COMMAND_HANDLER is "reject", "auto_subscribe" or "ignore" +# you can use "auto_regist" used in fml 2.x. +# +.j $CONTROL_ADDRESS ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥³¥Þ¥ó¥ÉÍѤΥ¢¥É¥ì¥¹ +.j +.j $PERMIT_COMMAND_FROM ¤Ï¥³¥Þ¥ó¥É¤¬»È¤¨¤ë¿Í¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£¼è¤êÆÀ¤ëÃÍ¤Ï +.j +.j anyone ï¤Ç¤âÅê¹Æ²Äǽ +.j members_only £Í£Ì¤Î¥á¥ó¥Ð¡¼¤È¤·¤ÆÅÐÏ¿¤·¤Æ¤¢¤ë¿Í (¥Ç¥Õ¥©¡¼¥ë¥È) +.j moderator ¥â¥Ç¥ì¡¼¥¿¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¿Í +.j +.j ¤â¤·¥á¥ó¥Ð¡¼°Ê³°¤¬Åê¹Æ¤·¤è¤¦¤È¤¹¤ë¤È$REJECT_COMMAND_HANDLER¤¬Å¬ÍѤµ¤ì¤ë¡£ +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï reject ¤Ç¥³¥Þ¥ó¥É¤òµñÈݤ¹¤ë¡£ +.j +.j reject Åê¹Æ¤òµñÈݤ¹¤ë¡£$DIR/deny ¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹ +.j auto_subscribe ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë +.j ignore ñ¤Ë¤½¤Î¥á¡¼¥ë¤ò̵»ë¤¹¤ë¡£²¿¤âµ¯¤³¤é¤Ê¤¤¡£ +.j +.j Ãí°Õ: ¤¤¤ï¤æ¤ë"¼«Æ°ÅÐÏ¿"¤ÏÄ̾ï $REJECT_COMMAND_HANDLER ¤ÎÃͤò¤ò +.j auto_subscribe ¤Ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ +.j +# value: string +CONTROL_ADDRESS: Elena-ctl@$FQDN +PERMIT_COMMAND_FROM: members_only +REJECT_COMMAND_HANDLER: reject + +# When $MAIL_LIST_ACCEPT_COMMAND = 1, +# both $MAIL_LIST and $CONTROL_ADDRESS accept commands +# which format is "# command". +.j hml¸ß´¹¥â¡¼¥É +# value: 1/0 +MAIL_LIST_ACCEPT_COMMAND: + +# ## Sub Section: Maintainer ## +# $MAINTAINER != $MAIL_LIST IS REQUIRED AGAINST MAIL LOOP +.j $MAINTAINER ¤Ï£Í£Ì¤Î´ÉÍý¼Ô¤Î¥¢¥É¥ì¥¹ +.j $MAINTAINER_SIGNATURE ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤Î̾Á°¤ËÁêÅö¤¹¤ëÉôʬ¤Ë¤Ê¤ë +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï$MAINTAINER_SIGNATURE ¤Ï¤Ê¤· +# value: string +MAINTAINER: Elena-admin@$FQDN +MAINTAINER_SIGNATURE: + +# ## Sub Section: ML_FN ## +# We expand +# To: $MAIL_LIST $ML_FN +# => +# To: Elena@fml.org (Elena Lolabrigita ML) +.j ¥Ø¥Ã¥À¤Ë¸½¤ì¤ë£Í£Ì¤Î̾Á° +.j fml 3.0 ¤Ç¤Ï¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤Ç¤ªÌܤˤ«¤«¤ë¤³¤È¤Ë¤Ê¤ë +.j +.j Îò»Ë: fml 2.1 °ÊÁ°¤Ç¤ÏÅê¹Æ¥á¡¼¥ë¤Î¥Ø¥Ã¥À¤Ï¶¯À©Åª¤Ë +.j To: $MAIL_LIST $ML_FN +.j ¤Ë¤µ¤ì¤Æ¤¤¤¿¡£¤³¤ì¤Ï¾ï¤ËƱ¤¸¾ì½ê¤ËƱ¤¸¾ðÊó¤¬Íè¤ë¤è¤¦¤Ë¤È¤¤¤¦ +.j ÇÛθ¤Î¤â¤Î¤À¤Ã¤¿¡£3.0 ¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¤½¤Î½ñ¤´¹¤¨¤Ï¤Ê¤¤ +.j (=> $REWRITE_TO) +# value: string +ML_FN: (Elena Lolabrigita ML) + + +##################################################################### +# ### Section: Directory ### +# We use fully pathed directory name => $FP_SPOOL_DIR(= $DIR/$SPOOL_DIR) +# and relative path $SPOOL_DIR (e.g. spool) +.j Section::Directory ¥Ç¥£¥ì¥¯¥È¥ê¹½À® +.j +.j $FP_ ¤Ç»Ï¤Þ¤ë¤â¤Î¤Ï full path +.j ¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤Ï $DIR °Ê²¼¤ÎÁêÂÐ path ¤Ç¤¢¤ë¡£ +.j +.j Ãí: $FP_ÊÑ¿ô¤Ï½é´ü²½²¾Äê¤Ç¼«Æ°Åª¤ËÊä´Ö¤µ¤ìÀ¸À®¤µ¤ì¤ë¤Î¤Ç +.j config.ph ¤Ç¤ÏÁêÂХѥ¹¤Î¤ß¤ò»ØÄꤹ¤ë¡£ +.j +.j Ãí: tar ¤Ê¤ÉÁêÂХѥ¹¤òɬÍפȤ¹¤ë¤â¤Î¤¬¤¢¤ë¤«¤éÁêÂХѥ¹¤âɬÍפǤ¢¤ë + +# article spool directory +.j µ»ö¤òÊݴɤ¹¤ë¾ì½ê¡£°ìÄ̰ì¥Õ¥¡¥¤¥ë +# value: directory string +SPOOL_DIR: spool + +# tmp, after chdir, under DIR +.j temporary +# value: directory string +TMP_DIR: tmp + +# LOG is /var/log (4.4BSD style) +.j var/ ¤Ï"multi-purpose log, temporary, transient, and spool files"¤Ç¤¢¤ë +.j var/log/ ¥í¥°¥Õ¥¡¥¤¥ë +.j var/run/ pid ¥Õ¥¡¥¤¥ë¤Ê¤É¤Î¥·¥¹¥Æ¥à¾ðÊó +.j var/db/ ¥Ç¡¼¥¿¥Ù¡¼¥¹ +.j +# value: directory string +VAR_DIR: var +VARLOG_DIR: var/log +VARRUN_DIR: var/run +VARDB_DIR: var/db + + +##################################################################### +# ### Section: Manual Registration ### +.j Section::ManualRegistration ¼êưÅÐÏ¿ +.j +.j ManualRegistration ¤È¤¤¤¦Ì¾Á°¤Ïʶ¤é¤ï¤·¤¤¤¬ +.j ´ÉÍý¼Ô¤¬ÌÀ¼¨Åª¤ËÅÐÏ¿ºî¶È¤ò¤¹¤ë¾ì¹ç¤ò»Ø¤¹¡£¼«Æ°ÅÐÏ¿¤ÎÈ¿ÂÐ +.j (¼«Æ°ÅÐÏ¿¤Ïfml¤¬¼«Æ°Åª¤ËÅÐÏ¿ºî¶È¤ò¹Ô¤Ê¤¦)¡£ +.j +.j fml¤ËÁ÷¤é¤ì¤¿¡ÖÅÐÏ¿°ÍÍê¤Î¥á¡¼¥ë¡×¤Ï +.j forward_to_admin £Í£Ì´ÉÍý¼Ô¤ØÅÐÏ¿¤Î°ÍÍ꤬¤¢¤Ã¤¿¤³¤È¤òÅÁ¤¨¤ë +.j confirmation ¤½¤ÎÁ÷¤ê¼ç¤ËÅÐÏ¿¤·¤ÆÎɤ¤¤«³Îǧ¤· +.j ³Îǧ¸å¤Ë£Í£Ì´ÉÍý¼Ô¤ØÅÐÏ¿¤Î°ÍÍ꤬¤¢¤Ã¤¿¤³¤È¤òÅÁ¤¨¤ë +.j ¤½¤Î¸å£Í£Ì¤Î´ÉÍý¼Ô¤Ï +.j fml¤ÎÁö¤ë¥Û¥¹¥È¾å¤Ç makefml add +.j admin¥³¥Þ¥ó¥É +.j ¤Ê¤É¤Îºî¶È¤ò¤¹¤ë +.j +# only support 'confirmation' or 'forward_to_admin' +# I call this "5 way hand shake". +# value: confirmation/forward_to_admin +MANUAL_REGISTRATION_TYPE: confirmation + +.j Á÷¤ê¼ç¤Ë³Îǧ¥á¡¼¥ë¤òÁ÷¤ëºÝ¤Î¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È +# value: directory string +MANUAL_REGISTRATION_CONFIRMATION_FILE: $DIR/confirm.msub + +##################################################################### +# ### Section: Automatic Registration ### +.j +.j Section::AutomaticRegistration ¼«Æ°ÅÐÏ¿ +.j +# If at least either REJECT_{POST,COMMAND}_HANDLER is "auto_subscribe" +# or "auto_regist", +# PLEASE SELECT THE TYPE OF AUTOMATIC REGISTRATION +.j ¼«Æ°ÅÐÏ¿¤Î¼ïÎà +.j confirmation Á÷¤ê¼ç¤ËÅÐÏ¿°Õ»×¤Î³Îǧ¤òµá¤á¤ë¡£¥Ç¥Õ¥©¡¼¥ë¥È +.j subject ³Îǧ¤òµá¤á¤Ê¤¤¡£subject: ¤Ë¥³¥Þ¥ó¥É¤ò½ñ¤¯ +.j body ³Îǧ¤òµá¤á¤Ê¤¤¡£¥á¡¼¥ëËÜʸ¤Ë¥³¥Þ¥ó¥É¤ò½ñ¤¯ +.j no-keyword ³Îǧ¤òµá¤á¤Ê¤¤¡£¥¡¼¥ï¡¼¥É¤ÏÉÔɬÍ× +.j +.j Ãí: no-keyword¤Ï±ã²ñ¤Î£Í£Ì¤¯¤é¤¤¤·¤«»È¤¤Æ»¤¬¤Ê¤¤¤Î¤Ç»È¤ï¤Ê¤¤¤è¤¦¤Ë +.j +# value: confirmation/subject/body/no-keywrod +AUTO_REGISTRATION_TYPE: confirmation + +# $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD +.j ÅÐÏ¿°ÍÍê¥á¡¼¥ë¤Ë½ñ¤¯¥¡¼¥ï¡¼¥É +# value: string +AUTO_REGISTRATION_KEYWORD: subscribe + +# when auto-registered, +# we apply $AUTO_REGISTRATION_DEFAULT_MODE e.g. "m=3mp s=1" to the address. +.j ÅÐÏ¿¤¹¤ëºÝ¤Ë¶¯À©¤¹¤ë¥Ñ¥é¥á¡¼¥¿¡£»È¤¨¤ë¥Ñ¥é¥á¡¼¥¿¤Ïactives¤Ë»È¤¨¤ë¤â¤Î +.j ¾Ü¤·¤¯¤Ï doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È +.j Îã: ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤Þ¤È¤áÁ÷¤ê¤Ë¤¹¤ë +.j +# value: string +AUTO_REGISTRATION_DEFAULT_MODE: + +# "confirmation" (default) mode configurations +# please see doc/tutorial for the detail of "confirmation" +.j ÅÐÏ¿¤Î°Õ»×¤ò³Îǧ¤¹¤ë¥â¡¼¥É¤Ç»È¤¦¥Ñ¥é¥á¡¼¥¿ +.j $CONFIRMATION_SUBSCRIBE ÅÐÏ¿°ÍÍê¥á¡¼¥ë¤Î¥¡¼¥ï¡¼¥É +.j $CONFIRMATION_KEYWORD ÅÐÏ¿°Õ»×³Îǧ¥á¡¼¥ë¤Ç»È¤¦¥¡¼¥ï¡¼¥É +.j $CONFIRMATION_ADDRESS +.j $CONFIRMATION_WELCOME_STATEMENT +# value: string +CONFIRMATION_ADDRESS: +CONFIRMATION_SUBSCRIBE: subscribe +CONFIRMATION_KEYWORD: confirm +CONFIRMATION_WELCOME_STATEMENT: + +# explanation of confirmation +.j ÅÐÏ¿¤Î°Õ»×¤ò³Îǧ¤¹¤ëºÝ¤ËÁ÷¤êÊÖ¤¹¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È +# value: filename string +CONFIRMATION_FILE: $DIR/confirm + +# Expire of request queue. The unit is "hour". (default, 168 == 7*24) +# value: number +.j °Õ»×³Îǧ¤Î¥á¡¼¥ë¤ÎÊÖ»ö¤òÂԤĻþ´Ö¡£Ã±°Ì¤Ï»þ´Ö(hour) +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï°ì½µ´Ö +CONFIRMATION_EXPIRE: 168 + +# confirmation request queue (you should not manually edit it) +.j ³Îǧ¤¹¤ë¥â¡¼¥É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹(°ÍÍêqueue¤Î¥Ç¡¼¥¿) +# value: filename string +CONFIRMATION_LIST: + +# default keyword for trap +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÎÅÐÏ¿°ÍÍê¤Î¥¡¼¥ï¡¼¥É(¾å¤Ç¤¹¤Ç¤ËÄêµÁºÑ¤ß¤À¤¬¡¢¸ß´¹À¤Î¤¿¤á) +# value: string +DEFAULT_SUBSCRIBE: subscribe + +# WHEN either $REJECT_{POST,COMMAND}_HANDLER has "auto_subscribe" +# (or "auto_regist"), +# we do automatic registration. After we register an address to +# $MEMBER_LIST ($FILE_TO_REGIST if $FILE_TO_REGIST is set), +# we send $WELCOME_FILE to him/her with the subject $WELCOME_STATEMENT +.j ¼«Æ°ÅÐÏ¿¤¬À®¸ù¤·¤¿ºÝ¤ËÅÐÏ¿¤·¤¿¥¢¥É¥ì¥¹¤ØÁ÷¤ë¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È +.j ¥¬¥¤¥É¤Î¼è¤êÊý¤äÈ´¤±Êý¤Ë¤Ä¤¤¤Æ½ñ¤¤¤Æ¤ª¤¯¤ÈÎɤ¤¡£ +# value: filename string +WELCOME_FILE: $DIR/welcome + +.j ¼«Æ°ÅÐÏ¿¤¬À®¸ù¤·¤¿ºÝ¤ËÅÐÏ¿¤·¤¿¥¢¥É¥ì¥¹¤ØÁ÷¤ë¥á¡¼¥ë¤ÎSubject:¤Î¥Æ¥ó¥×¥ì¡¼¥È +# value: string +WELCOME_STATEMENT:Welcome to our $ML_FN\n You are added automatically + +.j ¼«Æ°ÅÐÏ¿¤ÎºÝ¤Ë½ñ¤¹þ¤à¥Õ¥¡¥¤¥ë¤ò¥Ç¥Õ¥©¡¼¥ë¥È¤«¤éÊѹ¹¤¹¤ëºÝ¤Ë»È¤¦ +# e.g. $DIR/members (default) +# value: filename string +FILE_TO_REGIST: + +# 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. +.j +.j $AUTO_REGISTERED_UNDELIVER_P ÅÐÏ¿¤·¤¿¤³¤È¤ò£Í£Ì¤Ë¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡© +.j $AUTO_REGISTRATION_LINES_LIMIT ²¿¹Ô°Ê¾å¤Î¥á¡¼¥ë¤Ê¤é¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡© +.j +.j Ãí: confirmation ¤Ç¤Ï̵°ÕÌ£¤ÊÊÑ¿ô¤È¤¤¤¨¤ë¡£¼ÂºÝ¤³¤Îµ¡Ç½¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤ +.j confirmation°ÊÁ°¤Î»þÂå¤Î¤¿¤á¤Î¤â¤Î¤È¹Í¤¨¤ÆÍߤ·¤¤ +.j +# value: 1/0 +AUTO_REGISTERED_UNDELIVER_P: 1 +AUTO_REGISTRATION_LINES_LIMIT: 0 + + +##################################################################### +# ### Section: Confirmd ### +.j Section::Confirmd confirmd +.j +.j Äê´üŪ¤Ë¡Ö¤³¤ì¤«¤é¤â£Í£Ì¤ËÆþ¤ê³¤±¤ë¤«¡©¡×¤Î³Îǧ¤ò¤È¤ë¥Ç¡¼¥â¥ó +.j +.j $CONFIRMD_ACK_REQ_FILE Á÷¤ë¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È +.j $CONFIRMD_ACK_LOGFILE ³Îǧ¤Îqueue¤Î¥í¥° +# confirmd +# value: filename string +CONFIRMD_ACK_REQ_FILE: $DIR/confirmd.ackreq +CONFIRMD_ACK_LOGFILE: $VARLOG_DIR/confirmd.ack + +.j $CONFIRMD_ACK_EXPIRE_UNIT (¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï°ì¥«·î)¤Ë°ìÅÙ +.j ¡Ö¤³¤ì¤«¤é¤â£Í£Ì¤ËÆþ¤ê³¤±¤ë¤«¡©¡×¤ò¿Ò¤Í¤ë¡£ +.j ÊÖ»ö¤ò$CONFIRMD_ACK_WAIT_UNIT (2½µ´Ö)ÂԤġ£ +.j ÊÖ»ö¤¬¤Ê¤¤»þ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤òºï½ü¤¹¤ë¡£ +.j +# value: number / ( number + month/week/day ) +CONFIRMD_ACK_EXPIRE_UNIT: 1month +CONFIRMD_ACK_WAIT_UNIT: 2weeks + +##################################################################### +# ### Section: Remote Administration ### +.j Section::RemoteAdministration ¥ê¥â¡¼¥È´ÉÍý +.j +.j ¥á¡¼¥ë¤Ç¥³¥Þ¥ó¥É¤òÁ÷¤Ã¤Æ£Í£Ì¤Î´ÉÍý¤ò¤¹¤ë¤³¤È +.j +# For security, YOU CANNOT CONTROL FML IN REMOTE (DEFAULT). +# IF $REMOTE_ADMINISTRATION is set, You can control FML in remote. +# The remote control require 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. +# +.j ¥ê¥â¡¼¥È´ÉÍý¤ò»È¤¦¤«¡©Èݤ«¡© ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï£°¡Ê¤·¤Ê¤¤¡Ë +# value: 1/0 +REMOTE_ADMINISTRATION: 0 + +# TYPE is address, crypt, md5 or pgp. +# FYI: $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD <=> "crypt" +.j ǧ¾Ú¤Î¥¿¥¤¥× +.j +.j crypt ¥¢¥É¥ì¥¹¤È¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú +.j md5 ¥¢¥É¥ì¥¹¤È¥Ñ¥¹¥ï¡¼¥É¤Çǧ¾Ú +.j (¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½¤Ëmd5¤ò»È¤¦°Ê³°¤Ïcrypt¤ÈƱ¤¸) +.j address ¥¢¥É¥ì¥¹¤À¤±¤Çǧ¾Ú +.j pgp ǧ¾Ú¤ÏPGP 2.x ¤Îclear sign ¤Ç¹Ô¤Ê¤¦ +.j +# value: crypt/address/md5/pgp +REMOTE_ADMINISTRATION_AUTH_TYPE: crypt + +.j ¥ê¥â¡¼¥È´ÉÍý¤òǧ¤á¤ë¥á¥ó¥Ð¡¼¤Î¥¢¥É¥ì¥¹¥ê¥¹¥È +.j +.j ǧ¾Ú: pgpǧ¾Ú¤Î¾ì¹ç¤Ï̵°ÕÌ£¤Ë¶á¤¤¤¬¡Ä +.j +# members who can use admin commands for the type "address" +# value: filename string +ADMIN_MEMBER_LIST: $DIR/members-admin + +.j ¥ê¥â¡¼¥È´ÉÍý¤Ç»È¤¨¤ë¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¥Õ¥¡¥¤¥ë +# help file of admin commands +# value: filename string +ADMIN_HELP_FILE: $DIR/help-admin + +.j ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë +.j ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï +.j ¥¢¥É¥ì¥¹ ¶õÇò °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É +.j +# password file to authenticate members +# value: filename string +PASSWD_FILE: $DIR/etc/passwd + +.j +.j ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ç¥æ¡¼¥¶¤òÅÐÏ¿¤·¤¿¤µ¤¤¤Ë +.j (¥³¥Þ¥ó¥É¤Ï "admin add" ¤Ê¤¤¤· "approve ¥Ñ¥¹¥ï¡¼¥É add") +.j $WELCOME_FILE ¤òÁ÷¤êÊÖ¤¹¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤·¤Ê¤¤ +.j +# "admin add" to add an address to a member list. If succeeds, FML +# sends back WELCOME_FILE if this variable is defined. Default is 0, +# so the maintainer which adds it notifies 'work is done' to the subscriber. +# value: 1/0 +ADMIN_ADD_SEND_WELCOME_FILE: 0 + +.j "admin log" ¥³¥Þ¥ó¥É¤Ï¥í¥°¥Õ¥¡¥¤¥ë¤ò´ÉÍý¼Ô¤ËÁ÷¤êÊÖ¤¹ +.j ¤½¤Î¤Þ¤Þ¤Ç¤Ï¤È¤Æ¤âŤ¤¥á¡¼¥ë¤Ë¤Ê¤ë¤Î¤ÇºÇ´ü¤Î100¹Ô¤À¤±¤òÁ÷¤êÊÖ¤¹ +.j ¤½¤Î¹Ô¿ô¤¬ $ADMIN_LOG_DEFAULT_LINE_LIMIT +.j +# "admin log" is "tail -100 log" in default +# value: number +ADMIN_LOG_DEFAULT_LINE_LIMIT: 100 + +.j pgp ¤Î¥Ç¡¼¥¿¤òÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê +# PGP PATH +# value: filename string +PGP_PATH: $DIR/etc/pgp + + +##################################################################### +# ### Section: Moderations; moderators check posted articles ### +.j Section::Moderator ¥â¥Ç¥ì¡¼¥¿ +.j +# If you select "moderator", you can select forwarding type to 1 or 2. +.j ¥â¥Ç¥ì¡¼¥¿¥¿¥¤¥× +.j +.j 1 ¥â¥Ç¥ì¡¼¥¿¤À¤±¤¬¤·¤Ã¤Æ¤¤¤ë¥Ñ¥¹¥ï¡¼¥É¤Çǧ¾Ú +.j 2 ¥â¥Ç¥ì¡¼¥¿¤Ë¤Ïone time password¤Ä¤¤ÎººÆÉ°ÍÍ꤬¤¯¤ë +.j 3 1 + 2 ¡£¥â¥Ç¥ì¡¼¥¿¤À¤±¤ÏººÆÉ¤Ê¤·¤ÇÅê¹Æ¤Ç¤¤ë¤¬°ìÈ̥桼¥¶¤ÏººÆÉ¤ò¼õ¤±¤ë +.j +.j Ãí: ¿ô»ú¤Ï¤ï¤«¤ê¤Ë¤¯¤¤¡£¾Íè¤Ï²¿¤«Ì¾Á°¤ò¤Ä¤±¤ë¤Ù¤¤Ç¤¢¤ë +# value: 1/2/3 +MODERATOR_FORWARD_TYPE: 2 + +# This is a list to send posted articles for the certification. +# If this file does not exist, moderator == $MAINTAINER. +# +# Moderators who certificate articles posted to this mailing list +# They receive articles posted here. We do not check moderators's +# addresses. We check only "moderators knows passwords or identifiers". +.j ¥â¥Ç¥ì¡¼¥¿¤Î¿Í¤Î(¥¢¥É¥ì¥¹)¥ê¥¹¥È +.j ¤Ä¤Þ¤êººÆÉ°ÍÍê¥á¡¼¥ë¤¬¥Õ¥©¥ï¡¼¥É¤µ¤ì¤ë¿Í¤Î°ìÍ÷ɽ +.j ¤³¤Î¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¤Ï $MAINTAINER ¤Î¿Í¤ËÁ÷¤é¤ì¤ë +# value: filename string +MODERATOR_MEMBER_LIST: $DIR/moderators + +# expire not certifield submission to moderated ML +# default: 2 weeks +.j ººÆÉ°ÍÍê¤Ï¤É¤Î¤¯¤é¤¤¤Î´ü´Ö͸ú¤«¡© +.j ¤Ä¤Þ¤ê¡¢¤À¤ì¤âººÆÉ¤·¤ÆOK¤ò½Ð¤µ¤Ê¤¤¾ì¹ç¤Ï°Ç¤ËÁò¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£ +.j $MODERATOR_EXPIRE_LIMIT Æü¸å¡¢¸õÊ䤫¤é³°¤µ¤ì¤ë¡£ +# value: number +MODERATOR_EXPIRE_LIMIT: 14 + + +##################################################################### +# ### Section: Security ### +.j Section::Security ¥»¥¥å¥ê¥Æ¥£ + +.j From:¤¬ÆÃ¼ì¤Ê¥¢¥«¥¦¥ó¥È¤Î¾ì¹çµñÈݤ¹¤ë +.j ¸Ä¿Í¤òÆÃÄê¤Ç¤¤Ê¤¤¤è¤¦¤Ê¥¢¥É¥ì¥¹¤ò»È¤¦¤Ù¤¤Ç¤Ï¤Ê¤¤ +.j ¤Þ¤¿¥ë¡¼¥×¤òËɤ°¤¿¤á¤Ë¤â͸ú¤Ç¤¢¤ë¡£ +.j ¤³¤ì¤Ï +.j $PERMIT_POST_FROM = "anyone"; (ï¤Ç¤âÅê¹Æ²Äǽ) +.j ¤Ç¤¢¤Ã¤Æ¤âŬÍѤµ¤ì¤ë¸·¤·¤¤À©¸Â¤Ç¤¢¤ë¡£ +.j +# We reject $REJECT_ADDR@ARBITRARY.DOMAINS, +# since these are clearly NOT individuals. +# value: regexp string +REJECT_ADDR: root|postmaster|MAILER-DAEMON|msgs|nobody|news|majordomo|listserv|listproc|\S+\-help|\S+\-subscribe|\S+\-unsubscribe + + +.j ¤³¤Î¥ê¥¹¥È¤ËFrom: ¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¤éµñÈݤ¹¤ë +# list of spammers to be rejected, which corresponds /etc/sendmail.spamlist +# value: filename string +REJECT_ADDR_LIST: $DIR/spamlist + +.j unix from¤òloop check¤Î¥Ç¡¼¥¿¤È¤·¤Æ¤Ä¤«¤¦¤«¡©»È¤ï¤Ê¤¤¤«¡© +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤¦(0)¡£ +# DO CHECK UNIX From Loop or not +# value: 1/0 +NOT_USE_UNIX_FROM_LOOP_CHECK: 0 + +.j Message-ID: ¤Î½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦(¥Ç¥Õ¥©¡¼¥ë¥È)¡£ +.j Message-ID: ¤Ï¥á¡¼¥ë¤´¤È¤Ë°ã¤¦¤Î¤ÇƱ¤¸Message-ID:¤Î¥á¡¼¥ë¤¬Íè¤ë¤³¤È¤Ï +.j ¥ë¡¼¥×¤ò°ÕÌ£¤¹¤ë¡£ +# DO Message-Id: cache and check loops +# value: 1/0 +CHECK_MESSAGE_ID: 1 + +.j ¥á¡¼¥ëËÜʸ¤ÎMD5 checksum¤ò¤È¤Ã¤Æ½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¡£ +.j MD5Ū¤Ë¥á¡¼¥ëËÜʸ¤ÎƱ¤¸¥á¡¼¥ë¤¬Íè¤ë¤³¤È¤Ï¤Þ¤º´Ö°ã¤¤¤Ê¤¯¥ë¡¼¥×¤ò°ÕÌ£¤¹¤ë +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¥Á¥§¥Ã¥¯¤·¤Ê¤¤"¡£ +.j +# loop check based on mailbody md5 cksum cache +# value: 1/0 +CHECK_MAILBODY_CKSUM: 0 + +.j getpeername()¤ÎÃͤò¥í¥°¤Ë¤È¤ë(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¼è¤é¤Ê¤¤) +.j Ãí: ¸½Âå¤ÎMTA¤Ç¤Ïʬ»¶·¿¤Ê¤Î¤Ç¤½¤â¤½¤â¤È¤ê¤è¤¦¤¬¤Ê¤¤¤Î¤Ç°ÕÌ£¤Ê¤· +# Logs the getpeername() +# value: 1/0 +LOG_CONNECTION: 0 + +.j ¥¢¥É¥ì¥¹¤Î¥Á¥§¥Ã¥¯¤ÎÅÙ¹ç +.j Â绨ÇĤˤ¤¤¨¤Ð¥µ¥Ö¥É¥á¥¤¥ó/¥Þ¥·¥ó̾¤¬¤Ä¤¤¤Æ¤¤¤Æ¤âƱ¤¸¤â¤Î¤È¤ß¤Ê¤¹¤«¡© +.j Î㤨¤Ð +.j fukachan@axion.phys.titech.ac.jp +.j fukachan@phys.titech.ac.jp +.j ¤ÏƱ¤¸¥¢¥É¥ì¥¹¤È¤ß¤Ê¤¹¤Ù¤¤«¡©Èݤ«¡© +.j ±¦¤«¤é $ADDR_CHECK_MAX ¸Äʬ¤Ç¤¢¤ë¡£¤³¤ÎÎã¤Ç¤Ï +.j $ADDR_CHECK_MAX ¤¬4°Ê²¼¤Ê¤éƱ¤¸¤â¤Î¤È¤ß¤Ê¤¹¡£ +.j 5¤Ê¤éÊ̤Υ¢¥É¥ì¥¹¤È¤ß¤Ê¤¹¤³¤È¤Ë¤Ê¤ë¡£ +# address check levels, which level is the tree depth from the root. +# value: number +ADDR_CHECK_MAX: 3 + +.j ¥á¡¼¥ë¥µ¥¤¥º¤ÎÀ©¸Â¡£¥Ç¥Õ¥©¡¼¥ë¥È¤ÏÀ©¸Â¤Ê¤· +# 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) +# If $NOTIFY_MAIL_SIZE_OVERFLOW is set, notify the rejection to the sender. +# If $ANNOUNCE_MAIL_SIZE_OVERFLOW is set, announce received the over +# size mail to the ML (SARASHIMONO:-). +# value: number +INCOMING_MAIL_SIZE_LIMIT: + +.j ¥á¡¼¥ë¥µ¥¤¥º¤¬ $INCOMING_MAIL_SIZE_LIMIT ¤ò±Û¤¨¤¿»þ¤Ë +.j ¤½¤Î¥á¡¼¥ë¤ò½Ð¤·¤¿¿Í¤ËËܿͤˡÖÂ礤¤¥á¡¼¥ë¤À¤«¤éµñÈݡפÈÄÌÃΤ¹¤ë¤«¡© +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÏÄÌÃΤ¹¤ë¡£ +.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦ +# value: 1/0 +NOTIFY_MAIL_SIZE_OVERFLOW: 1 + +.j Åê¹Æ¥á¡¼¥ë¤Î¥µ¥¤¥º¤¬ $INCOMING_MAIL_SIZE_LIMIT ¤ò±Û¤¨¤¿»þ¤Ë +.j £Í£Ì¤Ë¡ÖÂ礤¤¥á¡¼¥ë¤À¤«¤éµñÈݤ·¤¿¡×¤È¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡© +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¤·¤Ê¤¤" +.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦ +# value: 1/0 +ANNOUNCE_MAIL_SIZE_OVERFLOW: 0 + +.j £Í£Ì¤Î¥á¥ó¥Ð¡¼¤Î¾å¸Â¡£¼ç¤Ë¼«Æ°ÅÐÏ¿ÍÑ +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï̵À©¸Â +# Resource Limit (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: + +.j ¥Õ¥£¥ë¥¿¥ê¥ó¥°µ¡¹½¤ò͸ú¤Ë¤¹¤ë¤«¡© ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï£Î£Ï +.j XXX: ¥Õ¥£¥ë¥¿¥ê¥ó¥°¤Ï¿ä¾© +# Envelope Filtering for distribution mails +# &EnvelopeFilter is called in the top of &Distribute if you set +# $USE_DISTRIBUTE_FILTER = 1; +# You can use $DISTRIBUTE_FILTER_HOOK for advanced customizes. +# value: 1/0 +USE_DISTRIBUTE_FILTER: + +.j ¥Õ¥£¥ë¥¿¥ê¥ó¥°¤Î¥Õ¥Ã¥¯¡£ +.j perl¤ÇÊ£»¨¤Ê¾ò·ïʸ¤ò³Æ¤¿¤á¤ËÍѤ¤¤ë +.j ¾ÜºÙ¤Ï doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È »²¾È +# value: string +DISTRIBUTE_FILTER_HOOK: + +.j ¥Õ¥£¥ë¥¿¤¬ÃƤ¤¤¿¤ÈËܿͤËÃΤ餻¤ë¤«¡©¡Ê¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¤·¤Ê¤¤¡Ë +.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦ +# $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to +# the sender. +# value: 1/0 +FILTER_NOTIFY_REJECTION: + +.j "# command"¤Î¤è¤¦¤Ê¥á¡¼¥ë¤ÏµñÈݤ¹¤ë +.j Ãí: hml¸ß´¹¥â¡¼¥É¤Ïobsolete +# Attributes +# When $FILTER_ATTR_REJECT_COMMAND is 1 under distribution mode, +# rejects "# command" syntax just before distribution (&Distribute;) +# value: 1/0 +FILTER_ATTR_REJECT_COMMAND: + +.j £Õ£Î£Ó£Õ£Â£Ó£Ã£Ò£É£Â£Å¤Î¤è¤¦¤Ê£²¥Ð¥¤¥È±Ñ¸ì¤À¤±¤Î¥á¡¼¥ë¤òµñÈݤ¹¤ë +# reject Japanese "2byes English words" +# value: 1/0 +FILTER_ATTR_REJECT_2BYTES_COMMAND: + +.j Microsoft GUID¤Î¤è¤¦¤Êʸ»úÎó¤ò´Þ¤àźÉÕ¥Õ¥¡¥¤¥ë¤¬¤Ä¤¤¤¿ +.j MIME/Multipart ¤Î¥á¡¼¥ë¤ÏµñÈݤ¹¤ë¡£ +.j (¥¦¥£¥ë¥¹¤Ä¤¤Î¥Þ¥¯¥í¤«¤â¤·¤ì¤Ê¤¤¤«¤é) +# reject MIME/multipart mails wich Microsoft GUID within it, +# We intend to reject "Melissa virus" family by it. +# value: 1/0 +FILTER_ATTR_REJECT_MS_GUID: 1 + +.j HTML¤Èplaintext¤ÇƱ¤¸¤â¤Î¤¬Æþ¤Ã¤¿Éå¤Ã¤Æ¤¤¤ë¥á¡¼¥ë¤ÏµñÈݤ¹¤ë +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÏµñÈݤ·¤Ê¤¤ +.j +.j fml 3.0 ¤Ç¤Ï³ÈÄ¥¤µ¤ì ContentHandler ¤È¤¤¤¦µ¡¹½¤¬¤ª¤³¤Ê¤¦ +.j ¸ß´¹À¤Î¤¿¤á¤³¤ÎÊÑ¿ô¤Ï¸½ºß¤â»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£ +.j +# 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: + +.j ¥È¥é¥Õ¥£¥Ã¥¯¥â¥Ë¥¿ +.j ÂХ᡼¥ëÇúÃÆµ¡¹½ +.j ¿ä¾© +# Mail Traffic Information: internal traffic monitor +# value: 1/0 +USE_MTI: + +.j ¥È¥é¥Õ¥£¥Ã¥¯¤Î°Û¾ïÁýÂç¤ò°ìÅٷٹ𤷤¿¤é +.j $MTI_WARN_INTERVAL (default 3600ÉÃ) ´Ö¤Ï·Ù¹ð¤ò¹µ¤¨¤ë +.j +.j Ãí: ·Ù¹ð¤òÉÑÈˤˤÀ¤¹¤È¤½¤ì¼«ÂΤ¬¥á¡¼¥ëÇúÃÆ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦ +# MIT warning (mail bomb report) negative cache interval +# to avoid mail bomb of "mail bomb attack report" itself. +# value: number +MTI_WARN_INTERVAL: 3600 + +.j $MTI_WARN_INTERVAL¤Î»È¤¦¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +# value: filename string +MTI_WARN_LASTLOG: + +.j "£Í£Ì¤ò¼¤á¤ë¥³¥Þ¥ó¥É" ¤Ë¤â confirmation ¤òÍѤ¤¤ë¤«¡© +.j defualt ¤Ï»È¤ï¤Ê¤¤ +# 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: + +.j "chaddr ¥¢¥É¥ì¥¹¤òÊѹ¹¤¹¤ë¥³¥Þ¥ó¥É" ¤Ë¤â confirmation ¤òÍѤ¤¤ë¤«¡© +.j defualt ¤Ï»È¤ï¤Ê¤¤ +# chaddr checks confirmation +# value: confirmation / "" +CHADDR_AUTH_TYPE: + +.j fml¤ËÆÍ¤Ã¹þ¤Þ¤ì¤¿À¸¥á¡¼¥ë¤ò°ìÄê´ü´ÖÊݸ¤·¤Æ¤ª¤¯(default ¤Ç¤ÏÊݸ¤·¤Ê¤¤) +.j Êݸ´ü´Ö¤Ï¥È¥é¥Õ¥£¥Ã¥¯¤Ë¤è¤Ã¤ÆÊѤï¤ë +.j +.j Ãí: ¤¢¤ëÄøÅÙDISK¤¬É¬Í× +# 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 each file size +# is limited up to $LOG_MAIL_FILE_SIZE_MAX bytes to save disk. +# value: 1/0 +USE_LOG_MAIL: 0 + +.j $USE_LOG_MAIL ¤¬À¸¥á¡¼¥ë¤ÎÊݸ¤Ë»È¤¦¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë̾¤Î¥«¥¦¥ó¥¿ +# value: filename string +LOG_MAIL_DIR: $VAR_DIR/Mail +LOG_MAIL_SEQ: $LOG_MAIL_DIR/.seq + +.j Êݸ¤¹¤ë¥Õ¥¡¥¤¥ë¿ô(default 100) +.j 101 Ä̤á¤Ï 1 ¤Ë¤Ê¤ë¡£¤Ä¤Þ¤ê modulus ¤Ë¤è¤ê±ß´É¥Ð¥Ã¥Õ¥¡¤Ë¤Ê¤Ã¤Æ¤¤¤ë +.j Â礤¤¥á¡¼¥ë¤ÏËÜʸÀèÆ¬¤Î $LOG_MAIL_FILE_SIZE_MAX (2048) bytesʬ¤À¤± +.j Êݸ¤¹¤ë(¥Ø¥Ã¥ÀÅù¤ÎÊý¤¬½ÅÍפʤΤÇÂ礤¤¥á¡¼¥ëËÜʸ¤ÏÅÓÃæ¤Þ¤Ç¤Ç¤â¹½¤ï¤Ê¤¤) +# value: number +NUM_LOG_MAIL: 100 +LOG_MAIL_FILE_SIZE_MAX: 2048 + +.j Åê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤ò°Å¹æ²½¤¹¤ë +# PGP Encrpyted ML +# value: 1/0 +USE_ENCRYPTED_DISTRIBUTION: + +.j °Å¹æ²½¤Î»ÅÊý¡£¸½ºß¤ÏPGP¤Î¤ß +# value: pgp +ENCRYPTED_DISTRIBUTION_TYPE: pgp + + +##################################################################### +# ### Section: Header Customization ### +.j Section::Header ¥Ø¥Ã¥À¤Î¥«¥¹¥¿¥Þ¥¤¥º +# 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 +.j Date: ¤ÎÃÍ +.j 1 original-date Date: +.j * Date: == when distribute() works +.j 2 distribute-date+posted Date: + Posted: +.j 3 distribute-date+x-posted Date: + X-Posted: +.j 4 distribute-date+x-original-date Date: + X-Original-Date: +.j * Date: == when fml.pl receives or is kicked off. +.j 5 received-date+posted Date: + Posted: +.j 6 received-date+x-posted Date: + X-Posted: +.j 7 received-date+x-original-date Date: + X-Original-Date: +.j ¤Ê¤É¤¤¤í¤¤¤í +DATE_TYPE: original + +# In Header, we expand these values to +# +# $XMLNAME +# $XMLCOUNT: sequence-number +# +# e.g. +# X-ML-Name: Elena +# X-Mail-Count: 00007 +# +.j ¥Ø¥Ã¥À¤Ë¤Ä¤±¤ë£Í£Ì¤Î¼±Ê̻Ҥȥ«¥¦¥ó¥È +.j X-ML-Name: Elena +.j X-Mail-Count: 00007 +.j +# value: string +XMLNAME: X-ML-Name: Elena +XMLCOUNT: X-Mail-Count + +# 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 +.j Subject:¤Î¥¿¥°¤Î¼ïÎà¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ï²¿¤â¤Ä¤±¤Ê¤¤ +.j +.j ½ÅÍפʾðÊ󤬸º¤ë¤À¤±¤Ê¤Î¤ÇËÜÍ褳¤ó¤ÊTAG¤Ï¤Ä¤±¤ë¤Ù¤¤Ç¤Ï¤Ê¤¤¡£ +.j ¤À¤á¤ÊMUAÂкö¤È¤·¤Æ¤½¤¦¤¤¤¦¤â¤Î¤À¤ÈÎò»ËŪ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤È¤ª¤â¤ï¤ì¤ë +.j +# value: (:) / [:] / () / [] / (,) / [,] / () / [] / (ID) / [ID] / "" +SUBJECT_TAG_TYPE: + +.j Subject:¤Î¥¿¥°¤Ë¤Ä¤¯£Í£Ì¤Î¼±ÊÌ»Ò +# BRACKET of "Subject: [BRACKET:ID] ..." form +# value: string +BRACKET: Elena + +.j fml 3.0 ¤Ç¤Ï¤É¤¦¤Ç¤â¤¤¤¤ÊÑ¿ô +.j Îò»Ë: ÀΤϤ¢¤ëÌÜŪ¤Î¤¿¤á¤Ë¤¢¤Ã¤¿¤¬¸½ºß¤Ç¤Ï»È¤ï¤Ê¤¤ +# Obsoletes? 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 + +.j Subject:¥¿¥°¤ÎÆâÉôɽ¸½ +.j $SUBJECT_TAG_TYPE ¤Ï¤³¤ì¤Î´Ê°×ÈǤǤ¢¤ë¡£ +.j $SUBJECT_TAG_TYPE ¤ò»È¤ï¤º¤Ë¤³¤ì¤é¤ÎÊÑ¿ô¤ò»È¤Ã¤Æ +.j ¼«Ê¬¤Ç¥¿¥°¤òÄêµÁ¤¹¤ë¤³¤È¤â½ÐÍè¤ë¡£ +# "Free Subject Tag" settings (see doc/tutorial and libtagdef.pl on examples) +# value: regexp string +BRACKET_SEPARATOR: +SUBJECT_FREE_FORM: +SUBJECT_FREE_FORM_REGEXP: +SUBJECT_FORM_LONG_ID: + +.j Errors-To: ¤ò»È¤¦¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤ï¤Ê¤¤) +.j Ãí: RFC1123 ¤Ë¤è¤êErrors-To: ¤Ïº£Æü¤Ç¤Ï»È¤ï¤Ê¤¤ +# Errors-To: field +# Errors-To is not referred in RFC822. Sendmail 8.x do not see this +# field in default. However in error may be effective for e.g. Pasokon +# Tuusin, BITNET.. +# value: 1/0 +USE_ERRORS_TO: + +.j Errors-To: ¤Ë»È¤¦Ãͤò¶¯À©¤¹¤ë»þ¤Ë»È¤¦ +# value: string +ERRORS_TO: + +.j Original ¤Î Message-ID: ¤ò»È¤¦¤«¡©»È¤¦(1)¤¬¥Ç¥Õ¥©¡¼¥ë¥È +.j 0¤Ë¤¹¤ë¤Èfml¤¬Å¬Åö¤Ê Message-ID: ¤ò¤Ä¤±¤ë¡£À¸À®´Ø¿ô¤ÏGenMessageID +.j ¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï Æü¤Å¤±.FMLAAA.¿ô»ú(pid).$MAIL_LIST ¤Î¤è¤¦¤Ê¤â¤Î +# Message-Id: use original Message-Id or Server Defined Message-Id ? +# value: 1/0 +USE_ORIGINAL_MESSAGE_ID: 1 + +.j Precedence: ¥Õ¥£¡¼¥ë¥É +# Precedence: field; +# why "list" is not used ;_; but netbsd.org is "list" +# value: string +PRECEDENCE: bulk + +.j Åê¹Æ¥á¡¼¥ë¤Ë¥¹¥¿¡¼¥È¥ì¥Ã¥¯±§ÃèÎò¤ò¥Ø¥Ã¥À¤Ë¤Ä¤±¤ë(¾Ð) +.j Ãí: ±§ÃèÎò¤ÎÊýÄø¼°¤ÏÊ£¿ô¤¢¤ë¤¬¤½¤Î¤¦¤Á¤Î°ì¤Ä¤ò»È¤Ã¤Æ¤¤¤ë +.j Àµ¤·¤¤ÊýÄø¼°¤«¤É¤¦¤«¤Ï¤Þ¤¿Ê̤À:-) +.j ¾ÜºÙ¤Ï¥¹¥¿¡¼¥È¥ì¥Ã¥¯¥¨¥ó¥µ¥¤¥¯¥í¥Ú¥Ç¥£¥¢¤Ê¤É¤ò»²¾È¤µ¤ì¤¿¤¤ +# X-Stardate: field +# value: 1/0 +APPEND_STARDATE: + +# We should force "To: $MAIL_LIST" form "For Eye" or NOT? +# +# 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) +.j To: ¤ÎÃÍ¡£3.0¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤¹Ä̤·¡£ +# value: 0/1/2 +REWRITE_TO: + +.j ̤ÄêµÁ¤Î»þ¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ +.j Ä̾ï¤Ï¥í¥°¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ë¤¯¤é¤¤ +# Default values if no value (no field) is given. +# value: string +Subject: +From_address: not.found +User: not.found +Date: not.found + +.j ¥¿¥¤¥à¥¾¡¼¥ó +.j Ä̾ï¤Ï¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë»ØÄꤹ¤ë¤â¤Î +# TIME ZONE; +0900 is RFC822 syntax (I like JST but ... ;-) +# value: +\d{4} / -\d{4} +TZone: +0900 + +.j $SKIP_FIELDS (¼¡)°Ê³°¤Î¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤ò¤¹¤Ù¤ÆÄ̤¹ +# ## Sub Section: Pass All Header ? ## +# In default we 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 + +.j $SKIP_FIELDS ¤Î¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤ÏÍ¡£ +.j ¾¯¤Ê¤¯¤È¤â Return-Receipt-To: ¤ÏºÇÄã¸Â¤Ï¤¸¤¯¤Ù¤¤Ç¤¢¤ë +.j ¥ë¡¼¥×¤Î¸¶°ø¤Ë¤Ê¤êÆÀ¤ë¤¿¤á¤Ç¤¢¤ë +# value: regexp string +SKIP_FIELDS: Return-Receipt-To + + +##################################################################### +# ### Section: Commands, Command Traps, File Operations (e.g. mget) ### +.j Section::Command ¥³¥Þ¥ó¥É¤Þ¤ï¤ê + +.j # help ¤È #help¤Ï°ì½ï +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# COMMAND format is "#help" == "# help" if $COMMAND_SYNTAX_EXTENSION is set. +# value: 1/0 +COMMAND_SYNTAX_EXTENSION: 1 + +.j Subject:¤Ë¥³¥Þ¥ó¥É("# command")¤ò»È¤¦¾ì¹ç(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤ï¤Ê¤¤) +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# "Subject: # commands" is available? +# value: 1/0 +USE_SUBJECT_AS_COMMANDS: 0 + +.j ¥³¥Þ¥ó¥É¤Î¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼¤ò¾ï¤Ë·Ù¹ð¤ò½Ð¤¹(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï½Ð¤µ¤Ê¤¤) +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# 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 + +.j 3.0 ¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î --ctladdr ¤Ç»ØÄꤹ¤ë¤â¤Î +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# obsolete: since this is the same as --ctladdr. +# value: 1/0 +COMMAND_ONLY_SERVER: 0 + +# **ATTENTION** +# $PROHIBIT_COMMAND_FOR_STRANGER is obsoletes since +# $PROHIBIT_COMMAND_FOR_STRANGER equals $PERMIT_COMMAND_FROM = "anyone"; + +.j ºÇ½é¤Î $COMMAND_CHECK_LIMIT ¹Ô¤ò¥Á¥§¥Ã¥¯¤¹¤ë +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# ## Sub Section: traps ## +# 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 + +.j ¥¬¥¤¥ÉÍ׵ᤫ¤É¤¦¤«¥á¡¼¥ëËÜʸ¤ÎºÇ½é¤Î $GUIDE_CHECK_LIMIT ¹Ô¤ò¥Á¥§¥Ã¥¯¤¹¤ë +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# value: number +GUIDE_CHECK_LIMIT: 3 + +.j ¥¬¥¤¥ÉÍ׵ᤫ¤É¤¦¤«¤Î¥¡¼¥ï¡¼¥É +.j Îò»Ë: µì»þÂå¤Î»ºÊª +# value: string +GUIDE_KEYWORD: guide + +.j °ì¤Ä¤Î¥á¡¼¥ë¤Ë¤«¤±¤ë¥³¥Þ¥ó¥É¿ô¤Î¾å¸Â +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï̵À©¸Â +# 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: + +.j chaddr ¥³¥Þ¥ó¥É¤Î¥¨¥¤¥ê¥¢¥¹ +# "# chaddr" commands is required for special exception +# value: regexp string +CHADDR_KEYWORD: chaddr|change\-address|change + +.j mget¥³¥Þ¥ó¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È +.j UNIX¾å¤Ç¤ÏºÇ¤â¸úΨ¤ÎÎɤ¤ tar.gz ¤¬¥Ç¥Õ¥©¡¼¥ë¥È +.j Windows NT4¤Ç¤Ï MIME/Multipart ¤¬¥Ç¥Õ¥©¡¼¥ë¥È +# ## 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: +MGET_TEXT_MODE_DEFAULT: + +.j mget ¥³¥Þ¥ó¥É¤Î·ë²Ì¤¬Â礤¤¥á¡¼¥ë¤Î¾ì¹ç¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ëʬ³ä¤¹¤ë +.j ³Æ¥á¡¼¥ë¤Ï¤ª¤ª¤è¤½ $MAIL_LENGTH_LIMIT ¹Ô¤Ç +.j $SLEEPTIME Éôֳ֤ÇÁ÷¤êÊÖ¤¹ +# 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 +SLEEPTIME: 60 + +.j mget ¤Ç»È¤¦MIME¥Ñ¥é¥á¡¼¥¿¡£Ì¤ÄêµÁ +.j mget¤Î¥Õ¥¡¥¤¥ë¥â¡¼¥É¤¬½é´ü²½¤µ¤ì¤ë»þ¤ËɬÍפʤé½é´ü²½¤µ¤ì¤ë +# See doc/tutorial and libfop.pl for the detail. You change MIME/Multipart default. +# value: string +MIME_VERSION: +MIME_CONTENT_TYPE: +MIME_MULTIPART_BOUNDARY: +MIME_MULTIPART_CLOSE_DELIMITER: +MIME_MULTIPART_DELIMITER: +MIME_MULTIPART_PREAMBLE: +MIME_MULTIPART_TRAILER: + +.j mget ¤Ç ish ¥â¡¼¥É¤ò»ØÄꤷ¤¿¤é sjis ¤Ë¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤«¡©(default¤Ï¤·¤Ê¤¤) +.j sjis ¤Ê¤Î¤Ï ish ¤ò»È¤¦¥æ¡¼¥¶¤ÏM$¤Ê´Ä¶¤À¤í¤¦¤«¤é¤Ç¤¢¤ë +# sjis conversion in "mget ish" mode. +# value: 1/0 +USE_SJIS_IN_ISH: + +.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿ +# RFC1153 configurations; see doc/tutorial for the detail +# value: number +RFC1153_ISSUE: + +.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿ +# value: number / string +RFC1153_VOL: + +.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿ +# value: filename string +RFC1153_SEQUENCE_FILE: + +# ## Sub Section: MTA specific ## +# qmail °Í¸³ÈÄ¥ +# ¥á¡¼¥ëËÜʸ¤Ë "get 1" ¤ò½ñ¤¤¤Æ ml-ctl@domain ¤ËÁ÷¤ë¤³¤È¤Ï +# ml-get-1@domain ¤Ë²¿¤«¤òÁ÷¤ë¤³¤È¤ËÅù¤·¤¤¡£¤Ä¤Þ¤ê +# ml-command-°ú¿ô@domain == "command °ú¿ô"¤ò ml-ctl@domain ¤ËÁ÷¤ë¤³¤È +# value: 1/0 +USE_DOT_QMAIL_EXT: 0 + + +.j obsolete +.j Reply-To: ¤ÎÃͤò¶¯À©¤¹¤ë¡£ +.j fml 3.0 ¤Ç¤Ï&DEFINE_FIELD_FORCED() ¤ò»È¤¦ +#C beth +# ## Sub Section: Headers of reply from FML ## +# 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: + +.j mget ¤Î¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹¥á¡¼¥ë¤ÎSubject: ¥Æ¥ó¥×¥ì¡¼¥È +# 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_ + + +##################################################################### +# ### Section: Digest/Matome Okuri Configurations ### +.j Section::Digest ¤Þ¤È¤á¤ª¤¯¤ê +# +# $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_. +# +.j ¤Þ¤È¤áÁ÷¤ê¥á¡¼¥ë¤ÎSubject: ¥Æ¥ó¥×¥ì¡¼¥È +# value: string +MSEND_SUBJECT_TEMPLATE: Digest _ARTICLE_RANGE_ _PART_ _ML_FN_ + +.j ¤Þ¤È¤áÁ÷¤ê¤Î¡Öï¤Ë¤É¤³¤Þ¤ÇÁ÷¤Ã¤¿¤«¡×¤ÎµÏ¿¤ò¤¹¤ë¥Õ¥¡¥¤¥ë +# Digest/Matome Okuri rc file +# value: filename string +MSEND_RC: $VARLOG_DIR/msendrc + +.j ¤Þ¤È¤áÁ÷¤ê¤Î¥Ç¥Õ¥©¡¼¥ë¥È +# rfc1153 or rfc934 +# obsoletes $USE_RFC1153, $USE_RFC1153_DIGEST, $USE_RFC934 +# value: mode string +MSEND_MODE_DEFAULT: + +.j ¤Þ¤È¤áÁ÷¤ê¥á¡¼¥ë¤ÎSubject: ¤Î¥Ç¥Õ¥©¡¼¥ë¥È +.j Îò»Ë: ¸ß´¹À¤Î¤¿¤á¡£¸½ºß¤Ç¤Ï°ÕÌ£¤Ê¤· +# Subject: +# value: string +MSEND_DEFAULT_SUBJECT: + +.j ¥È¥é¥Õ¥£¥Ã¥¯¤Î¤Ê¤¤Æü¤Ï +.j ¡Öº£Æü¤Ï¤Þ¤È¤á¤ª¤¯¤ê¤¹¤ë¤Ù¤¤â¤Î¤¬¤Ê¤¤¡×¤È +.j £Í£Ì¤Ë¥¢¥Ê¥¦¥ó¥¹¤ò¤À¤¹¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¤À¤µ¤Ê¤¤") +# 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: + +.j ¤½¤Î subject: +# value: string +MSEND_NOTIFICATION_SUBJECT: + +.j ¤Þ¤È¤á¤ª¤¯¤ê¤Ç¤Ï X-ML-Info: ¤ÏÉÔɬÍפ«?(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï X-ML-Info:¤Ä¤) +# not require X-ML-Info: in the "mget"; +# value: 1/0 +MSEND_NOT_USE_X_ML_INFO: + +.j ¤Þ¤È¤á¤ª¤¯¤ê¤Î¤Ä¤¤¤Ç¤Ë newsyslog ¤ò¹Ô¤Ê¤¦¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤¹¤ë) +# not do newsyslog in the sunday morning. $NOT_USE_NEWSYSLOG (CFVersion 2) +# value: 1/0 +MSEND_NOT_USE_NEWSYSLOG: + + +##################################################################### +# ### Section: Other Files for Configurations and Logs ### +.j Section::Files ¥Õ¥¡¥¤¥ëÅù + +.j Message-ID: ¥ë¡¼¥×¥Á¥§¥Ã¥¯¤Ç»È¤¦¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +# cache of loop check +# value: filename string +LOG_MESSAGE_ID: $VARRUN_DIR/msgidcache + +.j ¥á¡¼¥ëËÜʸ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤Ç¥ë¡¼¥×¥Á¥§¥Ã¥¯¤ò¤¹¤ë»þ»È¤¦¥¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë +# cache of mailbody cksum +# value: filename string +LOG_MAILBODY_CKSUM: $VARRUN_DIR/bodycksumcache + +# $MEMBER_LIST sent by "# member" command +# $ACTIVE_LIST sent by "# active" command +# == delivery list (active member list) + +.j $MEMBER_LIST £Í£Ì¤Î¥á¥ó¥Ð¡¼¤«Ç§¾Ú¤¹¤ë»þ¤Î¥á¥ó¥Ð¡¼¥ê¥¹¥È +.j $ACTIVE_LIST ÇÛÁ÷Àè¥ê¥¹¥È +# value: filename string +MEMBER_LIST: $DIR/members +ACTIVE_LIST: $DIR/actives + +.j ̾Á°¤ÎÄ̤ê +.j guide ¥¬¥¤¥É +.j objective ÌÜŪ +.j help ¥Ø¥ë¥×¥Õ¥¡¥¤¥ë +.j +.j XXX guide ¤È objective ¤Ã¤Æ¤É¤¦¤Á¤¬¤¦¤ó¤À¤í¤¦¤Í¡© +.j XXX ¤·¤¤¤Æ¤¤¤¨¤Ð£Í£Ì¤ËÆþ¤Ã¤Æ¤¤¤ë¿Í¤Ë¤À¤±¤³¤Ã¤½¤ê¶µ¤¨¤ë¾ðÊó¤¬ +.j XXX ´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤¬ objective ¤Ê¤Î¤À¤í¤¦ +# 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 +OBJECTIVE_FILE: $DIR/objective +HELP_FILE: $DIR/help + +.j ¥á¡¼¥ë¤ÎÅê¹Æ¤òµñÈݤ¹¤ëºÝ¤Ë»È¤¦¥Æ¥ó¥×¥ì¡¼¥È +# WHEN REJECT_*_HANDLER is "reject", we return this file to the poster +# value: filename string +DENY_FILE: $DIR/deny + +.j ¥í¥°¥Õ¥¡¥¤¥ë +.j XXX mget¤Î¥í¥°¤À¤±Ê̤Τâ¤Î¤Ë¤¹¤ë¤È¤¤¤¦µ¡Ç½¤â¤¢¤ë¤³¤È¤Ï¤¢¤ë¤¬¡Ä +# $LOGFILE log file +# $MGET_LOGFILE log file for mget routine, the same file in default. +# value: filename string +LOGFILE: $DIR/log +MGET_LOGFILE: $DIR/log + +.j ¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤ò¤¢¤²¤¿»þ¤Ë¥Ç¥Ð¥Ã¥°¾ðÊó¤òÅǤ¯¥Õ¥¡¥¤¥ë +.j $LOGFILE ¤È¤ÏÊѤ¨¤Æ¤ª¤¯¤È¤Ê¤Ë¤«¤ÈÊØÍø¤«¤â¤·¤ì¤Ê¤¤ +# when -d2 ($debug = 2), logs this file. +# value: filename string +DEBUG_LOGFILE: $DIR/log.debug + +.j Åê¹Æ¥á¡¼¥ë¤Î¥µ¥Þ¥ê +# article summary file +# value: filename string +SUMMARY_FILE: $DIR/summary + +.j Åê¹Æ¥á¡¼¥ë¤Î X-Mail-Count: ¤Î¿ô»ú¤òÊݸ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë +# sequence number file +# value: filename string +SEQUENCE_FILE: $DIR/seq + +.j flock(2)¤¬»È¤¨¤Ê¤¤OS¾å¤Ç»È¤¦¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î̾Á° +.j $USE_FLOCK = 0 (flock¤ò»È¤ï¤Ê¤¤)»þ¤Ï rename(2)¤ò»È¤Ã¤Æ¤¤¤ë +# rename(2) lock (liblock.pl) +# value: filename string +LOCK_FILE: $VARRUN_DIR/lockfile.v7 + + +##################################################################### +# ### Section: SMTP and Delivery ### +.j Section::SMTP ¥á¡¼¥ë¤ÎÇÛÁ÷·Ï¤Ë¤Ä¤¤¤Æ(SMTP) +# +# [IPC] to speak to Sendmail via Simple Mail Transfer Protocol($PORT/tcp). +# $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). +.j ¥á¡¼¥ë¤ÎÇÛÁ÷¤Ë»È¤¦¥Û¥¹¥È¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ïfml¤¬Áö¤Ã¤Æ¤¤¤ë¥Û¥¹¥È¼«¿È +.j +.j Ãí: ISP¤Ë¤è¤Ã¤Æ¤Ïfml¤¬Áö¤ë¥Û¥¹¥È¤È¥á¡¼¥ëÇÛÁ÷¤Ë»È¤¦¥Û¥¹¥È¤¬°Û¤Ê¤ë +.j ¤è¤¯Ä´ºº¤µ¤ì¤¿¤¤ +# value: string +HOST: localhost + +.j smtp port ¤ÎÈֹ档¥Ç¥Õ¥©¡¼¥ë¥È¤Ï 25/tcp +# value: number +PORT: 25 + +.j ¥á¡¼¥ëÇÛÁ÷¤ÎÍÍ»Ò¤Î¥í¥°¤ò¤È¤ë¥Õ¥¡¥¤¥ë +.j ¥Ç¥Ð¥Ã¥°ÍÑÅÓ +# IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG +# IF $TRACE_SMTP_DELAY IS 1, we logs the delay of response between SMTP server. +# value: filename string +SMTP_LOG: $VARLOG_DIR/_smtplog + +.j ¥á¡¼¥ëÇÛÁ÷¤Î¥í¥°¤ò¤È¤ë¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤È¤ë) +# value: 1/0 +NOT_TRACE_SMTP: 0 +TRACE_SMTP_DELAY: + +.j Ê£¿ô¤Î¥Û¥¹¥È¤ÎMTA¤ò»È¤Ã¤ÆÊÂÎóÇÛÁ÷¤ò¤¹¤ëºÝ¤Ë²¿Âæ»È¤¦¤Î¤«¡©¤ò»ØÄꤹ¤ë +.j @HOSTS ¤È¤¤¤¦ÇÛÎó¤ËÄêµÁ¤µ¤ì¤¿¥Û¥¹¥È¤ò»È¤¦ +# IF YOU USE PLURAL SMTP SERVER FOR DELIVERY, Please set the number to +# $MCI_SMTP_HOSTS and define them to @HOSTS as the array components. +MCI_SMTP_HOSTS: + +.j ¥ê¥ì¡¼¥µ¡¼¥Ð +.j XXX ¥á¡¼¥ë¥ê¥ì¡¼¤Ï¸½Âå¤Ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤¬¤Ê¤¤ +.j XXX SPAM¤Ê¤É¤Ç°¤¤¤³¤È¤Ë¤Ð¤«¤ê»È¤ï¤ì¤½¤â¤½¤â¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ÉáÄÌ +# ## Relay server ## +# each user relay is defined in delivery list as "m=relay-host". +# If $DEFAULT_RELAY_SERVER is set, we apply it for all members. +# value: string +DEFAULT_RELAY_SERVER: + +.j CF¤Î static routing +.j XXX ¥á¡¼¥ë¥ê¥ì¡¼¤Ï¸½Âå¤Ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤¬¤Ê¤¤ +.j XXX SPAM¤Ê¤É¤Ç°¤¤¤³¤È¤Ë¤Ð¤«¤ê»È¤ï¤ì¤½¤â¤½¤â¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ÉáÄÌ +# 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: + +.j CF¤ÎÀßÄê¥Õ¥¡¥¤¥ë +# value: filename string +CF_DEF: + +.j fml¤¬ÇÛÁ÷¥ê¥¹¥È¤ò¥á¡¼¥ë¥µ¡¼¥Ð¤ËÅϤ¹¤Î¤Ç¤Ï¤Ê¤¯ +.j ²Í¶õ¤Î¥¢¥É¥ì¥¹¤ËÅϤ·¤Æ¥á¡¼¥ë¥µ¡¼¥Ð¤Ç¥ê¥¹¥È¤òŸ³«¤¹¤ë +.j ¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç(Îã: 16M 486 machine)¤Ê¤É¤ËÆÃ¤Ë͸ú +.j +.j fml.pl ¤Ï°ì¤Ä¤Î¥¢¥É¥ì¥¹ <list-outgoing@$DOMAIN> ¤Ø +.j list-outgoing@$DOMAIN ¤¬Å¸³« +.j +# list-going@domain is a real distribution address. Fml does not +# pass rcpt list to MTA but only this address. +# XXX: dedicated to minmin sama:D +# value: 1/0 +USE_OUTGOING_ADDRESS: + +.j ²Í¶õ¤Î¥¢¥É¥ì¥¹ <list-outgoing@$DOMAIN> +# value: string +OUTGOING_ADDRESS: + +.j VERPs (Variable Envelope Return Paths) ¤ò»È¤¦ +.j qmail¤Î¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¤òÆÉ¤Þ¤ì¤¿¤¤ +.j ¤â¤Á¤í¤ó¼õ¤±¤È¤ì¤ë¤è¤¦¤ËÀßÄ꤬ÊÌÅÓMTA¤ËɬÍפǤ¢¤ë +# VERPs: Variable Envelope Return Paths. See qmail documents for more details. +USE_VERP: + + +##################################################################### +# ### Section: MISC ### +.j Section::Misc ¤½¤Î¾ + +.j MIME decode ¤ò¤¹¤ë¤«¡©"¤¹¤ë"¤¬¥Ç¥Õ¥©¡¼¥ë¥È +# ## Sub Section: MIME ## +# Mime Decode On if $USE_MIME; +# e.g. Decode $SUMMARY_FILE subject and so on. +# default 1 from 2.1C#13 +# value: 1/0 +USE_MIME: 1 + +.j obsolete +.j $SPOOL_DIR ¤Ëµ»ö¤òÊݸ¤¹¤ë»þ¤Ëµ»ö¤òMIME decode¤·¤Æ¤·¤Þ¤¦ +.j Îò»Ë: Éå¤Ã¤¿MUA¤Î¤¿¤á¤Ë¤¢¤ë¡£º£»þ»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤ +# 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: + + +# ## Sub Section: Preamble and Trailer for Mail Body ## +.j Section::Misc::CommandReportMail ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤Î¥á¡¼¥ë +# If you always append some message in the command reply mail body, +# you can use these variables. 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. +# +.j ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤òÊÖ¤¹»þ¤Ë¥á¡¼¥ëËÜʸ¤Î +.j $PREAMBLE_MAILBODY ËÜʸ¤ÎÁ° +.j $TRAILER_MAILBODY ËÜʸ¤Î¸å +.j ¤Ë²¿¤«¤ò¤Ä¤±¤ë¡£ +.j +.j Ãí: Åê¹ÆÍѤΥ᡼¥ë¤Î¤¿¤á¤Ç¤Ï¤Ê¤¤¤Î¤ÇÃí°Õ +.j +# value: string +PREAMBLE_MAILBODY: +TRAILER_MAILBODY: + + +# ## Sub Section: Reply Configurations ## +.j Section::Misc::ReplyMail ¤½¤Î¾ +# 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 +# +.j ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤òÊÖ¤¹»þ¤Î¥á¡¼¥ëËÜʸ¤ÎºÇ¸å¤Ë¤Ä¤±¤ë¤´°§»¢:) +# value: string +GOOD_BYE_PHRASE: --$MAIL_LIST, Be Seeing You! +FACE_MARK: + +.j X-ML-Info: ¤ÎÆâÍÆ¤òÀ¸À®¤¹¤ë´Ø¿ô̾ +.j ÆÈ¼«¤Î´Ø¿ô¤òºî¤Ã¤Æ¸Æ¤Ó½Ð¤»¤ÐÆÈ¼«¤Î X-ML-Info: ¤¬ºî¤ì¤ë +# value: function name string +PROC_GEN_INFO: GenInfo + + +# ## Sub Section: Lock Algorithm ## +.j Section::Misc::Lock ¥í¥Ã¥¯ +# 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. +.j flock(2)¤ò»È¤¦¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"»È¤¦" +# value: 1/0 +USE_FLOCK: 1 + +.j flock¤Ç¤Ê¤¤rename(2)¤Î»þ¤Î¥¿¥¤¥à¥¢¥¦¥È(retry²ó¿ô) +.j Â绨ÇĤˤϽ½¿ôÊ¬ÄøÅÙ +# value: number +MAX_TIMEOUT: 200 + + +# ## Sub Section: misc ## +.j Section::Misc::Misc ¤½¤Î¾¤¤¤í¤¤¤í +# Not spooling (default is "spooling") +.j $SPOOL_DIR¤Ëµ»ö¤òÊݸ¤·¤Ê¤¤(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"Êݸ¤¹¤ë") +# value: 1/0 +NOT_USE_SPOOL: + +.j fml 1.5 °ÊÁ°¤È¤Î¸ß´¹¥â¡¼¥É +# "$CFVersion < 2" equals "$COMPAT_FML15 = 1;" +# value: 1/0 +COMPAT_FML15: 0 + +.j ¸Å¤¤¥Õ¥¡¥¤¥ë¤Ï .0 .1 ¤Ê¤É¤Î¤è¤¦¤Ësuffix¤òÊѤ¨¤ÆÊݸ¤¹¤ë +.j $NEWSYSLOG_MAX ²ó¤Ï»Ä¤ë +.j Îã: +.j log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0 +.j log.4 -> log.5 ¤Ï¤Ê¤¯¡¢¾Ãµî¤µ¤ì¤ë¤À¤± +.j XXX OS¤Ë¤è¤Ã¤Æ¤Ï newsyslog(8)¤ò¤ß¤é¤ì¤¿¤¤¡£ +# newsyslog library maximum number. default is 4. So +# log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0 +# value: number +NEWSYSLOG_MAX: 4 + +.j fmlÉí°¤Îcron¤Î¤¿¤á¤Îcrontab¤Î¾ì½ê¤Èpid¥Õ¥¡¥¤¥ë +.j XXX Vixie cron ¤Î¤Ê¤¤OS¤Ç¤ÎÏäʤΤÇÉáÄ̤ϻȤï¤Ê¤¤ +# cron configurations for bin/cron.pl NOT system Vixie cron(8) +# value: filename string +CRONTAB: etc/crontab +CRON_PIDFILE: var/run/cron.pid + +.j cron¤¬¼Â¹Ô¤·¤¿ÆâÍÆ¤ò$MAINTAINER¤ËÃΤ餻¤ë(default ¤¹¤ë) +.j XXX Vixie cron¤È°ì½ï +# value: 1/0 +CRON_NOTIFY: 1 + +.j ¥¯¥í¥¹¥Ý¥¹¥È¤ò¹Íθ¤¹¤ë¡£ +.j ¹Íθ¤¹¤ë£Í£Ì·²¤Ë¤Ä¤¤¤ÆÄêµÁ¥Õ¥¡¥¤¥ë¤¬É¬Í× +# cross operations +# value: 1/0 +USE_CROSSPOST: + +.j ¥¢¥É¥ì¥¹¤ÈËÜ̾¤ÎÂбþ¥ê¥¹¥È¤ò»È¤¦ +.j +.j -- doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È +.j +.j ¤³¤ì¤Þ¤Ç¤Î fml ¤Ç¤Ï¡¢¥á¥ó¥Ð¡¼°ìÍ÷¤ò 'members' ¥³¥Þ¥ó¥É¤Ç¼è¤ê´ó¤»¤ë¤È +.j ¥á¥ó¥Ð¡¼Á´°÷¤Î¥¢¥É¥ì¥¹¤¬ÊÖÁ÷¤µ¤ì¤Æ¤¤Þ¤¹¤¬¡¢¥¢¥É¥ì¥¹¤À¤±¤Ç¤Ï郎ï¤Ê¤Î¤« +.j ¤ï¤«¤ê¤Ë¤¯¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤·¤¿¡£ +.j ¤³¤Î¥â¥¸¥å¡¼¥ë libmember_name.pl ¤Ï¡¢¤½¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¡¢³Æ¥á¥ó¥Ð¡¼ +.j ¤Î̾Á° (´ðËÜŪ¤Ë¤Ï¡¢mail ¤Î From: ¥Ø¥Ã¥À¤Ë½ñ¤«¤ì¤Æ¤¤¤ë̾Á°(gecos)) ¤ò´ÉÍý +.j ¤¹¤ëµ¡Ç½¤òÉղä·¤Þ¤¹¡£ +.j ¤³¤Î¥â¥¸¥å¡¼¥ë¤ò͸ú¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢µ¡Ç½¤¬Äɲá¦Êѹ¹¤µ¤ì¤ë¹àÌܤò°Ê²¼ +.j ¤Ëµ½Ò¤·¤Þ¤¹¡£ +.j ¡ü ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ÇFrom:¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀ¸À®¤¹¤ë +.j ¡ü 'members', 'member' ¥³¥Þ¥ó¥É¤Ç̾Á°¤òÉղ乤ë +.j ¡ü 'name' ¥³¥Þ¥ó¥É (¿·µ¬) +.j ¡ü 'admin name' ¥³¥Þ¥ó¥É (¿·µ¬) +.j +# 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: + + +##################################################################### +# ### Section: Expire and Archive ### +.j Section::Archive µ»ö¤ÎExpire¤È¥¢¡¼¥«¥¤¥Ö¤Î¼«Æ°ºîÀ® + +# If $USE_EXPIRE is set, we do expiration function built-in (2.1 release) +# default is "NOT Expiration" or "Manual Expiration". +# 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 +# +.j ¼«Æ°Åª¤Ë¸Å¤¤µ»ö¤ò¾Ã¤¹¤«¡©¡Ê¤·¤Ê¤¤¡Ë +.j $EXPIRE_SUMMARY ¤¬0¤Ç¤Ê¤¤¤Ê¤é $SUMMARY_FILE ¤âÀ¸À®¤·Ä¾¤¹ +# value: 1/0 +USE_EXPIRE: 0 +EXPIRE_SUMMARY: + +.j ¤É¤Î¤¯¤é¤¤¸Å¤¯¤Ê¤Ã¤¿¤é¾Ã¤¹¤Î¤«¡© +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï7Æü´Ö +# value: number / ( number + day/week/month ) +EXPIRE_LIMIT: 7days + +# 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. +# +.j ¼«Æ°Åª¤Ë¥¢¡¼¥«¥¤¥Ö¤òºî¤ë¤«¡© +.j $SPOOL_DIR ¤«¤é $ARCHIVE_DIR/100.tar.gz (X-Mail-Count:¤¬1 ¡Á 100) +.j ¤òÀ¸À®¤¹¤ë¡£ +.j Ãí: Ì·½â¤·¤Ê¤¤¤è¤¦¤Ë expire ¤Ï½½Ê¬¤æ¤Ã¤¯¤ê¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.j +# value: 1/0 +USE_ARCHIVE: 0 + +.j tar.gz ¤òºî¤ëºÝ¤Î°ì¤Ä¤Îtar.gz¤¢¤¿¤ê²¿¸Ä¤Îµ»ö¤òÆþ¤ì¤ë¤« +.j Ãí: °ÕÌ£¤ÏƱ¤¸¤À¤¬ $DEFAULT_ARCHIVE_UNIT ¤Ï¸ß´¹À¤Î¤¿¤á¤Î¤â¤Î +.j µ¤¤Ë¤·¤Ê¤¯¤ÆÎɤ¤ +# value: number +ARCHIVE_UNIT: 100 +DEFAULT_ARCHIVE_UNIT: 100 + +.j tar.gz ¤òºî¤ë¥Ç¥£¥ì¥¯¥È¥ê +# value: directory string +ARCHIVE_DIR: var/archive + +.j "index"¥³¥Þ¥ó¥É¤Ï +.j $SPOOL_DIR ¤ÎÆâÍÆ¤ä tar.gz ¤Ê¤É¤Î¾õ¶·¤ò¶µ¤¨¤Æ¤¯¤ì¤ë +.j $INDEX_FILE ¤¬¤¢¤ë¤Ê¤é¤½¤ì¤ò¥á¡¼¥ë¤ÇÊÖ¤¹ +.j ¤Ê¤¤¤Ê¤éfml¤¬ $SPOOL_DIR $ARCHIVE_DIR ¤ÎÃæ¿È¤òÄ´¤Ù¤ÆÊÖ¤¹ +# "index" command; in default we scan spool and archives and reports. But +# "# index" send $INDEX_FILE if $INDEX_FILE exists; +# value: filename string +INDEX_FILE: $DIR/index + +.j fml¤¬ $SPOOL_DIR $ARCHIVE_DIR ¤ÎÃæ¿È¤òÄ´¤Ù¤ÆÊÖ¤¹»þ¤Ë +.j ¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤ò½Ð¤¹¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¶µ¤¨¤Ê¤¤ +# value: 1/0 +INDEX_SHOW_DIRNAME: 0 + + +# ### Section: Library Commands ### +.j Section::Library ¥é¥¤¥Ö¥é¥ê¥³¥Þ¥ó¥É +.j +.j £Í£ÌÃæ¤Ë¤¢¤ë¥ß¥Ë£Í£Ì¤Î¤è¤¦¤Ê¤â¤Î +.j ¥¢¡¼¥«¥¤¥Ö¤ËÃÖ¤¤¤¿¤ê¾Ã¤·¤¿¤ê¤¹¤ë +.j Îã: ºî¶ÈÍѤΥɥ¥å¥á¥ó¥È¤Ê¤É¤Î¼õÅϤ·¤Ë»È¤¦ +.j +# 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). +# +.j $LIBRARY_DIR ¥é¥¤¥Ö¥é¥ê¥³¥Þ¥ó¥É¤ÎHOME +.j $LIBRARY_ARCHIVE_DIR ¥¢¡¼¥«¥¤¥Ö¤ÎÃÖ¤¾ì½ê +# value: directory string +LIBRARY_DIR: var/library +LIBRARY_ARCHIVE_DIR: archive + + +# ## Sub Section: newsyslog(8) ## +.j Section::NewSysLog newsyslog(8) +# to turn over \$DIR/log +.j $LOGFILE ¤Î turn over ¤Î»þ¤À¤±backup¤Î¿ô¤òÁý¤ä¤¹ +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï $NEWSYSLOG_MAX ²ó +# value: number +LOGFILE_NEWSYSLOG_LIMIT: + +.j $MEMBER_LIST $ACTIVE_LIST ¤ÎÊѹ¹¤ÎºÝ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¤¹¤ë +.j ¤½¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¢¤ëÄøÅÙÂ礤¤¤Ê¤é newsyslog(8)¤òŬÍѤ¹¤ë +# to turn over \$DIR/actives.bak and \$DIR/members.bak, +# 150K = 30*5000 +# value: number / (number + K/M) +AMLIST_NEWSYSLOG_LIMIT: 150K + + +# ### Section: Html Configurations ### +.j Section::HTML µ»ö¤òHTML¤Ë¼«Æ°ÊÑ´¹¤¹¤ë +# HTML Mode Configurations (libsynchtml.pl) +# Please see doc/tutorial for the details. +# AUTO_HTML_GEN == AUTOmatic HTML GENeration +# if $AUTO_HTML_GEN, we generte html'ed articles in $DIR/$HTML_DIR +.j µ»ö¤òHTML¤Ë¼«Æ°ÊÑ´¹¤¹¤ë ($AUTO_HTML_GEN) +.j ¥¹¥ì¥Ã¥É²½¤¹¤ë ($HTML_THREAD) +.j ÈÖ¹æ½ç¤Î¾ì¹ç¤Ï¡¢¿·¤·¤¤µ»ö¤¬ºÇ½é¤ÎÊý¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë +.j ($HTML_INDEX_REVERSE_ORDER) +# value: 1/0 +AUTO_HTML_GEN: +HTML_THREAD: 1 +HTML_INDEX_REVERSE_ORDER: 1 + +.j HTML²½¤µ¤ì¤¿µ»ö¤ò¤Ä¤¯¤ë¾ì½ê +.j WWW¤Ç¸ø³«¤¹¤ë»þ¤Ï¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥ê¥ó¥¯¤ò¤Ï¤ë +# value: directory string +HTML_DIR: htdocs + +.j ¸Å¤¤HTML²½¤µ¤ì¤¿µ»ö¤ò¾Ã¤¹¤«¡© (¾Ã¤µ¤Ê¤¤¤Î¤¬¥Ç¥Õ¥©¡¼¥ë¥È) +# options: Please see doc/tutorial for the details. +# value: number +HTML_EXPIRE_LIMIT: + +.j +# value: string +HTML_INDEX_TITLE: + +.j ¥¥ã¥Ã¥·¥å +# value: filename string +HTML_DATA_CACHE: +HTML_DATA_THREAD: + +.j *.html ¤ÎºÝ¤Î¥Õ¥£¥ë¥¿ +HTML_OUTPUT_FILTER: + +.j ¥¹¥¿¥¤¥ë¥·¡¼¥È¤Î̾Á° +# HTML 4.0; example: "fml.css" +# value: filename string +HTML_STYLESHEET_BASENAME: + +.j ¥¹¥ì¥Ã¥ÉÀ¸À®¤Î¥¢¥ë¥´¥ê¥º¥à»ØÄê +# value: default / prefer-in-reply-to +HTML_THREAD_REF_TYPE: prefer-in-reply-to + +.j ¥¹¥ì¥Ã¥É¤Î½çÈÖ¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ïµ»ö¤Î½çÈÖÄ̤ê(¾å¤ÎÊý¤¬²áµî) +.j reverse-number ¤Ë¤¹¤ë¤È¾å¤ÎÊý¤¬°ìÈֺǶá¤Î¤â¤Î +# value: "" / reverse-number +HTML_THREAD_SORT_TYPE: + +.j htdocs/¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê/html¥Õ¥¡¥¤¥ë ¤Î¤è¤¦¤Ê¹½Â¤¤Ë¤Ê¤ë +.j ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Îñ°Ì +.j Îã: +.j 100Ä̤ǣ±¥Ç¥£¥ì¥¯¥È¥ê +.j °ìÆü¤´¤È +# value: number / day / week / month / infinite +HTML_INDEX_UNIT: day + +.j ¥¹¥ì¥Ã¥É¤Î¥¤¥ó¥Ç¥ó¥È¤Î¥¹¥¿¥¤¥ë +# value: "" / UL +HTML_INDENT_STYLE: UL + +.j ²èÁü¤Î½èÍý +.j <IMAGE SRC=kenken.jpg> +.j <A HREF=kenken.jpg> +# image file embedding style +# value: A / IMAGE +HTML_MULTIPART_IMAGE_REF_TYPE: + +.j HTML¥Õ¥¡¥¤¥ë¤Ø¤Îumask +# html file umask +# value: "" / umask +HTML_DEFAULT_UMASK: +HTML_WRITE_UMASK: + + +# ### Section: Interface to other Services (http,ftp,gopher,www) ### +.j Section::Services ¾¤Î¥µ¡¼¥Ó¥¹¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ +.j +.j ̾Á°¤ÎÄ̤ê:-) +.j +# Please see doc/tutorial for the details. +# *_DIR value: directory string +# *_FILE value: filename string +# *_SERVER value: string +# *_PORT value: number +FTPMAIL_SERVER: +FTP_DIR: +FTP_HELP_FILE: +DEFAULT_GOPHER_PORT: +DEFAULT_GOPHER_SERVER: +DEFAULT_HTML_FIELD: +DEFAULT_HTTP_PORT: +DEFAULT_HTTP_SERVER: + +.j whois ¥Ç¡¼¥¿¥Ù¡¼¥¹ +.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¥í¡¼¥«¥ëDISK¾å¤Ë¤¢¤ë +.j -h host ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤ë¤È¾¤Îwhois¤ØÊ¹¤¤Ë¤¤¤¯ +.j +.j XXX ¤¿¤Ö¤óº£»þwhois¥µ¡¼¥Ð¤Ê¤ó¤Æ»È¤Ã¤Æ¤Ê¤¤¤È»×¤¦;-) +.j +# "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. +# +.j whois ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦(default »È¤ï¤Ê¤¤) +# value: 1/0 +USE_WHOIS: + +.j whois server¤Ø¤Î¥ê¥ì¡¼¤¹¤ë¤¬¥Ç¥Õ¥©¡¼¥ë¥È¤Ê¤é¤½¤Î¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾ +# value: string +DEFAULT_WHOIS_SERVER: + +.j ¥í¡¼¥«¥ë¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë̾ +# value: filename string +WHOIS_DB: $VARDB_DIR/whoisdb + +.j ¥Ø¥ë¥× +WHOIS_HELP_FILE: + +.j whois database¤ÏÆüËܸìÊÑ´¹¤·¤Æ¤ß¤ë¤«¡©¤¹¤ë¤¬¥Ç¥Õ¥©¡¼¥ë¥È +# do Japanese conversion or not? for the result from whois server +# value: 1/0 +WHOIS_JCODE_P: 1 + + +##################################################################### +# ### Section: Architecture Dependence ### +.j Section::OS ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à + +.j ¥Û¥¹¥È¤Î¥¿¥¤¥× "CPU¤È¥á¡¼¥«¡¼Ì¾¤ÈOS" +.j GNU autoconf ¤Î config.guess ¤¬¿ä¬¤·¤¿ÃÍ +# cpu-type manufacturer operating-system by GNU config.guess ("makefml") +# value: string +CPU_TYPE_MANUFACTURER_OS: + +.j struct sockaddr +.j ËÜÍèOS°Í¸¡£ makefml¤¬¿ä¬¤·¤Æ¤¯¤ì¤ë +# struct sockaddr +# value: string +STRUCT_SOCKADDR: S n a4 x8 + +.j flock(2) ¥Ñ¥é¥á¡¼¥¿ +.j ËÜÍèOS°Í¸ +# flock system call; please see "/usr/include/sys/file.h" +# value: number +LOCK_SH: 1 +LOCK_EX: 2 +LOCK_NB: 4 +LOCK_UN: 8 + +.j ¥Û¥¹¥È¤ÏSYSV·Ï¤ÎOS¤À¤È»×¤¨¤Èfml¤Ë¶µ¤¨¹þ¤à +.j makefml¤¬¿ä¬¤Ë¼ºÇÔ¤·¤¿¤È¤¤Ë»È¤¦¤À¤í¤¦ +# solaris 2 compatible (for not-automatic-checked OS's ;-) +# value: 1/0 +COMPAT_SOLARIS2: + +.j ioctl(2) +.j fmlÉí°¤Îcron¤¬»È¤¦¤¯¤é¤¤¤Ê¤Î¤ÇÉáÄ̤ϴط¸¤Ê¤¤ +# we can emulate daemon(3) ? +# value: 1/0 +NOT_USE_TIOCNOTTY: + +.j $CPU_TYPE_MANUFACTURER_OS ¤Ë°Í¸¤¹¤ë +.j UNIX ¤Ê¤é1¤½¤ì°Ê³°¤Ï0 +# In Unix, always yes set 1 in &SetDefaults; +# value: 1/0 +HAS_GETPWUID: +HAS_GETPWGID: +HAS_ALARM: + +.j ¥×¥í¥°¥é¥à¤Î¥Ñ¥¹Ì¾ +.j &path¤Ï cf/config ¤¬¼«Æ°Åª¤ËÊä´Ö¤¹¤ë +# programs which may be used in the fml library +# these are automatically set by "makefml" +# value: filename string +SENDMAIL: &path(sendmail) +TAR: &path(tar) cf - +UUENCODE: &path(uuencode) +COMPRESS: &path(gzip) -c +ZCAT: &path(gzcat:zcat:gzip\s-cd) +LHA: &path(lha) +ISH: &path(ish) +ZIP: &path(zip) +PGP: &path(pgp) +RCS: &path(rcs) +CI: &path(ci) +BASE64_DECODE: +BASE64_ENCODE: +MD5: &path(md5:md5sum) + + +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, $COMMAND_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 +# +# ## 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 diff --git a/gnu/dist/fml4/cf/README b/gnu/dist/fml4/cf/README new file mode 100644 index 00000000..0d99348b --- /dev/null +++ b/gnu/dist/fml4/cf/README @@ -0,0 +1,15 @@ +The scripts and configurations under cf/ is the base of fml configurations. + +* fml (after fml 2.2.1) defines available values for each variable. + We use "# value: xxx" format in cf/MANIFEST, and the available values + follows: + + # value: directory string + # value: filename string + # value: 1/0 + # value: number + # value: string + # value: regexp string + # value: perl statement + +$Id: README,v 1.2 2000/10/28 14:37:42 fukachan Exp $ diff --git a/gnu/dist/fml4/cf/compat.ignore b/gnu/dist/fml4/cf/compat.ignore new file mode 100644 index 00000000..959a5687 --- /dev/null +++ b/gnu/dist/fml4/cf/compat.ignore @@ -0,0 +1,16 @@ +BRACKET +USE_FLOCK +USE_ORIGINAL_MESSAGE_ID +ML_MEMBER_CHECK +AUTO_REGISTERED_UNDELIVER_P +ERRORS_TO +REJECT_ADDR +SKIP_FIELDS +SENDMAIL +COMMAND_SYNTAX_EXTENSION +PROHIBIT_COMMAND_FOR_STRANGER +NEWSYSLOG_MAX +WHOIS_JCODE_P +CRON_NOTIFY +REMOTE_ADMINISTRATION_REQUIRE_PASSWORD +CHECK_MESSAGE_ID diff --git a/gnu/dist/fml4/cf/config b/gnu/dist/fml4/cf/config new file mode 100755 index 00000000..889399d2 --- /dev/null +++ b/gnu/dist/fml4/cf/config @@ -0,0 +1,807 @@ +#!/usr/local/bin/perl +#-*- perl -*- +# +# Copyright (C) 1993-1998 Ken'ichi Fukamachi +# All rights reserved. +# 1993-1996 fukachan@phys.titech.ac.jp +# 1996-1998 fukachan@sapporo.iij.ad.jp +# +# FML is free software; you can redistribute it and/or modify +# it under the terms of GNU General Public License. +# See the file COPYING for more details. +# +# $Id: config,v 2.10 2003/01/15 16:00:52 fukachan Exp $ + + +# Init; +$ERROR_LOG = "etc/motd.error"; +unlink $ERROR_LOG if -f $ERROR_LOG; + +require 'getopts.pl'; +&Getopts("m:hdDr:csnfrFiI:v"); + +$no_dns = $opt_n; +$debug = $opt_d; +$debug2 = $opt_D; +$compat = $opt_c; +$reverse = $opt_r; +$install = $opt_i; +$verbose = $rv'verbose = 1 if $opt_v; #'; +$file_substitute = $opt_F; + +############################################################################# + + + +$HEADER = q%# -*-Perl-*- +# +# FML Configuration File +# +# Copyright (C) 1993-2000 Ken'ichi Fukamachi +# All rights reserved. +# 1993-1996 fukachan@phys.titech.ac.jp +# 1996-2000 fukachan@sapporo.iij.ad.jp +# +# FML is free software; you can redistribute it and/or modify +# it under the terms of GNU General Public License. +# See the file COPYING for more details. +# +%; + +&SetDefaults($opt_m); +&SetIgnoredFields; + +if ($opt_r) { + &reverse($opt_r); +} +elsif ($opt_c) { + &SetIgnoredFields_Compat($opt_I); + &compat_output; +} +elsif ($opt_s) { + &show_entry; +} +elsif ($opt_f) { + &FixEnv; +} +else { + &readfile(@ARGV) unless $install; + &output; +} + + +exit 0; +######################################################################## + +sub SetIgnoredFields +{ + @Ignore = (PORT,TAR,UUENCODE,COMPRESS,ZCAT,HOST,LHA,ISH, + 'MAIL_LIST', ML_FN, MAINTAINER, XML, + 'PRECEDENCE', 'PROC_GEN'); + + for (@Ignore) { + $skip_key .= $skip_key ? "|$_" : $_; + } +} + + +sub SetIgnoredFields_Compat +{ + local($file) = @_; + local(@ignore); + + ($file && -f $file) || (die "cannot open $file\n"); + + if (open(F, $file)) { + while (<F>) { + chop; + next if /^\s*$/; + push(@ignore, $_); + } + close(F); + } + else { + @ignore = (ML_MEMBER_CHECK,AUTO_REGISTERED_UNDELIVER_P, + ERRORS_TO,REJECT_ADDR,SKIP_FIELDS,SENDMAIL, + COMMAND_SYNTAX_EXTENSION,COMMAND_CHECK_LIMIT, + GUIDE_CHECK_LIMIT,PROHIBIT_COMMAND_FOR_STRANGER, + NEWSYSLOG_MAX,WHOIS_JCODE_P,CRON_NOTIFY, + REMOTE_ADMINISTRATION_REQUIRE_PASSWORD); + } + + for (@ignore) { $skip_key .= $skip_key ? "|$_" : $_;} +} + + +sub readfile +{ + local($file) = @_; + local(@local_order); + + ($file && open(F, $file)) || die "cannot open $file"; + + while (<F>) { + /^LOCAL_CONFIG/ && ($local_config = 1) && next; + + if ($local_config) { + $LOCAL .= $_; + } + else { + next if /^\#/o; # skip "^# line" outside the LOCAL_... + s/^\$//; # strip '$' of "$VARIABLE" + + if (/(\S+)\s+(.*)/) { # VARIABLE VALUE + local($key, $str) = ($1, $2); + $key =~ s/:$//; + + push(@local_order, $key); + + # SPECIAL FUNCTIONS + if ($str =~ /^&path\((\S+)\)(.*)/) { + local($opt) = $2; + eval("\$str = &search_path($1);"); + $str = "$str$opt"; + } + + $str =~ s/@/\\@/g; + while ($str =~ s/\\\\@/\\@/g) { 1;} + + # special handling of timezone + if ($key eq 'TZone' || + $key eq 'TZONE_DST' || + $key eq 'BRACKET') { + $str = "\"$str\""; # enforce "string" sytanx. + } + else { + $str = ($str =~ /^(\-\d+|\d+)$/) ? $str : "\"$str\""; + } + + # print STDERR + # "Overwrite $key as $str\n\t(original $value{$key})\n"; + $value{$key} = $str; + $rewritten{$key} = 1; + } + } + } + + close(F); + + # RESET + if ($file_substitute) { @order = @local_order;} + @CFDefiend = @local_order; +} + + +sub show_entry +{ + for $k (sort keys %value) { + next if $k =~ /^INFO:/; + next if $k =~ /^LOCAL_/; + printf "%-30s\t%s\n", $k, $value{$k}; + printf "%s\n\n", $comment{$k}; + } + + $k = "LOCAL_CONFIG"; + printf "%-30s\n%s\n", $k, $value{$k}; +} + + +sub compat_output +{ + print $HEADER; + + foreach $key (@order) { + next if $key eq 'debug'; + + if ($value{$key} eq "\"\"" || + $value{$key} eq "''" || + $value{$key} eq "0") { + next ; + } + + if ($key eq 'LOCAL_CONFIG') { + print "\n\#\#\#LOCAL_CONFIG\n"; + print $value{"LOCAL_CONFIG"}; + } + elsif ($key !~ /^INFO:/ && + (! ($value{$key} eq "0" || $value{$key} eq "\"\"")) + ) { # non-nil variables + + next if $key =~ /$skip_key/; + + printf "%-20s || (%s = %s);\n", "\$$key", "\$$key", $value{$key}; + } + } + + print "\n1;\n"; +} + + +sub output +{ + local($cf); # comment out flag; + + print $HEADER; + + foreach $key (@order) { + #print STDERR "key\t$key => $value{$key}\n"; + + undef $cf; + undef $ncr; + undef $comment; + + next if $key eq "_SKIP_LINE_" && $prev_key eq "_SKIP_LINE_"; + $prev_key = $key; + + if ($key eq "_SKIP_LINE_") { + print "\n"; + next; + } + + # here may be overwritten! + # patched by racsho@cpdc.canon.co.jp (96/11/14) + if (!$install && !$rewritten{$key}) { + $cf = '# '; + } + + # dependent on keys in "cf" + if (($key ne 'LOCAL_CONFIG') && (! $rewritten{$key})) { + local($xkey); + for $xkey (@CFDefiend) { + next if $xkey =~ /^_/; + next if $xkey =~ /^LOCAL_CONFIG/; + + if ($value{$key} =~ /\$${xkey}/) { + printf STDERR " %-25s depends %s\n", + $key, $xkey if $debug; + undef $cf; + } + } + } + + #print STDERR "[$cf]$key\t$value{$key}\n"; + + if ($key =~ /^INFO:/) { print "\n\n\n";} + + if ($_ = $comment{$key}) { $ncr = tr/\n/\n/; $add_n++;} + + if ($ncr <= 1) { + $s = sprintf("%-30s = %s; %s\n", + "${cf}\$${key}", $value{$key}, $_); + $s = length($s); + if ($s < 80) { $comment = "$_"; undef $add_n;} + + } + + if ($_ && (! $comment)) { + # add \n? + # $_ .= "\n"; + # while (s/\n\n$/\n/) {;} + + print $_; +## print "\n"; # null line after the comments + } + + if ($key eq "LOCAL_CONFIG") { + print "\n"; + print ('#' x 70); print "\n"; + print "\# \#\#\# Section: LOCAL CONFIG \#\#\#\n"; + print $value{$key}; + print "\n"; + } + elsif ($key !~ /^INFO:/) { +# printf "%-30s = %s;", "\$$key", $value{$key}; + printf "%-30s = %s;", "${cf}\$$key", $value{$key}; + print " $comment" if $comment; + print "\n"; +# print "\n" if $add_n; # cf version 3; not add "\n"; + } + } + + + ##### LOCAL CONFIG ##### + if ($LOCAL) { + print "\n\n\n"; + print ('#' x 35); print "\n"; + print "\#\ LOCAL CONFIG YOU CONFIGURED\n"; + # print ('#' x 35); print "\n"; + print $LOCAL; + } + + print "\n1;\n"; + + # fml-support: 04205; Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp> + return if $file_substitute; + + for (keys %value) { + print STDERR "WARNING: $ARGV[0]: invalid keyword \`$_\' (ignored)\n" + unless $OrderHash{$_}; + } +} + + +sub DNS +{ + if ($no_dns) { + print STDERR "No DNS Reconfigure\n"; + $FQDN = 'aoi.domain.uja'; + $DOMAINNAME = 'domain.uja'; + return; + } + + # fml 4.0 + local($system) = $0; + $system =~ s/config$//; + $system .= ($ENV{'OS'} =~ /Windows_NT/) ? "..\\_fml\\" : "../.fml/"; + $system .= 'system'; + if (-f $system) { + print STDERR "use system = $system\n" if $debug0; + package __system; + eval require $main::system; + $main::HOSTNAME = $main::FQDN = $FQDN; + $main::DOMAINNAME = $DOMAIN; + package main; + if ($@) { + print STDERR $@; + } + else { + return ; + } + } + + print STDERR "Verifying DNS...\n" if $debug; + + local(@n, $hostname, $list); + chop($hostname = `hostname`); # beth or beth.domain may be possible + $HOSTNAME = $FQDN = $hostname; + @n = (gethostbyname($hostname))[0,1]; $list .= " @n "; + @n = split(/\./, $hostname); $hostname = $n[0]; # beth.domain -> beth + @n = (gethostbyname($hostname))[0,1]; $list .= " @n "; + + foreach (split(/\s+/, $list)) { /^$hostname\.\w+/ && ($FQDN = $_);} + $FQDN =~ s/\.$//; # for e.g. NWS3865 + $DOMAINNAME = $FQDN; + $DOMAINNAME =~ s/^$hostname\.//; + + printf STDERR "%-10s %s\n", "HOSTNAME", $HOSTNAME if $debug; + printf STDERR "%-10s %s\n", "DOMAINNAME", $DOMAINNAME if $debug; + printf STDERR "%-10s %s\n", "FQDN", $FQDN if $debug; +} + +sub host { $HOSTNAME;} +sub dn { $DOMAINNAME;} +sub fqdn { $FQDN;} + +sub SetDefaults +{ + local($file) = @_; + local($key, $local_config); + + foreach ($file, './cf/MANIFEST', './MANIFEST') { + -f $_ && ($file = $_, last); + } + + open(MANIFEST, $file) || die "CANNOT OPEN MANIFEST[$file]\n"; + select(MANIFEST); $| = 1; select(STDOUT); + + print STDERR "MANIFEST: $file\n\n" if $debug2; + + &DNS; + + while (<MANIFEST>) { + next if /^\#C\s+/i; + + if (/MANIFEST,v ([\d\.]+) /) { + $Manifest_Version = $1; + } + + if (/\# \#\#\# Section:\s*(.*)\s*\#\#\#\s*$/) { + $Index .= "\# $1\n"; + } + + if (/^\s*$/) { + undef $comment_key; + push(@order, "_SKIP_LINE_"); + } + + undef $local_config if /^(INFO|FML_CONFIG|LOCAL_CONFIG):/; + + + if (/^LOCAL_CONFIG/) { + $local_config = 1; + push(@order, "LOCAL_CONFIG"); + next; + } + + if ($local_config) { + $value{"LOCAL_CONFIG"} .= $_; + next; + } + elsif (/^(\S+):\s*(.*)/) { # VARIABLE NAME: DEFAULT VALUE + $key = $1; + $str = $2; + $attach++; + + # keyword + print STDERR "define \$comment_key = $key;\n" if $verbose; + $comment_key = $key; + + + if ($str =~ /^&path\((\S+)\)(.*)/) { + $str = &search_path($1); + $FixError{$key} = 1 unless $str; + $str = $str . $2; + + printf STDERR "%-10s %s\n", $key, $str if $opt_d; + $FixPath{$key} = $str; + } + + if ($str =~ /^&fix:(\S+)\s+(\S+)/) { + $f = $1; + $str = $org = $2; + $str = &$f($str); + + local($fqdn, $dn, $hostname) = &CheckDNS; + $FixDNS{'FQDN'} = $fqdn; + $FixDNS{'DOMAINNAME'}= $dn; + $FixError{$key} = 1 unless $str; + } + + if ($str =~ /^&is_unix/) { + $str = ($ENV{'OS'} =~ /Windows_NT/) ? 0 : 1; + } + + if ($key eq 'INFO') { + $INFO++; + $key = "INFO:$INFO"; + } + + push(@order, $key); + + $str =~ s/@/\\@/g; + while ($str =~ s/\\\\@/\\@/g) { 1;} + $value{$key} = ($str =~ /^\d+$/) ? $str : "\"$str\""; + + ## XXX 3.0B bug? + ## It is needed to avoid default_config.ph overwrites + ## config.ph definitions. For example $CONTROL_ADDRESS + ## in default_config.ph overwrites config.ph commnted-out + ## '# $CONTROL_ADDRESS' in config.ph ??? + ## If $install mode (cf/config -i), WE SHOULD NOT + ## load value like acct@domain form to default_config.ph. + ## or SHOULD MODIFY cf/MANIFEST ??? + # if ($install) { + # if ($str =~ /\@/) { $value{$key} = "''";} + # } + + # next; # not next for comments + } + + # comments buffer supported for version 3 + if ($comment_key) { + if ($comment_buf) { + #print STDERR "$comment_key < allcated \$comment_buf\n"; + #print STDERR "\$comment_buf line=($_)\n"; + + $comment{$comment_key} .= "$comment_buf"; + undef $comment_buf; + } + + /^\s*(\#.*)/ && ($comment{$comment_key} .= "$1\n"); + } + else { + print STDERR "alloc \$comment_buf($_)\n" if $_ && $verbose; + /^\s*(\#.*)/ && ($comment_buf .= "$1\n"); + } + + } # while; + + close(MANIFEST); + + # making the hash + for (@order) { $OrderHash{$_} = 1;} + + print STDERR "SetDefaults Done.\n\n" if $verbose; + + $HEADER .= "\# Section Index (cf/MANIFEST $Manifest_Version)\n$Index\n"; +} + + +sub CheckDNS +{ + local($fqdn, @fqdn, $hostname, $dn); + + chop($fqdn = `hostname`); + + if ($fqdn =~ /(\S+)\.(\S+)/) { # hostname gives FQDN + @fqdn = split(/\./, $fqdn); + $hostname = shift @fqdn; + $dn = join('.', @fqdn); + } + else { + $hostname = $fqdn; + local($name, $aliases, @opt) = gethostbyname($fqdn); + local($e) = "$name $aliases "; + + if ($e =~ /$hostname\.([\S+\.]+)\. / || + $e =~ /$hostname\.([\S+\.]+) /) { + $hostname = $hostname; + $dn = $1; + $fqdn = "$hostname\.$dn"; + } + } + + ($fqdn, $dn, $hostname); +} + + +sub FixEnv +{ + while (<>) { + chop; + + if (/^\$(\S+)(\s*=\s*)\"(.*)\"(;.*)/) { # VARIABLE NAME: DEFAULT VALUE + $key = $1; + $eq = $2; + $str = $3; + $pad = $4; + + if ($FixError{$key}) { + printf STDERR "Hmm... %-10s %s\n", $key, "NOT FOUND"; + printf STDERR " Please fix it manually if you need\n"; + &ErrorLog("\t$key NOT FOUND"); + } + + if ($newstr = ($FixPath{$key} || $FixDNS{$key})) { + if ($newstr ne $str) { + if ($newstr) { + printf STDERR "Fixing %-10s => %s\n", $key, $newstr; + } + + $_ = "\$$key$eq\"$newstr\"$pad"; + } + else { + printf STDERR "O.K. %-10s %s\n", $key, $str; + } + } + } + + print "$_\n"; + } +} + + +sub search_path +{ + local($f) = @_; + local($path) = $ENV{'PATH'}; + local($prog, $dir, $p); + + for $prog (split(/:/, $f)) { + ($p) = split(/\\s/, $prog); + $prog =~ s#\\s# #g; + + for $dir (split(/:/, $path)) { + if (-f "$dir/$p") { return "$dir/$prog";} + } + + print STDERR "search_prog; $prog is not found\n" if $debug; + } + + ""; +} + + +sub ErrorLog +{ + print STDERR "open(APP, >> $motd) < @_\n"; + + local($motd) = $ERROR_LOG || "etc/motd.error"; + open(APP, ">> $motd") || retunr; + select(APP); $| = 1; select(STDOUT); + print APP "@_\n"; + close(APP); + + 1; +} + + + +package rv; + + +sub main'reverse +{ + local($file) = @_; + + # &PreScanConfigPH($file); + + ######################################################################## + # TRICKY; (but why?) + for (DIR, CACHE_DIR, FTP_DIR) { + eval "\$$_ = '\$${_}';\n"; + } + + print STDERR "=== do $file in 'rv' Name Space ===\n" if $verbose; + + do $file; + + for (DIR, CACHE_DIR, FTP_DIR) { + eval "undef \$${_};"; + } + + undef $rv'RM; undef $rv'CP; undef $rv'LOCKFILE; undef $rv'LOCKDIR; + ######################################################################## + + + + if ($] =~ /5.\d\d\d/) { + *stab = *{"rv::"}; + } + else { + (*stab) = eval("*_rv"); + } + + while (($key, $val) = each(%stab)) { + if ($verbose) { + print STDERR "\n".('-'x50); + print STDERR "\nTRY\t$key\n"; + print STDERR "\t$key != [A-Z0-9_]\n" if $key !~ /^[A-Z0-9\_]+$/; + } + + next if $key !~ /^[A-Z0-9\_]+$/; + + local(*entry) = $val; + + if ($verbose) { + if (defined $entry) { + print STDERR "GO \$\t$key\n"; + } + elsif (defined @entry) { + print STDERR "GO \@\t$key\n"; + } + elsif (defined %entry) { + print STDERR "GO \%\t$key\n"; + } + elsif (defined &entry) { + print STDERR "GO \&\t$key\n"; + } + else { + print STDERR "GO !=\t$key\n"; + } + } + + if (defined($entry)) { + print STDERR " ? $entry == $main'value{$key}\n" if $verbose;#'; + + next if "$entry" eq $main'value{$key}; + next if "\"$entry\"" eq $main'value{$key}; + + print STDERR "\n\tDIFF $key\n\n" if $verbose; + + if ($key =~ /HOOK/) { + if ($entry !~ /\#/) { + $OUT'HOOK .= "\$$key = q\#$entry\#;\n"; #'; + } + elsif ($entry !~ /\%/) { + $OUT'HOOK .= "\$$key = q%$entry%;\n"; #'; + } + elsif ($entry !~ /\@/) { + $OUT'HOOK .= "\$$key = q@$entry@;\n"; #'; + } + else { + print STDERR "CONVERSION ERROR: "; + print STDERR "plaese define [$key]:\n$entry;\n"; + } + } + else { + $entry =~ s/\012/\\n/g; + $value{$key} = $entry; + $other_value{$key} = $entry; + } + + next; + } + + if (defined @entry) { + undef $num; + $OUT'LOCAL .= "\@$key = ("; + foreach (@entry) { + $OUT'LOCAL .= "," if $num++ > 0; + $OUT'LOCAL .= "'$_'"; + } + $OUT'LOCAL .= ");\n"; + + next; + } + + # Is there an associative array that isn't the one + # we're currently iterating through? + + if ($key ne "_$package" && defined %entry) { + $OUT'LOCAL .= "\%$key = (\n"; #'; + foreach $key (sort keys(%entry)) { + $OUT'LOCAL .= "'$key', '". $entry{$key} ."',\n";#'; + } + $OUT'LOCAL .= ");\n"; #'; + + next; + } + + $OUT'UNMATCH .= "$key ;\n"; + + } # %stab; + + + + for $key (@main'order) { + if ($key =~ /INFO:/) { + print "\n" if $match; + undef $match; + next; + } + + if (defined $value{$key}) { + printf "%-20s %s\n", "$key", $value{$key}; + $match++; + } + } + + undef $buffer; + + for (keys %other_value) { + $v = $other_value{$_}; + next if $main'OrderHash{$_}; #'; + $buffer .= sprintf("\$%-20s = \"%s\";\n", $_, $v); + } + + + print "\n\nLOCAL_CONFIG\n\n"; + print $OUT'HOOK; + print "\n"; + print $OUT'LOCAL; + + + print "\n"; + print "\#\#\# cf/config (reverse-mode) generates below \#\#\#\n"; + print "\#\#\# NOT DEFINED ENTRIES in cf/MANIFEST ARE HERE \#\#\#\n"; + print $buffer; +} + + +package dumpvar; + +sub rv'PreScanConfigPH #'; +{ + local($file) = @_; + + do $file; + + if ($] =~ /5.\d\d\d/) { + *stab = *{"dumpvar::"}; + } + else { + (*stab) = eval("*_dumpvar"); + } + + while (($key,$val) = each(%stab)) { + next if @vars && !grep($key eq $_,@vars); + local(*entry) = $val; + + if (defined $entry) { + eval("$rv'\$$key = 1; undef $rv'\$$key"); + } + elsif (defined @entry) { + eval("$rv'\@$key = 1; undef $rv'\@$key"); + } + elsif ($key ne "_$package" && $key ne "_DB" && defined %entry) { + eval("$rv'\%$key = 1; undef $rv'\%$key"); + } + else { + print STDERR "not match $key\n" if $verbose; + } + } +} + + +1; |
