X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a4b6b148ec5edcfc454cc73d8f608a97fc8c5e25..63621a81d16ab743de6b57d47578a9a2c670ad22:/man/mh-alias.man diff --git a/man/mh-alias.man b/man/mh-alias.man index 1eef4e69..facea29a 100644 --- a/man/mh-alias.man +++ b/man/mh-alias.man @@ -1,47 +1,32 @@ -.TH MH-ALIAS %manext5% "%nmhdate%" MH.6.8 [%nmhversion%] -.\" +.TH MH-ALIAS %manext5% 2014-04-18 "%nmhversion%" +. .\" %nmhwarning% -.\" +. .SH NAME -mh-alias \- alias file for nmh message system -.SH SYNOPSIS -any -.B nmh -command +mh-alias \- format of nmh email-address alias files .SH DESCRIPTION -This describes both -.B nmh -personal alias files and -the global alias file for -.B nmh -mail delivery, the file .PP -.RS 5 -%etcdir%/MailAliases -.RE -.PP -It does -.B not -describe aliases files used by the message transport system. -Each line of the alias file has the format: +Each line of an +.B nmh +alias file takes one of the following forms: .PP .RS 5 .I alias .B : -.I address\-group +.I address-group .RE -or +.sp .RS 5 .I alias .B ; -.I address\-group +.I address-group .RE -or +.sp .RS 5 .B < -.I alias\-file +.I alias-file .RE -or +.sp .RS 5 .B ; | @@ -55,245 +40,132 @@ where: .PP .RS 5 .nf -.IR address\-group " := " address\-list +.IR address-group " := " address-list .RI " | < " file -.RI " | = " UNIX\-group -.RI " | + " UNIX\-group - | * -.IR address\-list " := " address -.RI " | " address\-list ", " address +.IR address-list " := " address +.RI " | " address-list ", " address .fi .RE .PP -Continuation lines in alias files end with `\\' followed by the newline -character. This applies to comment lines. Thus, a line following a -comment line that ends with a `\\' will be treated as a continuation of -the comment. +Continuation lines end with \*(lq\\\*(rq followed by a newline +character. This also applies to comment lines. Thus, the line following a +\*(lq\\\*(rq-terminated +comment line is a continuation of +that comment line. .PP -.RI \*(lq Alias\-file \*(rq +.I Alias-file and -.RI \*(lq file \*(rq -are UNIX file names. -.I UNIX\-group -is a group name (or number) from -.IR /etc/group . -An address is a \*(lqsimple\*(rq -Internet\-style address. Througout this file, case is ignored, except -for file names. +.I file +are Unix file names. +Alias file contents are case-insensitive, with the exception +of filesystem path names. .PP -If the line starts with a `<', then the file named after the `<' is +If the line starts with a \*(lq<\*(rq, the file named after the \*(lq<\*(rq 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. +\*(lq<\*(rq may occur in the beginning of an alias file with the expected results. .PP If the -.I address\-group -starts with a `<', then the file named after the -`<' is read and its contents are added to the -.I address\-list -for the alias. -.PP -If the -.I address\-group -starts with an `=', then the file -.I /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 -.I address\-list -for the alias. -.PP -In contrast, if the -.I address\-group -starts with a `+', then the file -.I /etc/group -is consulted to determine the group\-id of the -UNIX\-group named after the `+'. Each login name occurring in the -.I /etc/passwd -file whose group\-id is indicated by this group is -added to the -.I address\-list -for the alias. -.PP -If the -.I address\-group -is simply `*', then the file -.I /etc/passwd -is consulted and all login names with a userid -greater than some magic number (usually 200) are added to the -.I address\-list +.I address-group +starts with a \*(lq<\*(rq, the file named after the +\*(lq<\*(rq is read and its contents are added to the +.I address-list for the alias. .PP In match, a trailing \*(lq*\*(rq on an alias will match just about anything -appropriate. (See example below.) -.PP -An approximation of the way aliases are resolved at posting time is -(it's not really done this way): +appropriate. .PP -.RS 2 -.IP 1) 3 +An approximation of the way aliases are resolved at posting time is: +.IP 1) Build a list of all addresses from the message to be delivered, eliminating duplicate addresses. -.PP -.IP 2) 3 -If this draft originated on the local host, then for those addresses in -the message that have no host specified, perform alias resolution. -.PP -.IP 3) 3 +.IP 2) +For those addresses in the message that have no host specified, +perform alias resolution. +.IP 3) For each line in the alias file, compare \*(lqalias\*(rq against all of the existing addresses. If a match, remove the matched \*(lqalias\*(rq -from the address list, and add each new address in the address\-group to +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 \*(lqalias\*(rq is terminated with a `;' instead of -a `:', then both the \*(lqalias\*(rq and the address are output in the +not usually output, rather the address-group that the alias maps to is +output instead. If \*(lqalias\*(rq is terminated with a \*(lq;\*(rq instead of +a \*(lq:\*(rq, then both the \*(lqalias\*(rq and the address are output in the correct format (with the alias quoted if necessary and the address wrapped in <>). .PP -This makes replies possible since -.B nmh -aliases -and personal aliases are unknown to the mail transport system. -.RE -.PP -Since the alias file is read line by line, forward references work, but -backward references are not recognized, thus, there is no recursion. -.PP -Example Alias File: +Since the +.I mh-alias +file is read line by line, forward references work, but +backward references are not recognized. +.SS +Example Alias File .PP .RS 5 .nf -<%etcdir%/BBoardAliases +<%nmhetcdir%/BBoardAliases sgroup: fred, fear, freida +fred: frated@UCI.example b-people: Blind List: bill, betty -fred: frated@UCI -UNIX\-committee: \*(rq are defined to be \*(lqnews\*(rq. -.PP -The key thing to understand about aliasing in -.B nmh -is that aliases in -.B 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 -.B not -expanded into the headers of messages delivered. -.SH "HELPFUL HINTS" -To use aliasing in -.B nmh -quickly, do the following: -.PP -.RS 2 -.IP 1) 3 -In your -.IR \&.mh\(ruprofile , -choose a name for your alias file, say -.RI \*(lq aliases \*(rq, -and add the line: -.PP -.RS 5 -.nf -Aliasfile: aliases -.\" ali: \-alias aliases -.\" send: \-alias aliases -.\" whom: \-alias aliases -.fi -.RE -.PP -.IP 2) 3 -Create the file -.RI \*(lq aliases \*(rq -in your +in the user's .B nmh directory. .PP -.IP 3) 3 -Start adding aliases to your -.RI \*(lq aliases \*(rq -file as appropriate. -.RE -.PP -Earlier versions of this man page showed a semicolon at the end of the -blind list example. That caused the preceeding alias to not be -expanded. There must not be a semicolon at the end of, or within, the -address group of a blind list. -.B post -will append the semicolon to the blind list name. -.SH FILES -.fc ^ ~ -.nf -.ta \w'%etcdir%/ExtraBigFileName 'u -^%etcdir%/MailAliases~^global nmh alias file -.fi +Lastly, +.RI \*(lqnews. anything \*(rq +is aliased to \*(lqnews\*(rq; +the full stop is just another literal character. .SH "PROFILE COMPONENTS" -.fc ^ ~ -.nf -.ta 2.4i -.ta \w'ExtraBigProfileName 'u -^Aliasfile:~^For a default alias file -.fi +.TP 20 +Aliasfile: +Default alias file. +.SH FILES +.TP 20 +%nmhetcdir%/MailAliases +System-wide default alias file. .SH "SEE ALSO" .IR ali (1), .IR send (1), .IR whom (1), -.IR group (5), -.IR passwd (5), -.IR conflict (8), +.IR getgrent (3), +.IR getpwent (3), .IR post (8) -.SH CONTEXT -None .SH BUGS Although the forward-referencing semantics of -.B mh\-alias +mh\-alias files prevent recursion, the -.RI \*(lq< " alias\-file" \*(rq -command may defeat this. -Since the number of file descriptors is finite (and very limited), such +.B 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. +.PP +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. +.B post +will append the semicolon to the blind list name.