Mercurial > hg > Applications > mh
comparison doc/mh-alias.me @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bce86c4163a3 |
---|---|
1 .\" This file is automatically generated. Do not edit! | |
2 .\" @(#)$Id$ | |
3 .SC MH-ALIAS 5 | |
4 .NA | |
5 mh-alias \- alias file for MH message system | |
6 .SY | |
7 any \fIMH\fR command | |
8 .DE | |
9 This describes both \fIMH\fR personal alias files and | |
10 the (primary) alias file for mail delivery, the file | |
11 | |
12 /usr/local/mh/lib/MailAliases | |
13 | |
14 It does \fBnot\fR describe aliases files used by the message transport system. | |
15 Each line of the alias file has the format: | |
16 | |
17 alias : address\-group | |
18 .br | |
19 or | |
20 .br | |
21 alias ; address\-group | |
22 .br | |
23 or | |
24 .br | |
25 < alias\-file | |
26 .br | |
27 or | |
28 .br | |
29 ; comment | |
30 .br | |
31 | |
32 where: | |
33 | |
34 address\-group := address\-list | |
35 .br | |
36 | \*(lq<\*(rq file | |
37 .br | |
38 | \*(lq=\*(rq UNIX\-group | |
39 .br | |
40 | \*(lq+\*(rq UNIX\-group | |
41 .br | |
42 | \*(lq*\*(rq | |
43 | |
44 .br | |
45 address\-list := address | |
46 .br | |
47 | address\-list, address | |
48 .br | |
49 | |
50 Continuation lines in alias files end with `\\' followed by the newline | |
51 character. | |
52 | |
53 Alias\-file and file are UNIX file names. | |
54 UNIX\-group is a group name (or number) from \fI/etc/group\fR. | |
55 An address is a \*(lqsimple\*(rq Internet\-style address. | |
56 Througout this file, case is ignored, except for alias\-file names. | |
57 | |
58 If the line starts with a `<', then the file named after the `<' is | |
59 read for more alias definitions. The reading is done recursively, so a `<' | |
60 may occur in the beginning of an alias file with the expected results. | |
61 | |
62 If the address\-group starts with a `<', | |
63 then the file named after the `<' is read and its contents are added to | |
64 the address\-list for the alias. | |
65 | |
66 If the address\-group starts with an `=', | |
67 then the file \fI/etc/group\fR is consulted | |
68 for the UNIX\-group named after the `='. | |
69 Each login name occurring as a member of the group is added to the | |
70 address\-list for the alias. | |
71 | |
72 In contrast, if the address\-group starts with a `+', | |
73 then the file \fI/etc/group\fR is consulted | |
74 to determine the group\-id of the UNIX\-group named after the `+'. | |
75 Each login name occurring in the \fI/etc/passwd\fR file whose group\-id | |
76 is indicated by this group is added to the address\-list for the alias. | |
77 | |
78 If the address\-group is simply `*', | |
79 then the file \fI/etc/passwd\fR is consulted | |
80 and all login names with a userid greater than some magic number | |
81 (usually 200) are added to the address\-list for the alias. | |
82 | |
83 In match, a trailing * on an alias will match just about anything appropriate. | |
84 (See example below.) | |
85 | |
86 An approximation of the way aliases are resolved at posting time is | |
87 (it's not really done this way): | |
88 | |
89 .in +.5i | |
90 1) Build a list of all addresses from the message to be | |
91 delivered, eliminating duplicate addresses. | |
92 | |
93 2) If this draft originated on the local host, | |
94 then for those addresses in the message that have no host specified, | |
95 perform alias resolution. | |
96 | |
97 3) For each line in the alias file, | |
98 compare \*(lqalias\*(rq against all of the existing addresses. | |
99 If a match, remove the matched \*(lqalias\*(rq from the address list, | |
100 and add each new address in the address\-group to the address list | |
101 if it is not already on the list. | |
102 The alias itself is not usually output, | |
103 rather the address\-group that the alias maps to is output instead. | |
104 If \*(lqalias\*(rq is terminated with a `;' instead of a `:', | |
105 then both the \*(lqalias\*(rq and the address are output | |
106 in the correct format. | |
107 (This makes replies possible since \fIMH\fR aliases and | |
108 personal aliases are unknown to the mail transport system.) | |
109 .in -.5i | |
110 | |
111 Since the alias file is read line by line, forward references | |
112 work, but backward references are not recognized, thus, there is | |
113 no recursion. | |
114 | |
115 .ne 10 | |
116 \fBExample:\fR | |
117 .nf | |
118 .in +.5i | |
119 </usr/local/mh/lib/BBoardAliases | |
120 sgroup: fred, fear, freida | |
121 b-people: Blind List: bill, betty; | |
122 fred: frated@UCI | |
123 UNIX\-committee: <unix.aliases | |
124 staff: =staff | |
125 wheels: +wheel | |
126 everyone: * | |
127 news.*: news | |
128 .in -.5i | |
129 .fi | |
130 | |
131 The first line says that more aliases should immediately be read from | |
132 the file \fI/usr/local/mh/lib/BBoardAliases\fR. | |
133 Following this, \*(lqfred\*(rq is defined as an alias for | |
134 \*(lqfrated@UCI\*(rq, | |
135 and \*(lqsgroup\*(rq is defined as an alias for | |
136 the three names \*(lqfrated@UCI\*(rq, \*(rqfear\*(rq, and \*(rqfreida\*(rq. | |
137 .sp | |
138 The alias \*(lqb-people\*(rq is a blind list which includes the | |
139 addresses \*(lqbill\*(rq and \*(lqbetty\*(rq; the message | |
140 will be delieved to those addresses, but the | |
141 message header will show only \*(lqBlind List: ;\*(rq (not the addresses). | |
142 .sp | |
143 Next, the definition of \*(lqUNIX\-committee\*(rq is given by reading | |
144 the file \fIunix.aliases\fR in the users \fIMH\fR directory, | |
145 \*(lqstaff\*(rq is defined as all users who are listed as members of | |
146 the group \*(lqstaff\*(rq in the \fI/etc/group\fR file, | |
147 and \*(lqwheels\*(rq is defined as all users whose group\-id in | |
148 \fI/etc/passwd\fR is equivalent to the \*(lqwheel\*(rq group. | |
149 .sp | |
150 Finally, \*(lqeveryone\*(rq is defined as all users with a user\-id in | |
151 \fI/etc/passwd\fR greater than 200, | |
152 and all aliases of the form \*(lqnews.<anything>\*(rq are defined | |
153 to be \*(lqnews\*(rq. | |
154 | |
155 The key thing to understand about aliasing in \fIMH\fR | |
156 is that aliases in \fIMH\fR alias files are expanded into the | |
157 headers of messages posted. | |
158 This aliasing occurs first, | |
159 at posting time, | |
160 without the knowledge of the message transport system. | |
161 In contrast, | |
162 once the message transport system is given a message to deliver | |
163 to a list of addresses, | |
164 for each address that appears to be local, | |
165 a system\-wide alias file is consulted. | |
166 These aliases are \fBNOT\fR expanded into the headers of messages delivered. | |
167 .Hh | |
168 To use aliasing in \fIMH\fR quickly, do the following: | |
169 | |
170 .in +.5i | |
171 First, in your \fI\&.mh\(ruprofile\fR, | |
172 choose a name for your alias file, say \*(lqaliases\*(rq, | |
173 and add the line: | |
174 | |
175 .nf | |
176 .in +.5i | |
177 Aliasfile: aliases | |
178 .\" ali: \-alias aliases | |
179 .\" send: \-alias aliases | |
180 .\" whom: \-alias ailases | |
181 .in -.5i | |
182 .fi | |
183 | |
184 Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory. | |
185 | |
186 Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate. | |
187 .in -.5i | |
188 .Fi | |
189 ^/usr/local/mh/lib/MailAliases~^Primary alias file | |
190 .Pr | |
191 ^Aliasfile:~^For a default alias file | |
192 .Sa | |
193 ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) | |
194 .De | |
195 None | |
196 .Co | |
197 None | |
198 .Hi | |
199 In previous releases of \fIMH\fR, | |
200 only a single, system\-wide mh\-alias file was supported. | |
201 This led to a number of problems, | |
202 since only mail\-system administrators were capable of (un)defining | |
203 aliases. | |
204 Hence, | |
205 the semantics of mh\-alias were extended to support personal alias files. | |
206 Users of \fIMH\fR no longer need to bother mail\-system administrators for | |
207 keeping information in the system\-wide alias file, | |
208 as each \fIMH\fR user can create/modify/remove aliases at will from any | |
209 number of personal files. | |
210 .Bu | |
211 Although the forward-referencing semantics of \fImh\-alias\fR files prevent | |
212 recursion, the \*(lq<\ alias\-file\*(rq command may defeat this. Since the | |
213 number of file descriptors is finite (and very limited), such infinite | |
214 recursion will terminate with a meaningless diagnostic when all the fds are | |
215 used up. | |
216 .sp | |
217 Forward references do not work correctly inside blind lists. | |
218 .En |