HOLD(8zm) HOLD(8zm)
NAME
hold - zmailer deferred processing transport agent
SYNOPSIS
hold [-V] [-c channel]
DESCRIPTION
hold is a ZMailer transport agent which is usually only run by the
scheduler(8zm) program to test conditions for reprocessing of previ-
ously deferred message addresses. The hold program must be run with
the same current directory as the scheduler, namely POSTOFFICE/trans-
port.
The program will interpret the host part of an address destined for its
channel as a condition that must be met before the original address (in
the user part) can be reprocessed by the router. The condition speci-
fication contains a general condition class name followed by colon fol-
lowed by a parameter string. The currently supported condition classes
are:
ns succeeds when the nameserver lookup indicated by the parameter
does not produce a temporary nameserver error. The parameter is
a domain name followed by a slash followed by a standard Inter-
net nameserver Resource Record type name.
timeout
succeeds when the time given by the parameter (in normal sec-
onds-since-epoch format) has passed.
age succeeds when message spool file is at least of given age. The
interval can be given in complex '1d5h7m3s' -format.
io succeeds 10% of the time, to allow retry of temporary I/O fail-
ures.
script runs the named shell script with the optional given argument.
The parameter is a simple name, the shell script name within the
MAILBIN/bin directory, optionally followed by a slash followed
by an argument to be passed to the shell script.
home This tries to locate home-directory for named user, and then
tries to stat() the directory, until it succeeds.
For example:
NS:nic.ddn.mil/cname
TIMEOUT:649901432
AGE:2h
IO:error
SCRIPT:homedir/joe
HOME:joe
The condition class name is case-insensitive but is capitalized by con-
vention. The parameter strings are case-preserved for condition class-
specific interpretation. Whitespace is not permitted.
The envelope of the resubmitted message is created from the sender and
(no longer deferred) recipient addresses, and a "via suspension"
header.
OPTIONS
Options are:
-c channel
specifies which channel name should be keyed on. The default is
hold.
-V prints a version message and exits.
INTERFACE
This program reads in processable file names relative to the current
working directory of the scheduler (namely: $POSTIOFFICE/transport/).
Optionally on the same line the scheduler may tell which host is to be
looked for from the recipients of the message.
relative-spool-path [ <TAB> hostname ]
This program produces diagnostic output on the standard output. Normal
diagnostic output is of the form:
id/offset/status message
where id is the inode number of the message file, offset is a byte off-
set within its control file where the address being reported on is
kept, status is one of ok, error, or deferred, and the message is
descriptive text associated with the report. The text is terminated by
a linefeed. Any other format (as might be produced by subprocesses) is
passed to standard output for logging in the scheduler log.
The exit status is a code from <sysexits.h>.
ENVIRONMENT VARIABLES
ZCONFIG
This environment variable is expected to be inherited from the
scheduler(8zm), and it tells where scheduler's idea of ZENV-
variables are located at.
Z-ENVIRONMENT VARIABLES
Following ZENV-variables are used by the hold program:
PATH, ZCONFIG, MAILBIN, MAILSHARE
These four are passed onwards to script execution environment.
FILES
/opt/mail/zmailer.conf (ZCONFIG)
/var/spool/postoffice (POSTOFFICE)
SEE ALSO
scheduler(8zm), zmailer.conf(5zm).
AUTHOR
This program authored and copyright by:
Rayan Zachariassen <no address>,
Maintance in ZMailer environment
Matti Aarnio <mea@nic.funet.fi>
2005-Apr-27 HOLD(8zm)