dot-forward(1) read a .forward file under qmail


in ~/.qmail: | dot-forward [ -nN ] file ...


dot-forward forwards incoming messages according to sendmail-style instructions in file, if file exists. Normally file is .forward.

WARNING: If you create a .qmail file to enable dot-forward, make sure to add a second line specifying delivery to your normal mailbox. For example:

   |dot-forward .forward


COMPATIBILITY WARNING: dot-forward does not support :include: or mbox deliveries. You can use the delivery mechanism described in dot-qmail(5) instead.


(Default.) Read and forward a message.
Parse file and print the forwarding instructions in it, one per line; do not follow the instructions. You can use this option from the command line to see how your .forward file will be interpreted:

   dot-forward -n .forward


When a message arrives, dot-forward opens file and handles it as discussed below. It exits 99, so qmail-local will ignore further instructions in .qmail. Exception: If file specifies delivery directly to you, dot-forward exits 0, so qmail-local will read further instructions in .qmail.

If file does not exist, dot-forward exits 0. You can list several files; then dot-forward will try each one in turn, using the first one that exists, or exiting 0 if none exist.

COMPATIBILITY WARNING: dot-forward treats an empty file as if it did not exist. Versions of sendmail before V8 would throw away the incoming message.

COMPATIBILITY WARNING: If dot-forward encounters a temporary error opening file, it exits 111, so that qmail-local will try again later. sendmail assumes incorrectly that file does not exist.

COMPATIBILITY WARNING: file must be readable by dot-forward, which is normally running as the user. sendmail places different constraints on its .forward permissions, since it is normally running as root.


Normally file contains an address. dot-forward forwards the message to that address.

The address is parsed as if it were in an RFC 822 message header. Parenthesized comments and bracketed addresses are permitted:

   bob (Bob, the postmaster)

Addresses with special characters must be quoted:

   "spaced out mailbox"

Address groups are not permitted.

file can contain any number of lines, each line containing any number of addresses. dot-forward forwards the message to each address:

   bob, fred, susan

   Joe Shmoe <[email protected]>

An address without a fully qualified domain name is handled as described in qmail-header(5). Exception: Certain addresses without domain names are handled specially, as described below.


If an address does not contain a domain name, and matches the environment variable $USER (without regard to case), it specifies delivery directly to you.

If an address matches [email protected]$HOST (without regard to case), it specifies delivery directly to you.

COMPATIBILITY WARNING: sendmail's handling of quotes and backslashes violates RFC 821 and RFC 822, and is not supported by dot-forward. dot-forward treats \joe the same way as joe. The dot-qmail delivery mechanism lets each user manage several addresses, so there is no need for a special syntax to get around forwarding.


If an address does not contain a domain name, and begins with a vertical bar, dot-forward takes the rest of the address as a command to run:

   bob, "|vacation bob"

dot-forward feeds the message to the command, preceded by the environment variables $UFLINE, $RPLINE, and $DTLINE.

COMPATIBILITY WARNING: Internet addresses can legitimately start with a slash or vertical bar. dot-forward treats anything with an unquoted @ as an address. sendmail appears to have various problems coping with these addresses, and with commands that contain @ signs.


Any line in file that begins with # is ignored:

   # this is a comment

COMPATIBILITY WARNING: Versions of sendmail before V8 did not allow comments in .forward files.


This is dot-forward 0.71. The dot-forward home page is