Provided by: fastforward_0.51-8_amd64 bug

NAME

       setforward - create a forwarding database

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 forwarding 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 commands, 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  forwarding  instruction
       across lines.  It also ignores spaces and tabs.  Exception: 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 commands 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 bytes in the command
       as a recipient address:

          boss@yp.to: &god@heaven.af.mil;

       fastforward  sends  each  incoming  mail  message to the recipient address.  The recipient
       address must include a fully qualified domain name.  It cannot be longer than 800 bytes.

       If a recipient address is itself a  target  in  the  forwarding  table,  fastforward  will
       recursively  handle  the  instructions  for  that  target.   Note that @host.dom and user@
       wildcards do not apply here; they apply only to the incoming address.

       If a command begins with a letter or number, setforward takes  the  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 remaining 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 setmaillist:

          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, setforward 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 discarded.)

       Exception: If a target has an owner address,  commands  for  that  target  are  considered
       different from commands for ``outside'' targets.

SEE ALSO

       newaliases(1), preline(1), printforward(1), setmaillist(1)

                                                                                    setforward(1)