#!/usr/local/bin/perl # -*-Perl-*- # # FML Configuration File # # 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. # # Section Index (cf/MANIFEST 1.44.2.2) # DNS and Other Fundamental (CF Version, debug, Language) # Mailing List Policy (for Post, Commands), Maintainer # Directory # Manual Registration # Automatic Registration # Confirmd # Remote Administration # Moderations; moderators check posted articles # Security # Header Customization # Commands, Command Traps, File Operations (e.g. mget) # Digest/Matome Okuri Configurations # Other Files for Configurations and Logs # SMTP and Delivery # MISC # Expire and Archive # Library Commands # Html Configurations # Interface to other Services (http,ftp,gopher,www) # Architecture Dependence ##################################################################### # ### Section: DNS and Other Fundamental (CF Version, debug, Language) ### # config.ph configuration version $CFVersion = "5.0"; # global debug option. if non-nil, debug mode. # In debug mode, NOT do distribution # 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" # value: Japanese/English $LANGUAGE = "Japanese"; # &Mesg() tries to translate thie language. $MESSAGE_LANGUAGE = "Japanese"; # ## Sub Section: 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 # # value: string $DOMAINNAME = "my-machine.com"; $FQDN = "speedking.my-machine.com"; ##################################################################### # ### 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. # # value: string $MAIL_LIST = "tcn-ml\@$DOMAINNAME"; $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. # # value: string $CONTROL_ADDRESS = "tcn-ml-ctl\@$DOMAINNAME"; $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". # value: 1/0 $MAIL_LIST_ACCEPT_COMMAND = 0; # ## Sub Section: Maintainer ## # $MAINTAINER != $MAIL_LIST IS REQUIRED AGAINST MAIL LOOP # value: string $MAINTAINER = "tcn-ml-admin\@$DOMAINNAME"; # $MAINTAINER_SIGNATURE = ""; # ## Sub Section: ML_FN ## # We expand # To: $MAIL_LIST $ML_FN # => # To: Elena@fml.org (Elena Lolabrigita ML) # value: string $ML_FN = "(tcn-ml ML)"; ##################################################################### # ### Section: Directory ### # We use fully pathed directory name => $FP_SPOOL_DIR(= $DIR/$SPOOL_DIR) # and relative path $SPOOL_DIR (e.g. spool) # article spool directory # value: directory string $SPOOL_DIR = "spool"; # tmp, after chdir, under DIR # value: directory string $TMP_DIR = "tmp"; # LOG is /var/log (4.4BSD style) # value: directory string $VAR_DIR = "var"; $VARLOG_DIR = "var/log"; $VARRUN_DIR = "var/run"; $VARDB_DIR = "var/db"; ##################################################################### # ### Section: Manual Registration ### # only support 'confirmation' or 'forward_to_admin' # I call this "5 way hand shake". # value: confirmation/forward_to_admin $MANUAL_REGISTRATION_TYPE = "confirmation"; # value: directory string $MANUAL_REGISTRATION_CONFIRMATION_FILE = "$DIR/confirm.msub"; ##################################################################### # ### Section: Automatic Registration ### # If at least either REJECT_{POST,COMMAND}_HANDLER is "auto_subscribe" # or "auto_regist", # PLEASE SELECT THE TYPE OF AUTOMATIC REGISTRATION # value: confirmation/subject/body/no-keywrod $AUTO_REGISTRATION_TYPE = "confirmation"; # $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD # value: string $AUTO_REGISTRATION_KEYWORD = "subscribe"; # when auto-registered, # we apply $AUTO_REGISTRATION_DEFAULT_MODE e.g. "m=3mp s=1" to the address. # value: string # $AUTO_REGISTRATION_DEFAULT_MODE = ""; # "confirmation" (default) mode configurations # please see doc/op for the detail of "confirmation" # value: string # $CONFIRMATION_ADDRESS = ""; $CONFIRMATION_SUBSCRIBE = "subscribe"; $CONFIRMATION_KEYWORD = "confirm"; # $CONFIRMATION_WELCOME_STATEMENT = ""; # explanation of confirmation # 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 = ""; # default keyword for trap # 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 # value: filename string $WELCOME_FILE = "$DIR/welcome"; # value: string $WELCOME_STATEMENT = "Welcome to our $ML_FN\n You are added automatically"; # 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. # 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, 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. # # value: 1/0 $REMOTE_ADMINISTRATION = ""; # TYPE is address, crypt, md5 or pgp. # FYI: $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD <=> "crypt" # value: crypt/address/md5/pgp $REMOTE_ADMINISTRATION_AUTH_TYPE = "crypt"; # members who can use admin commands for the type "address" # 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 # value: filename string $PASSWD_FILE = "$DIR/etc/passwd"; # "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; # "admin log" is "tail -100 log" in default # value: number $ADMIN_LOG_DEFAULT_LINE_LIMIT = 100; # PGP PATH # value: filename string $PGP_PATH = "$DIR/etc/pgp"; ##################################################################### # ### Section: Moderations; moderators check posted articles ### # If you select "moderator", you can select forwarding type to 1 or 2. # 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". # value: filename string $MODERATOR_MEMBER_LIST = "$DIR/moderators"; # expire not certifield submission to moderated ML # default: 2 weeks # value: number $MODERATOR_EXPIRE_LIMIT = 14; ##################################################################### # ### Section: Security ### # 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"; # list of spammers to be rejected, which corresponds /etc/sendmail.spamlist # value: filename string $REJECT_ADDR_LIST = "$DIR/spamlist"; # DO CHECK UNIX From Loop or not # value: 1/0 # $NOT_USE_UNIX_FROM_LOOP_CHECK = 0; # DO Message-Id: cache and check loops # value: 1/0 $CHECK_MESSAGE_ID = 1; # loop check based on mailbody md5 cksum cache # value: 1/0 # $CHECK_MAILBODY_CKSUM = 0; # Logs the getpeername() # value: 1/0 # $LOG_CONNECTION = 0; # address check levels, which level is the tree depth from the root. # value: number $ADDR_CHECK_MAX = 3; # 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 = ""; $NOTIFY_MAIL_SIZE_OVERFLOW = 1; # value: 1/0 # $ANNOUNCE_MAIL_SIZE_OVERFLOW = 0; # value: 1/0 # 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 = ""; # 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 = ""; # $DISTRIBUTE_FILTER_HOOK = ""; # value: string # $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to # the sender. # value: 1/0 # $FILTER_NOTIFY_REJECTION = ""; # 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 = ""; # reject Japanese "2byes English words" # value: 1/0 # $FILTER_ATTR_REJECT_2BYTES_COMMAND = ""; # 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; # 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 = ""; # 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; # $MTI_WARN_LASTLOG = ""; # value: filename string # 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 (not implemented) # 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 each file size # is limited up to $LOG_MAIL_FILE_SIZE_MAX bytes to save disk. # value: 1/0 # $USE_LOG_MAIL = 0; $LOG_MAIL_DIR = "$VAR_DIR/Mail"; # value: filename string $LOG_MAIL_SEQ = "$LOG_MAIL_DIR/.seq"; $NUM_LOG_MAIL = 100; # value: number $LOG_MAIL_FILE_SIZE_MAX = 2048; # PGP Encrpyted ML # value: 1/0 # $USE_ENCRYPTED_DISTRIBUTION = ""; $ENCRYPTED_DISTRIBUTION_TYPE = "pgp"; # value: pgp ##################################################################### # ### 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 &DEFINE_FIELD_FORCED('Reply-To' , $MAIL_LIST); # # 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 Header, we expand these values to # # $XMLNAME # $XMLCOUNT: sequence-number # # e.g. # X-ML-Name: Elena # X-Mail-Count: 00007 # # value: string $XMLNAME = "X-ML-Name: tcn-ml"; $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/op for the detail # value: (:) / [:] / () / [] / (,) / [,] / () / [] / (ID) / [ID] / "" $SUBJECT_TAG_TYPE = "[:]"; # BRACKET of "Subject: [BRACKET:ID] ..." form # value: string $BRACKET = "tcn-ml"; # 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; # "Free Subject Tag" settings (see doc/op and libtagdef.pl on examples) # value: regexp string # $BRACKET_SEPARATOR = ""; # $SUBJECT_FREE_FORM = ""; # $SUBJECT_FREE_FORM_REGEXP = ""; $SUBJECT_FORM_LONG_ID = -1; # 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 = ""; # $ERRORS_TO = ""; # value: string # Message-Id: use original Message-Id or Server Defined Message-Id ? # value: 1/0 $USE_ORIGINAL_MESSAGE_ID = 1; # Precedence: field; # why "list" is not used ;_; but netbsd.org is "list" # value: string $PRECEDENCE = "bulk"; # 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) # value: 0/1/2 $REWRITE_TO = 0; # 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"; # ## 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; $SKIP_FIELDS = "Return-Receipt-To"; # value: regexp string ##################################################################### # ### Section: Commands, Command Traps, File Operations (e.g. mget) ### # 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; # 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 ## # 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; $GUIDE_CHECK_LIMIT = 3; # value: number $GUIDE_KEYWORD = "guide"; # value: string # 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" commands is required for special exception # value: regexp string $CHADDR_KEYWORD = "chaddr|change\-address|change"; # ## 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; # See doc/op 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 = ""; # sjis conversion in "mget ish" mode. # value: 1/0 # $USE_SJIS_IN_ISH = ""; # RFC1153 configurations; see doc/op for the detail # value: number # $RFC1153_ISSUE = ""; # $RFC1153_VOL = ""; # value: number / string # $RFC1153_SEQUENCE_FILE = ""; # value: filename string # ## 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 = ""; # 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 ### # # $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 = ""; # $MSEND_NOTIFICATION_SUBJECT = ""; # value: string # not require X-ML-Info: in the "mget"; # value: 1/0 # $MSEND_NOT_USE_X_ML_INFO = ""; # 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 ### # cache of loop check # value: filename string $LOG_MESSAGE_ID = "$VARRUN_DIR/msgidcache"; # 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) # 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 REJECT_*_HANDLER is "reject", we return this file to the poster # value: filename string $DENY_FILE = "$DIR/deny"; # $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"; # when -d2 ($debug = 2), logs this file. # 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 ### # # [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). # # value: string $HOST = "localhost"; $PORT = 25; # value: number # 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"; # $NOT_TRACE_SMTP = 0; # value: 1/0 # $TRACE_SMTP_DELAY = ""; # 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 = ""; # ## 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 = ""; # 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 = ""; # $CF_DEF = ""; # value: filename string # 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 = ""; # value: string $OUTGOING_ADDRESS = "tcn-ml-outgoing\@$DOMAINNAME"; # VERPs: Variable Envelope Return Paths. See qmail documents for more details. # $USE_VERP = ""; ##################################################################### # ### Section: MISC ### # ## 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; # 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 ## # 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/op.$language 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 # # value: string $GOOD_BYE_PHRASE = "--$MAIL_LIST, Be Seeing You!"; # $FACE_MARK = ""; $PROC_GEN_INFO = "GenInfo"; # value: function name string # ## 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; $MAX_TIMEOUT = 200; # value: number # ## Sub Section: misc ## # Not spooling (default is "spooling") # 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. 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; # cron configurations for bin/cron.pl NOT system Vixie cron(8) # value: filename string $CRONTAB = "etc/crontab"; $CRON_PIDFILE = "var/run/cron.pid"; $CRON_NOTIFY = 1; # value: 1/0 # 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 # value: 1/0 # $USE_MEMBER_NAME = ""; ##################################################################### # ### Section: Expire and Archive ### # 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 # # value: 1/0 # $USE_EXPIRE = 0; # $EXPIRE_SUMMARY = ""; # 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; $ARCHIVE_UNIT = 100; # value: number $DEFAULT_ARCHIVE_UNIT = 100; $ARCHIVE_DIR = "var/archive"; # value: directory string # "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"; # $INDEX_SHOW_DIRNAME = 0; # value: 1/0 # ### Section: Library Commands ### # 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 \$DIR/actives.bak and \$DIR/members.bak, # 150K = 30*5000 # value: number / (number + K/M) $AMLIST_NEWSYSLOG_LIMIT = "150K"; # ### Section: Html Configurations ### # HTML Mode Configurations (libsynchtml.pl) # Please see doc/op for the details. # AUTO_HTML_GEN == AUTOmatic HTML GENeration # if $AUTO_HTML_GEN, we generte html'ed articles in $DIR/$HTML_DIR # value: 1/0 $AUTO_HTML_GEN = ""; $HTML_THREAD = 1; $HTML_INDEX_REVERSE_ORDER = 1; $HTML_DIR = "htdocs"; # value: directory string # options: Please see doc/op for the details. # value: number # $HTML_EXPIRE_LIMIT = ""; # $HTML_INDEX_TITLE = ""; # value: string # $HTML_DATA_CACHE = ""; # value: filename string # $HTML_DATA_THREAD = ""; # $HTML_OUTPUT_FILTER = ""; # HTML 4.0; example: "fml.css" # value: filename string $HTML_STYLESHEET_BASENAME = ""; # value: default / prefer-in-reply-to $HTML_THREAD_REF_TYPE = "prefer-in-reply-to"; # value: number / day / week / month / infinite $HTML_INDEX_UNIT = "day"; $HTML_INDENT_STYLE = "UL"; # value: "" / 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 other Services (http,ftp,gopher,www) ### # Please see doc/op 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 = ""; # "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 = ""; # $DEFAULT_WHOIS_SERVER = ""; # value: string # 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 = "i686-pc-linux-gnu"; # struct sockaddr # value: string $STRUCT_SOCKADDR = "S n a4 x8"; # flock system call; please see "/usr/include/sys/file.h" # value: number $LOCK_SH = 1; $LOCK_EX = 2; $LOCK_NB = 4; $LOCK_UN = 8; # solaris 2 compatible (for not-automatic-checked OS's ;-) # value: 1/0 # $COMPAT_SOLARIS2 = ""; # we can emulate daemon(3) ? # value: 1/0 # $NOT_USE_TIOCNOTTY = ""; # In Unix, always yes set 1 in &SetDefaults; # value: 1/0 # $HAS_GETPWUID = ""; # $HAS_GETPWGID = ""; # $HAS_ALARM = ""; # programs which may be used in the fml library # these are automatically set by "makefml" # value: filename string # $SENDMAIL = ""; $TAR = "/bin/tar cf -"; $UUENCODE = "/usr/bin/uuencode"; $COMPRESS = "/bin/gzip -c"; $ZCAT = "/bin/zcat"; $LHA = "/usr/bin/lha"; # $ISH = ""; $ZIP = "/usr/bin/zip"; # $PGP = ""; $RCS = "/usr/bin/rcs"; $CI = "/usr/bin/ci"; # $BASE64_DECODE = ""; # $BASE64_ENCODE = ""; $MD5 = "/usr/bin/md5sum"; ###################################################################### # ### Section: LOCAL CONFIG ### # ## Sub Section: Available Hooks ## # You can set customized hooks here. See doc/op'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 ################################### # LOCAL CONFIG YOU CONFIGURED #__MAKEFML_LOCAL_CONFIG__ # configured by ./makefml on Thu, 9 Sep 1999 11:53:54 # *** DO NOT EDIT MANUALLY THIS BLOCK!!! *** #__END_OF_MAKEFML_LOCAL_CONFIG__ # YOU CAN EDIT MANUALLY AFTER HERE. 1;