Provided by: nmh_1.5-release-5_amd64 bug

NAME

       mh-alias - alias file for nmh message system

SYNOPSIS

       any nmh command

DESCRIPTION

       This  describes  both  nmh  personal  alias  files  and the global alias file for nmh mail
       delivery, the file

            /etc/nmh/MailAliases

       It does not describe aliases files used by the message transport system.  Each line of the
       alias file has the format:

            alias : address-group
       or
            alias ; address-group
       or
            < alias-file
       or
            ; comment

       where:

            address-group  := address-list
                           |  < file
                           |  = UNIX-group
                           |  + UNIX-group
                           |  *

            address-list   := address
                           |  address-list, address

       Continuation lines in alias files end with `\' followed by the newline character.

       “Alias-file”  and “file” are UNIX file names.  UNIX-group is a group name (or number) from
       /etc/group.  An address is a “simple” Internet-style address.  Througout this  file,  case
       is ignored, except for file names.

       If  the  line  starts with a `<', then the file named after the `<' is read for more alias
       definitions.  The reading is done recursively, so a `<' may occur in the beginning  of  an
       alias file with the expected results.

       If  the address-group starts with a `<', then the file named after the `<' is read and its
       contents are added to the address-list for the alias.

       If the address-group starts with an `=', then the file /etc/group  is  consulted  for  the
       UNIX-group  named  after  the  `='.  Each login name occurring as a member of the group is
       added to the address-list for the alias.

       In contrast, if the address-group starts with a `+', then the file /etc/group is consulted
       to  determine  the  group-id  of  the  UNIX-group  named  after  the `+'.  Each login name
       occurring in the /etc/passwd file whose group-id is indicated by this group  is  added  to
       the address-list for the alias.

       If  the  address-group is simply `*', then the file /etc/passwd is consulted and all login
       names with a userid greater than  some  magic  number  (usually  200)  are  added  to  the
       address-list for the alias.

       In  match,  a  trailing  “*” on an alias will match just about anything appropriate.  (See
       example below.)

       An approximation of the way aliases are resolved at posting time is (it's not really  done
       this way):

         1) Build a list of all addresses from the message to be delivered, eliminating duplicate
            addresses.

         2) If this draft originated on the local host, then for those addresses in  the  message
            that have no host specified, perform alias resolution.

         3) For  each  line  in  the  alias  file,  compare  “alias”  against all of the existing
            addresses.  If a match, remove the matched “alias” from the  address  list,  and  add
            each new address in the address-group to the address list if it is not already on the
            list.  The alias itself is not usually output,  rather  the  address-group  that  the
            alias  maps  to  is output instead.  If “alias” is terminated with a `;' instead of a
            `:', then both the “alias” and the address are output in the correct  format.   (This
            makes replies possible since nmh aliases and personal aliases are unknown to the mail
            transport system.)

       Since the alias file  is  read  line  by  line,  forward  references  work,  but  backward
       references are not recognized, thus, there is no recursion.

       Example Alias File:

            </etc/nmh/BBoardAliases
            sgroup: fred, fear, freida
            b-people: Blind List: bill, betty;
            fred: frated@UCI
            UNIX-committee: <unix.aliases
            staff: =staff
            wheels: +wheel
            everyone: *
            news.*: news

       The  first  line  says  that  more  aliases  should  immediately  be  read  from  the file
       /etc/nmh/BBoardAliases.  Following this, “fred” is defined as an alias  for  “frated@UCI”,
       and  “sgroup”  is  defined  as  an  alias  for  the  three names “frated@UCI”, ”fear”, and
       ”freida”.

       The alias “b-people” is a blind list which includes the addresses “bill” and “betty”;  the
       message will be delieved to those addresses, but the message header will  show only “Blind
       List: ;” (not the addresses).

       Next, the definition of “UNIX-committee” is given by reading the file unix.aliases in  the
       users  nmh  directory,  “staff”  is  defined as all users who are listed as members of the
       group “staff” in the /etc/group file, and “wheels” is defined as all users whose  group-id
       in /etc/passwd is equivalent to the “wheel” group.

       Finally,  “everyone”  is  defined  as all users with a user-id in /etc/passwd greater than
       200, and all aliases of the form “news.<anything>” are defined to be “news”.

       The key thing to understand about aliasing in nmh is that aliases in nmh alias  files  are
       expanded  into  the  headers  of  messages posted.  This aliasing occurs first, at posting
       time, without the knowledge of the  message  transport  system.   In  contrast,  once  the
       message  transport  system  is given a message to deliver to a list of addresses, for each
       address that appears to be local, a system-wide alias file is  consulted.   These  aliases
       are NOT expanded into the headers of messages delivered.

HELPFUL HINTS

       To use aliasing in nmh quickly, do the following:

         1) In  your  .mh_profile,  choose a name for your alias file, say “aliases”, and add the
            line:

              Aliasfile: aliases

         2) Create the file “aliases” in your nmh directory.

         3) Start adding aliases to your “aliases” file as appropriate.

FILES

       /etc/nmh/MailAliases       global nmh alias file

PROFILE COMPONENTS

       Aliasfile:           For a default alias file

SEE ALSO

       ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)

CONTEXT

       None

BUGS

       Although the forward-referencing semantics of mh-alias files  prevent  recursion,  the  “<
       alias-file”  command may defeat this.  Since the number of file descriptors is finite (and
       very limited), such infinite recursion will terminate with a meaningless  diagnostic  when
       all the fds are used up.

       Forward references do not work correctly inside blind lists.