#DESCRIPTION #.PP # ZMailer 'ZENV' Environment Variables: #.PP # A config file for storing various SITE CONFIG parameters #.PP # These are generic material that DO NOT DEPEND UPON COMPILERS et.al! #.PP # This is generated with autoconfiguration process from SiteConfig.in # file, and the configuration parameters. #.PP # Following paragraph appears to be outdated: #.PP # The standard installation procedure \fBWILL NOT\fR overwrite # the destination \fBZCONFIG\fR file with the new one. # This file contains one parameter that is compiled in the binaries, # and is not overridable with this file, namely the ZCONFIG variable, # alias the final location of the processed result of this # SiteConfig file. # #ZCONFIG # ZCONFIG is the pathname of the configuration file specifying all # the other host-dependent information needed by ZMailer programs. # This file is created from the \fISiteConfig\fR file in the distribution # (the file you are reading right now), and contains variable # assignments in an sh-compatible format. #.PP # Several top-level components of ZMailer do have runtime options # to choose some other path, than compiled-in default for this # (/opt/mail/zmailer.conf). #.PP # Some programs (notably '\fIsendmail\fR(8zm)', and transport agents) # do check for standard UNIX environment variables for overrider of # this value.) # ZCONFIG= /opt/mail/zmailer.conf #MAILBIN # MAILBIN is the directory hierarchy containing all ZMailer binaries. #.PP # Configured as: /opt/mail/bin # MAILBIN= /opt/mail/bin #MAILSHARE # MAILSHARE is the directory hierarchy containing site-wide # configuration files and databases. #.PP # Configured as: /opt/mail # MAILSHARE= /opt/mail #MAILVAR # MAILVAR is the directory that will contain machine-specific # configuration files and databases. #.PP # Configured as: /opt/mail # MAILVAR= /opt/mail #MAILBOX # MAILBOX is the directory containing all the user mailboxes. # This is defaulted inside the \fImailbox\fR(8zm) program # and may be overridden here. #.PP # Configured as: /var/spool/mail # MAILBOX= /var/spool/mail #POSTOFFICE # POSTOFFICE is the directory hierarchy used to manipulate message files, # where runtime activity takes places. #.PP # Configured as: /var/spool/postoffice # POSTOFFICE= /var/spool/postoffice #LOGDIR # LOGDIR is the directory where log files will appear. #.PP # Configured as: /var/log/mail # LOGDIR= /var/log/mail # prefix per autoconfig: prefix= /opt/mail ## MANDIR is the top of the manual directory hierarchy where ## manual pages for the ZMailer programs are installed. ## Usually /usr/man or /local/man. #MANDIR= ${prefix}/man # LIBRARYDIR is the place for storing libzmailer.a, which can be # used to create programs which use Zmailer's zmailer(3) # (aka: mail(3)) -library. LIBRARYDIR= ${exec_prefix}/lib # INCLUDEDIR is the place for storing zmailer.h -- a copy of # include/mail.h and it is used in conjunction with the libzmailer.a .. INCLUDEDIR= ${prefix}/include #INPUTDIRS # INPUTDIRS are alternate directories to receive files # \fBinstead\fR of standard "router" and $ROUTERDIRS set. # #INPUTDIRS=input:input2 #INPUTDIRHASH # When defined, INPUTDIRHASH submits messages immediately into the # 'A' thru 'Z' subdirectory of whatever directory (e.g. see INPUTDIRS). # IF NO SUCH "hash subdirs" EXIST, MESSAGE SUBMISSION WILL FAIL! # (The value must be "1" for this to take effect!) # #INPUTDIRHASH=1 #INPUTNOTIFY # The INPUTNOTIFY defines, where is a socket at which some # pre-router queue processor listens for PF_UNIX/SOCK_DGRAM # messages telling paths to new jobs. #.PP # The injection library informs the router queuing subsystem # of new jobs, and does it with same message as ROUTERNOTIFY= uses. # #INPUTNOTIFY=/var/spool/postoffice/.input.notify #ROUTEROPTIONS # ROUTEROPTIONS are command line options given to the \fIrouter\fR(8zm) # when started from the \fIzmailer\fR(1zm) shell script. #.PP # The default values are "-dWkn 4" # #ROUTEROPTIONS= "-dWkn 4" ROUTEROPTIONS= -dkWn 1 #ROUTERDIRS # Multiple LOWER priorities on message routing can be defined by creating # $POSTOFFICE/ -directories. # Routers process first $POSTOFFICE/router/ -directory, and once it is # empty, files from subsequent dirs. See mail(3) mail_priority # These can be only under the $POSTOFFICE. # ROUTERDIRS=router1:router2:router3:router4 #ROUTERDIRHASH # When defined, ROUTERDIRHASH submits messages immediately into the # 'A' thru 'Z' subdirectory of whatever directory (e.g. see ROUTERDIRS). # IF NO SUCH "hash subdirs" EXIST, MESSAGE SUBMISSION WILL FAIL! # (The value must be "1" for this to take effect!) # #ROUTERDIRHASH=1 #ROUTERNOTIFY # The ROUTERNOTIFY defines, where is a socket at which the router # listens for PF_UNIX/SOCK_DGRAM messages telling paths to new jobs. # The injection library informs the router queuing subsystem of new jobs. # ROUTERNOTIFY=/var/spool/postoffice/.router.notify #SMTPOPTIONS # SMTPOPTIONS are command line options given to the smtpserver when started # from the zmailer shell script. The intent is that if you want non-default # address verification options they can be specified here. The default # value is "-sve". This is also used, when invoking ``sendmail'' with # "-bs" option. # #SMTPOPTIONS= "-l ${LOGDIR}/smtpserver" SMTPOPTIONS= -s strict -h -s ve -l /var/log/mail/smtpserver #ALLOWSOURCEROUTE # VALID ANYMORE ??? # ALLOWSOURCEROUTE (when present) stops the system from ignoring # the old RFC821/822 source routes of type: @a,@b:c@d; By "ignoring" # we mean here that system chops away "@a,@b:" and uses only: c@d # This is done at all input portals; smtpserver, and at sendmail/rmail. # System behaviour is prone to problems in case this is ever enabled! # #ALLOWSOURCEROUTE= #SCHEDULEROPTIONS # SCHEDULEROPTIONS are command line options given to the scheduler when # started from the zmailer shell script. The intent is that if you want # non-default logging options, the can be specified here. The default # value is "" # #SCHEDULEROPTIONS= "-l ${LOGDIR}/scheduler.perflog -S -H" SCHEDULEROPTIONS= -S -H #SCHEDULERDIRHASH # The SCHEDULERDIRHASH is magic thing to tell to the router that it # should move resulting files directly into hash subdir(s) of the # scheduler subsystem, and not only to the main-level. # Existence of this variable also overrides -H option(s) to # the scheduler. Value is the number of -H options. # If these hash subdirectories don't exist, system failure happens! # SYSTEMS WITH LOW LOADS CAN DO WITH VALUE "1", WHILE # SYSTEMS WITH LARGE QUEUES SHOULD DEFINITELY USE VALUE "2" ! # SCHEDULERDIRHASH=2 #SCHEDULERNOTIFY # The SCHEDULERNOTIFY defines, where is a socket at which the scheduler # listens for PF_UNIX/SOCK_DGRAM messages telling paths to new jobs. # The router(s) inform the scheduler of new jobs. # SCHEDULERNOTIFY=/var/spool/postoffice/.scheduler.notify # #.PP # Following few ZM ``environment'' variables are used by the \fIrouter\fR(8zm) # configuration at your site. # #MAILSERVER # MAILSERVER is the hostname of the remote machine where the postoffice is # located. This value is only needed in an environment with distributed file # systems, and if it exists will be used by the mail queue querying program # as the default name of the host to query. It is a way of overriding the # algorithm used by mailq in an NFS environment, or when you are running a # different kind of DFS. Usually undefined or a hostname. # #MAILSERVER= neat.cs #PUNTHOST # PUNTHOST is where mail that is supposed to go to a local address, but # no such address exists, is punted to. # #PUNTHOST= relay.cs #FORCEPUNT # FORCEPUNT is for cases when the local machine under no circumstances # is to store any email locally, but send all such to this given address # (local host is a member on a "cluster" whose message store is at some # other cluster server, and said node handles "local" delivery for all # cluster members... *including* running pipes..) # #FORCEPUNT= mailhost #FORCEPUNT # SMARTHOST is where mail that cannot be resolved or routed is punted to. #.PP # There used to be a variable for this, now a better way is to use 'routes' # database at which you put line: . smtp!smart.host.name # (That is: dot, white-space(s), "smtp!smart.host.name" ) # #NOBODY # NOBODY is the unprivileged UID value. #.PP # This is absolutely necessary if setuid() will fail on your "nobody" account # uid (if it is -2, for example). Make sure that whatever value you give # here will work with setuid(). Values between 1 and 29999 will usually work. # BE CAREFULL WITH THIS! THE SYSTEM RELIES ON IT VERY MUCH IN DEED! #.PP # (On SunOS 4.1.x, the value of "-2" works the best, on Solaris the default # for nobody is 60001! If your system has "nobody" "account", use here the # name instead of number -- it should (usually) work) #.PP # -- Use a mapping via /etc/passwd, this is most generic.. # NOBODY=nobody #LOGLEVEL # LOGLEVEL may be set to restrict the log output of the router to entries # whose tags are found in the specified string value. The currently known # tags are: #.PP # address: deferred: file: header_defer: info: recipient: # #LOGLEVEL= "file: recipient:" LOGLEVEL= "deferred: file: header_defer:" #NNTPSERVER> # Builtin USENET channel uses NNTPSERVER variable (depending upon your # inews ..) to send the artickle to.. # NNTPSERVER= nntp INEWSBIN= inews #SENDMAILPATH # Where the sendmail (compability one) shall be located ? # SENDMAILPATH= /usr/sbin/sendmail #RMAILPATH # Where is the rmail to be located at ? # RMAILPATH= /bin/rmail #TA_USE_MMAP # TA_USE_MMAP - value "1" in this variable mmap()s control-, # and message body files into transport agent process memories. # This may, or may not give performance boost. #.PP # This has no effect, if the system does not have functional # \fImmap\fR(2) system call. # TA_USE_MMAP=0 #TALOCKMODE # TALOCKMODE=[TFW] -- don't use! # #MBOXLOCKS # MAILBOX locking scheme -- no configuration option (yet) # See man-page of \fImailbox\fR(8zm) for details; # the order of key-chars is meaningfull: #.IP `.' # Dotlock scheme for mailboxes at $MAILBOX/ directory #.IP `F' # flock() locking of files (and perhaps mailboxes) #.IP `L' # lockf() locking of files (and perhaps mailboxes) #.IP `:' # Separates the two parts of the parameter; left part # is for the mailbox locking, and right part is for # all other kinds of files. #.PP # We use compiled-in defaults at the mailbox program! # Following examples are for flock(), and lockf() systems with their # respective defaults. ( Systems capable to use both will use lockf() ) # #MBOXLOCKS=".F:F" #MBOXLOCKS=".L:L" #SELFADDRESSES # The SELFADDRESSES is a comma separated list of IP address literals # listing all of our acceptable IP addresses (Comma because IPv6 uses # colon for short-hand notation..): #.PP # For usual (IPv4) universe, no addresses are needed listing, however # for IPv6 it may be necessary - likewise if you want to use cluster-mode, # you may want to list all *cluster* addresses here - nodes know only # their local ones, after all.. (See: doc/guides/etrn-cluster) # #SELFADDRESSES=[1.2.3.4],[2.3.4.5],[ipv6.::1.2.3.4] SELFADDRESSES= #DBTYPE # What kind of DB type we prefer to use ? We can support several, # simultaneously, after all; btree/ndbm/gdbm ... # DBTYPE=btree #DBEXT # What extension that particular DB type wants for open operations ? # DBEXT=.db #DBEXTtest # What extension that particular DB type will actually have ? # This is used in # .IR "file age tests" . # DBEXTtest=.db #DEFCHARSET # The characterset to be used as a default when turning 8-bit containing # headers to MIME-2 headers -- and what to say at the default generated # "Content-Type: text/plain; charset=XXXX" -header in case the original # message was not of MIME, and still had 8-bit chars... # DEFCHARSET=ISO-8859-1 #RFC822TABS # We want those nice tabs between the header field name and value # The task of generating TABs or SPACEs is at TA *writeheaders(). # Value '0' here yields expansion of possibly existing header resident # line-start TABs. There is no mechanism to turn line-start SPACEs # to TABs with any other value stored here. # RFC822TABS=1 #NORECEIVEDFORCLAUSE # Existence NORECEIVEDFORCLAUSE ZENV variable forbids the transport # agents from adding '(ORCPT <...> ...)' or 'for <...> ' clauses # to the top-most "Received:" header. # #NORECEIVEDFORCLAUSE=1 # If the following limitations are exceeded then zmailcheck # will sent an alert. # Limit on the Router Queue MAX_NR=1000 # Limit on Transport Queue MAX_NT=1000 # Load times 100 MAX_LOAD=300 #SYSLOGFLG # SYSLOGFLG tells which systems use syslog to log things: # Set of chars which are as follows: # .IP S # smtpserver and /usr/sbin/sendmail # .IP R # router # .IP T # transport agents # .IP C # scheduler completion of a message # #SYSLOGFLG=SRT SYSLOGFLG=RT #TRUSTEDUSER # Per default, ZMailer uses ``daemon'' userid when it wants to # operate in ``runastrusteduser()'' mode. Finding that userid # (or rather its numeric uid) can be a bit difficult, and if it # *fails*, apparently uid 65535 will be used. # #TRUSTEDUSER=daemon #ORGDOMAIN # Use ORGDOMAIN in ZENV if the system can't generate # MIME multipart boundary string contained host/domain ids # automagically... # #ORGDOMAIN=my.local.domain #ROUTEUSER_IN_ABNORMAL_UNIX # Depending, are you running strange private customer account # databases hooked (only) into 'mailbox', or not, make sure # following is non-empty if you *are* using private databases, # as then ZMailer's router won't claim wronly userid to be # nonexistent.. These shunted tests look for HOMEDIRECTORY, # which might be nonexistent thing at such funny systems... # An EMPTY string means "this is NORMAL unix": #.PP # (A "bug" is that this isn't automatically substituted, but # non-void content gives behaviour that has been around for # quite a while...) # ROUTEUSER_IN_ABNORMAL_UNIX="z" #LISTSERV # Some sites (well, one FUNET site), has LISTSERV, this is for # configuring that subpart of the aliases.cf scripts: # #LISTSERV=/v/net/listserv.funet.fi #BINDADDR # If defined, BINDADDR specifies to which local interface to bind # smtpserver, smtp transport agent and scheduler # Possible specification formats are: # .PP # .nf # \fC [0.0.0.0]\fR # \fC [IPv6.0::0]\fR # \fC iface:eth0:1\fR # .fi # #BINDADDR=iface:eth0:1 BINDADDR= #SNMPSHAREDFILE # SNMP-like global system instance monitoring datablock path: # This _file_ has absolute path (bo substitutions are allowed), # it is shared in between all principal subsystem components # in mmap(MAP_SHARED, MAP_READ|MAP_WRITE) mode. Counters in # this file are NEVER reset. Gauges are managed as shadows # of subsystem internal state. # SNMPSHAREDFILE=/var/spool/postoffice/.zmailer.SNMP.block #DOMAIN_AWARE_GETPWNAM # Define this to "1" if you use (replacement) getpwnam() # that handles username together with domain. # This is a convenient way to support virtual domains: users # in different domains automatically have different userids, # different homes etc. Actually, this often can be arranged # even within standard /etc/passwd model, at least on Linux. # DOMAIN_AWARE_GETPWNAM=