mh-alias - format of nmh email-address alias files
Each line of an nmh
alias file takes one of the following forms:
; | : | #
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
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
for the alias.
In match, a trailing “*” on an alias will match just about
An approximation of the way aliases are resolved at posting time is:
- Build a list of all addresses from the message to be
delivered, eliminating duplicate addresses.
- For those addresses in the message that have no host
specified, perform alias resolution.
- 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.
sgroup: fred, fear, freida
b-people: Blind List: bill, betty
The first line says that more aliases should immediately be read from the file
. 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
mail transport method.
The definition of “Unix-committee” is given by reading the file
in the user's nmh
” is aliased to “news”;
the full stop is just another literal character.
- Default alias file.
- System-wide default alias file.
Although the forward-referencing semantics of mh-alias files prevent recursion,
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 up.
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
will append the semicolon to the blind list name.