NAME
mh-alias - format of nmh email-address alias files
DESCRIPTION
Each line of an nmh alias file takes one of the following forms:
alias : address-group
alias ; address-group
< alias-file
; | : | # comment
where:
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 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 (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
</etc/nmh/BBoardAliases
sgroup: fred, fear, freida
fred: frated [AT] 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 [AT] 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 method.
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 character.
PROFILE COMPONENTS
Aliasfile: |
Default alias file. |
FILES
/etc/nmh/MailAliases
System-wide default alias file.
SEE ALSO
ali(1), send(1), whom(1), getgrent(3), getpwent(3), post(8)
BUGS
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 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 list. post will append the semicolon to the blind list name.