diff doc/mh-alias.me @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/mh-alias.me	Mon Apr 18 23:46:02 2005 +0900
@@ -0,0 +1,218 @@
+.\"	This file is automatically generated.  Do not edit!
+.\" @(#)$Id$
+.SC MH-ALIAS 5
+.NA
+mh-alias \- alias file for MH message system
+.SY
+any \fIMH\fR command
+.DE
+This describes both \fIMH\fR personal alias files and
+the (primary) alias file for mail delivery, the file
+
+	/usr/local/mh/lib/MailAliases
+
+It does \fBnot\fR describe aliases files used by the message transport system.
+Each line of the alias file has the format:
+
+	alias : address\-group
+.br
+or
+.br
+	alias ; address\-group
+.br
+or
+.br
+	< alias\-file
+.br
+or
+.br
+	; comment
+.br
+
+where:
+
+	address\-group  :=  address\-list
+.br
+		       |   \*(lq<\*(rq file
+.br
+		       |   \*(lq=\*(rq UNIX\-group
+.br
+		       |   \*(lq+\*(rq UNIX\-group
+.br
+		       |   \*(lq*\*(rq
+
+.br
+	address\-list   :=  address
+.br
+		       |   address\-list, address
+.br
+
+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 \fI/etc/group\fR.
+An address is a \*(lqsimple\*(rq Internet\-style address.
+Througout this file, case is ignored, except for alias\-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 \fI/etc/group\fR 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 \fI/etc/group\fR is consulted
+to determine the group\-id of the UNIX\-group named after the `+'.
+Each login name occurring in the \fI/etc/passwd\fR 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 \fI/etc/passwd\fR 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):
+
+.in +.5i
+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 \*(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 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 correct format.
+(This makes replies possible since \fIMH\fR aliases and
+personal aliases are unknown to the mail transport system.)
+.in -.5i
+
+Since the alias file is read line by line, forward references
+work, but backward references are not recognized, thus, there is
+no recursion.
+
+.ne 10
+\fBExample:\fR
+.nf
+.in +.5i
+</usr/local/mh/lib/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
+.in -.5i
+.fi
+
+The first line says that more aliases should immediately be read from
+the file \fI/usr/local/mh/lib/BBoardAliases\fR.
+Following this, \*(lqfred\*(rq is defined as an alias for
+\*(lqfrated@UCI\*(rq,
+and \*(lqsgroup\*(rq is defined as an alias for 
+the three names \*(lqfrated@UCI\*(rq, \*(rqfear\*(rq, and \*(rqfreida\*(rq.
+.sp
+The alias \*(lqb-people\*(rq is a blind list which includes the
+addresses \*(lqbill\*(rq and \*(lqbetty\*(rq; the message
+will be delieved to those addresses, but the
+message header will  show only \*(lqBlind List: ;\*(rq (not the addresses).
+.sp
+Next, the definition of \*(lqUNIX\-committee\*(rq is given by reading
+the file \fIunix.aliases\fR in the users \fIMH\fR directory,
+\*(lqstaff\*(rq is defined as all users who are listed as members of
+the group \*(lqstaff\*(rq in the \fI/etc/group\fR file,
+and \*(lqwheels\*(rq is defined as all users whose group\-id in
+\fI/etc/passwd\fR is equivalent to the \*(lqwheel\*(rq group.
+.sp
+Finally, \*(lqeveryone\*(rq is defined as all users with a user\-id in
+\fI/etc/passwd\fR greater than 200,
+and all aliases of the form \*(lqnews.<anything>\*(rq are defined
+to be \*(lqnews\*(rq.
+
+The key thing to understand about aliasing in \fIMH\fR
+is that aliases in \fIMH\fR 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 \fBNOT\fR expanded into the headers of messages delivered.
+.Hh
+To use aliasing in \fIMH\fR quickly, do the following:
+
+.in +.5i
+First, in your \fI\&.mh\(ruprofile\fR,
+choose a name for your alias file, say \*(lqaliases\*(rq,
+and add the line:
+
+.nf
+.in +.5i
+Aliasfile: aliases
+.\" ali: \-alias aliases
+.\" send: \-alias aliases
+.\" whom: \-alias ailases
+.in -.5i
+.fi
+
+Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory.
+
+Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate.
+.in -.5i
+.Fi
+^/usr/local/mh/lib/MailAliases~^Primary alias file
+.Pr
+^Aliasfile:~^For a default alias file
+.Sa
+ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)
+.De
+None
+.Co
+None
+.Hi
+In previous releases of \fIMH\fR,
+only a single, system\-wide mh\-alias file was supported.
+This led to a number of problems,
+since only mail\-system administrators were capable of (un)defining
+aliases.
+Hence,
+the semantics of mh\-alias were extended to support personal alias files.
+Users of \fIMH\fR no longer need to bother mail\-system administrators for
+keeping information in the system\-wide alias file,
+as each \fIMH\fR user can create/modify/remove aliases at will from any
+number of personal files.
+.Bu
+Although the forward-referencing semantics of \fImh\-alias\fR files prevent
+recursion, the \*(lq<\ alias\-file\*(rq 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.
+.sp
+Forward references do not work correctly inside blind lists.
+.En