ZMAILER.CONF(5zm) ZMAILER.CONF(5zm)
NAME
zmailer.conf - file format
SYNOPSIS
These are generated from inline XMLishly tagged descriptions in gener-
ated file: SiteConfig.
DESCRIPTION
ZMailer 'ZENV' Environment Variables:
A config file for storing various site config parameters
These are generic material that do not depend upon compilers et.al!
This is generated with autoconfiguration process from SiteConfig.in
file, and the configuration parameters.
Following paragraph appears to be outdated:
The standard installation procedure will not overwrite the destination
ZCONFIG 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 pro-
cessed 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 SiteConfig file in the distribu-
tion (the file you are reading right now), and contains variable
assignments in an sh-compatible format.
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).
Some programs (notably 'sendmail(8zm)', and transport agents) do
check for standard UNIX environment variables for overrider of
this value.)
MAILBIN
MAILBIN is the directory hierarchy containing all ZMailer bina-
ries.
Configured as: /opt/mail/bin
MAILSHARE
MAILSHARE is the directory hierarchy containing site-wide con-
figuration files and databases.
Configured as: /opt/mail
MAILVAR
MAILVAR is the directory that will contain machine-specific con-
figuration files and databases.
Configured as: /opt/mail
MAILBOX
MAILBOX is the directory containing all the user mailboxes.
This is defaulted inside the mailbox(8zm) program and may be
overridden here.
Configured as: /var/spool/mail
POSTOFFICE
POSTOFFICE is the directory hierarchy used to manipulate message
files, where runtime activity takes places.
Configured as: /var/spool/postoffice
LOGDIR
LOGDIR is the directory where log files will appear.
Configured as: /var/log/mail
INPUTDIRS
INPUTDIRS are alternate directories to receive files instead of
standard "router" and $ROUTERDIRS set.
INPUTDIRHASH
When defined, INPUTDIRHASH submits messages immediately into the
If no such "hash subdirs" exist, message submission will fail!
(The value must be "1" for this to take effect!)
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.
The injection library informs the router queuing subsystem of
new jobs, and does it with same message as ROUTERNOTIFY= uses.
ROUTEROPTIONS
ROUTEROPTIONS are command line options given to the router(8zm)
when started from the zmailer(1zm) shell script.
The default values are "-dWkn 4"
ROUTERDIRS
Multiple LOWER priorities on message routing can be defined by
creating $POSTOFFICE/<component-of-$ROUTERDIRS> -directories.
Routers process first $POSTOFFICE/router/ -directory, and once
it is empty, files from subsequent dirs. See mail(3) mail_pri-
ority
These can be only under the $POSTOFFICE.
ROUTERDIRHASH
When defined, ROUTERDIRHASH submits messages immediately into
the If no such "hash subdirs" exist, message submission will
fail! (The value must be "1" for this to take effect!)
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 subsys-
tem of new jobs.
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.
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!
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 configured default value is: "-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. Exis-
tence of this variable also overrides -H option(s) to the sched-
uler. Value is the number of -H options. If these hash subdi-
rectories 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" !
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.
The configured default is: /var/spool/postoffice/.sched-
uler.notify
Following few ZM ``environment'' variables are used by the router(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 environ-
ment 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 dif-
ferent kind of DFS. Usually undefined or a hostname.
PUNTHOST
PUNTHOST is where mail that is supposed to go to a local
address, but no such address exists, is punted to.
FORCEPUNT
FORCEPUNT is for cases when the local machine under no circum-
stances is to store any email locally, but send all such to this
given address (local host is a member on a "cluster" whose mes-
sage store is at some other cluster server, and said node han-
dles "local" delivery for all cluster members... *including*
running pipes..)
FORCEPUNT
SMARTHOST is where mail that cannot be resolved or routed is
punted to.
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.
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
indeed!
(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)
-- Use a mapping via /etc/passwd, this is most generic..
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:
address: deferred: file: header_defer: info: recipient:
NNTPSERVER
Builtin USENET channel uses NNTPSERVER variable (depending upon
your inews ..) to send the artickle to..
SENDMAILPATH
Where the sendmail (compability one) shall be located ?
The configured default is: /usr/sbin/sendmail
RMAILPATH
Where is the rmail to be located at ?
The configured default is: /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.
This has no effect, if the system does not have functional
mmap(2) system call.
The configured default is: 0
TALOCKMODE
TALOCKMODE=[TFW] -- don't use!
MBOXLOCKS
MAILBOX locking scheme -- no configuration option (yet) See man-
page of mailbox(8zm) for details; the order of key-chars is
meaningfull:
`.' Dotlock scheme for mailboxes at $MAILBOX/ directory
`F' flock() locking of files (and perhaps mailboxes)
`L' lockf() locking of files (and perhaps mailboxes)
`:' Separates the two parts of the parameter; left part is
for the mailbox locking, and right part is for all other
kinds of files.
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() )
SELFADDRESSES
The SELFADDRESSES is a comma separated list of IP address liter-
als listing all of our acceptable IP addresses (Comma because
IPv6 uses colon for short-hand notation..):
For usual (IPv4) universe, no addresses are needed listing, how-
ever 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)
DBTYPE
What kind of DB type we prefer to use ? We can support several,
simultaneously, after all; btree/ndbm/gdbm ...
Configured default value: btree
DBEXT
What extension that particular DB type wants for open operations
?
Configured default value: .db
DBEXTtest
What extension that particular DB type will actually have ?
This is used in file age tests.
Configured default value: .db
DEFCHARSET
The characterset to be used as a default when turning 8-bit con-
taining 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...
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 res-
ident line-start TABs. There is no mechanism to turn line-start
SPACEs to TABs with any other value stored here.
NORECEIVEDFORCLAUSE
Existence NORECEIVEDFORCLAUSE ZENV variable forbids the trans-
port agents from adding '(ORCPT <...> ...)' or 'for <...> '
clauses to the top-most "Received:" header.
SYSLOGFLG
SYSLOGFLG tells which systems use syslog to log things: Set of
chars which are as follows:
S smtpserver and /usr/sbin/sendmail
R router
T transport agents
C scheduler completion of a message
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.
ORGDOMAIN
Use ORGDOMAIN in ZENV if the system can't generate MIME multi-
part boundary string contained host/domain ids automagically...
ROUTEUSER_IN_ABNORMAL_UNIX
Depending, are you running strange private customer account
databases hooked (only) into 'mailbox', or not, make sure fol-
lowing is non-empty if you *are* using private databases, as
then ZMailer's router won't claim wronly userid to be nonexis-
tent.. These shunted tests look for HOMEDIRECTORY, which might
be nonexistent thing at such funny systems... An EMPTY string
means "this is NORMAL unix":
(A "bug" is that this isn't automatically substituted, but non-
void content gives behaviour that has been around for quite a
while...)
LISTSERV
Some sites (well, one FUNET site), has LISTSERV, this is for
configuring that subpart of the aliases.cf scripts:
BINDADDR
If defined, BINDADDR specifies to which local interface to bind
smtpserver, smtp transport agent and scheduler Possible specifi-
cation formats are:
[0.0.0.0]
[IPv6.0::0]
iface:eth0:1
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.
DOMAIN_AWARE_GETPWNAM
Define this to "1" if you use (replacement) getpwnam() that han-
dles username together with domain. This is a convenient way to
support virtual domains: users in different domains automati-
cally have different userids, different homes etc. Actually,
this often can be arranged even within standard /etc/passwd
model, at least on Linux.
SEE ALSO
zmailer(1zm),
AUTHOR
This document authored and copyright by:
Matti Aarnio <mea@nic.funet.fi>
2006-Dec-13 ZMAILER.CONF(5zm)