dot-forward - 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:
COMPATIBILITY WARNING: dot-forward does not support :include: or mbox deliveries. You can use the delivery mechanism described in dot-qmail(5) instead.
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) @heaven.af.mil
Addresses with special characters must be quoted:
"spaced out mailbox"@heaven.af.mil
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 <firstname.lastname@example.org>
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 $USER@$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 http://pobox.com/~djb/dot-forward.html.