SYNOPSIS
setforward cdb tmp
DESCRIPTION
setforward reads a table of forwarding instructions from its standard
input. It converts the table into a forwarding database. The forward-
ing database can be used by fastforward.
setforward writes the forwarding database to tmp; it then moves tmp to
cdb. tmp and cdb must be on the same filesystem.
If there is a problem creating tmp, setforward complains and leaves cdb
alone.
The forwarding database format is portable across machines.
INSTRUCTION FORMAT
A forwarding instruction contains a target, a colon, a series of com-
mands, and a semicolon. Each command is a recipient address, owner
address, external mailing list, or program. Commands are separated by
commas.
For example,
root@yp.to: god@heaven.af.mil, staff@af.mil;
says that mail for root@yp.to should be forwarded to the recipient
addresses god@heaven.af.mil and staff@af.mil.
When setforward sees # it ignores all text from # to the end of the
line:
# this is a comment
setforward ignores all other line endings, so you can split a forward-
ing instruction across lines. It also ignores spaces and tabs. Excep-
tion: you can put a space (or tab or comma or whatever) into a target
or command by putting a backslash in front of it. (However, NUL bytes
are not permitted anywhere.)
TARGETS
When fastforward sees the incoming address user@host.dom, it tries
three targets: user@host.dom, @host.dom, and user@. It obeys the com-
mands for the first target that it finds. Target names are interpreted
without regard to case.
All the commands for a single target must be listed in a single
instruction. Exception: an owner address can be listed in a separate
instruction.
RECIPIENT ADDRESSES
If a command begins with an ampersand, setforward takes the remaining
entire command as a recipient address:
boss@yp.to: god@heaven.af.mil;
OWNER ADDRESSES
If a command begins with a question mark, setforward takes the remain-
ing bytes in the command as an owner address:
sos@heaven.af.mil: ?owner-sos@heaven.af.mil;
fastforward uses that address as the envelope sender for forwarded
mail, so bounces will go back to that address. (Normally, if a message
is forwarded to a bad address, it will bounce back to the original
envelope sender.)
EXTERNAL MAILING LISTS
If a command begins with a dot or slash, setforward takes the entire
command as the name of a binary mailing list file created by setmail-
list:
sos@heaven.af.mil: /etc/lists/sos.bin;
fastforward will read and obey the commands in that file. The file
must be world-readable and accessible to fastforward.
PROGRAMS
If a command begins with a vertical bar or exclamation point, setfor-
ward takes the rest of the command as the name of a program to run:
dew@: |dew-monitor;
For a vertical bar, fastforward feeds the message to that program. An
exclamation point works the same way except that fastforward inserts
$UFLINE, $RPLINE, and $DTLINE in front of the message.
DUPLICATES
When fastforward is building the recipient list for a message, it keeps
track of the recipient addresses and external mailing lists it has
used. If the same command shows up again, it skips it. For example:
everybody@yp.to: programmers@yp.to, testers@yp.to;
programmers@yp.to: joe@yp.to, bob@yp.to;
testers@yp.to: joe@yp.to, fred@yp.to;
A message to everybody@yp.to will be sent to joe@yp.to only once.
(This also means that addresses in an internal forwarding loop are dis-
carded.)
Exception: If a target has an owner address, commands for that target
are considered different from commands for ``outside'' targets.
SEE ALSO
Man(1) output converted with
man2html