Provided by: nmh_1.7.1-12_amd64 bug


       mh-alias - format of nmh email-address alias files


       Each line of an nmh alias file takes one of the following forms:

            alias : address-group

            alias ; address-group

            < alias-file

            ; | : | # comment


            address-group  := address-list
                           |  < file

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

       Continuation  lines  end  with  “\” followed by a newline character.  This also applies to
       comment lines.  Thus, the line following a “\”-terminated comment line is  a  continuation
       of that comment line.

       Alias-file  and  file are Unix file names.  Alias file contents are case-insensitive, with
       the exception of filesystem path names.

       If the line starts with a “<”, 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 “<”, the file named after  the  “<”  is  read  and  its
       contents are added to the address-list for the alias.

       In match, a trailing “*” on an alias will match just about anything appropriate.

       An approximation of the way aliases are resolved at posting time is:

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

       2)     For those addresses in the message that  have  no  host  specified,  perform  alias

       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
              (with the alias quoted if necessary and the address wrapped in <>).

       Since  the  mh-alias  file  is  read  line  by line, forward references work, but backward
       references are not recognized.

   Example Alias File
            sgroup: fred, fear, freida
            fred: frated@UCI.example
            b-people: Blind List: bill, betty
            Unix-committee: <unix.aliases
            news.*: news

       The first  line  says  that  more  aliases  should  immediately  be  read  from  the  file
       /etc/nmh/BBoardAliases.  Next, “sgroup” is defined as an alias for three names, and one of
       them, “fred”, is a forward reference to another alias for “frated@UCI.example”.

       The alias “b-people” is a blind list which includes the addresses “bill” and “betty”;  the
       message will be delivered to those addresses, but the message header will show only “Blind
       List: ;” (not the addresses).  The alias must  not  be  terminated  with,  or  contain,  a
       semicolon.   Note that blind lists are not supported with the sendmail/pipe mail transport

       The definition of “Unix-committee” is given by reading the file unix.aliases in the user's
       nmh directory.

       Lastly,  “news.anything”  is  aliased  to  “news”;  the  full stop is just another literal


       Aliasfile:          Default alias file.


                           System-wide default alias file.


       ali(1), send(1), whom(1), getgrent(3), getpwent(3), post(8)


       Although the forward-referencing semantics of mh-alias files prevent recursion, the alias-
       file  directive  may  defeat  this.   Since the number of file descriptors is finite, such
       infinite recursion will terminate with a meaningless diagnostic when all the fds are  used

       Earlier versions of this man page showed a semicolon at the end of the blind list example.
       That caused the preceding alias to not be expanded.  There must not be a semicolon at  the
       end  of,  or within, the address group of a blind list.  post will append the semicolon to
       the blind list name.