---
name: "hold"
section: "8"
platform: "linux"
package: "zmailer"
version: "2.99.55-3"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/hold"
---

# hold(8)

zmailer deferred processing transport agent

## NAME

hold - zmailer deferred processing transport agent

## SYNOPSIS

**hold** \[ **-c** *channel* \] \[ **-V** \]

## DESCRIPTION

*hold* is a ZMailer transport agent which is usually only run by the [*scheduler*(8)](/scheduler/8.md) program to test conditions for reprocessing of previously deferred message addresses.  The *hold* program must be run with the same current directory as the *scheduler*, namely *POSTOFFICE***/transport**.

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 specification contains a general condition class name followed by colon followed 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 Internet nameserver Resource Record type name.

- **timeout**

  succeeds when the time given by the parameter (in normal seconds-since-epoch format) has passed.

- **io**

  succeeds 10% of the time, to allow retry of temporary I/O failures.

- **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.

For example:

```
NS:nic.ddn.mil/cname
TIMEOUT:649901432
IO:error
SCRIPT:homedir/joe
```

The condition class name is case-insensitive but is capitalized by convention. 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 offset 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\>**.

## FILES

*/etc/zmailer.conf*\
 */var/spool/postoffice (POSTOFFICE)*

## SEE ALSO

[scheduler(8)](/scheduler/8.md)

## AUTHOR

This program authored and copyright by:\
 Rayan Zachariassen \<no.current.address\>\
 Maintance in ZMailer environment\
 Matti Aarnio \<mea@nic.funet.fi\>
