Provided by: nmh_1.2-3ubuntu2_i386 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 /B
       nmh  lias 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.