|
|
1.1 root 1: .if n .pH aguide2.mail %W%
2: .Bk "System Administrator's Guide"
3: .CH "Mail Subsystem Administration" F
4: .H 1 "Administering the Mail Subsystem"
5: .IX istart \f4mail\f1, administration
6: The purpose of this appendix is to aid the System Administrator in taking
7: advantage of various options within the mail subsystem.
8: By default, the mail subsystem provides electronic communications between
9: users on the same machine, or between machines connected together on a UUCP
10: network, and
11: supports two addressing schemes, known as ``bang'' style and ``domain''
12: style.
13: .IX \f4mail\f1, bang addressing
14: .IX \f4mail\f1, domain addressing
15: The System Administrator does not need to do anything for mail to work in
16: the default manner.
17: .P
18: .IX \f4mail\f1, smart host
19: This appendix will provide information on
20: setting up a smarter host,
21: establishing a domain name,
22: administering a set of sites so that they all send mail with the same machine
23: name,
24: .IX \f4mail\f1, machine cluster
25: .IX \f4mail\f1, gateway machine
26: setting up the mail directory to be shared across a networked file
27: system, such as RFS and NFS,
28: .IX \f4mail\f1, LAN
29: .IX \f4mail\f1, RFS
30: .IX \f4mail\f1, NFS
31: filling in alias information,
32: .IX \f4mail\f1, alias lists
33: and
34: setting up a connection to another site that uses the
35: .IX \f4mail\f1, SMTP (Simple Mail Transfer Protocol)
36: .IX SMTP (see \f4mail\f1)
37: .IX Simple Mail Transfer Protocol (see \f4mail\f1)
38: Simple Mail Transfer Protocol (SMTP).
39: .H 2 "Mail Administration Files"
40: .IX files, mail
41: .IX \f4mail\f1, files
42: .IX \f4/usr/lib/mail\f1 files
43: .IX \f4/etc/mail\f1 files
44: .IX \f4mail\f1, \f4/etc/mail\f1 files
45: There are four files that are important to mail administration.
46: The surrogate file, \f4/etc/mail/mailsurr\f1,
47: .IX \f4mailsurr\f1 mail file
48: is described on the \f4mailsurr\f1(4) manual page.
49: It describes how to rewrite addresses and how to deliver messages through
50: the networks.
51: The configuration file, \f4/etc/mail/mailcnfg\f1,
52: .IX \f4mailcnfg\f1 mail file
53: is described on \f4mailcnfg\f1(4).
54: It permits various per-site options to be established.
55: For more information on the \f4mailsurr\f1 and \f4mailcnfg\f1 manual pages,
56: see the \f2System Administrator's Reference Manual\f1.
57: The master alias path file, \f4/etc/mail/namefiles\f1, points
58: .IX \f4namefiles\f1 mail file
59: to one alias file, \f4/etc/mail/names\f1.
60: Both are described on
61: \f4mailalias\f1(1).
62: .IX \f4names\f1 mail file
63: These two files are used to define name mappings and address lists.
64: For more information on the \f4mailalias\f1 manual page, see
65: the \f2User's Reference Manual\f1.
66: .H 3 "Mail Addressing Styles"
67: .IX \f4mail\f1, address style translation
68: .IX address style translation (see \f4mail\f1)
69: The default surrogate file contains entries to translate between domain
70: style addresses and bang style addresses.
71: Bang style addressing is
72: characterized by exclamation points (a.k.a. bangs) within the
73: address and looks like \f2host\f4!\f2user\f1
74: or \f2host1\f4!\f2host2\f4!\f2user\f1.
75: Domain style addressing is characterized by the commercial
76: at sign (\f4@\f1) and looks like \f2user\f4@\f2host\f4.\f2domain\f1
77: or \f2user\f4@\f2host\f1.
78: .H 2 "Establishing a Smarter Host"
79: Although it is possible to maintain the data files for the UUCP
80: network so that the system knows about hundreds or thousands of other
81: systems that can be contacted, it is impractical to do so.
82: It is often much easier to set up what is known as a ``smarter host,'' that is,
83: another UNIX system to which remote mail will be shipped if the
84: local machine doesn't know about the system to which the mail is being sent.
85: For example, assume you need to send a mail message to \f4hosta!tony\f1,
86: but your local machine does not know about \f4hosta\f1.
87: The mail message can be automatically routed to the machine
88: \f4worldly\f1, which has a more extensive list of UUCP connections.
89: .P
90: This is done in two steps:
91: .AL
92: .LI
93: Add a line to mailcnfg that says
94: .DS I UI
95: SMARTERHOST=\f2smhost\fP
96: .DE
97: where \f2smhost\f1 is replaced with the name of the smarter system (\f4worldly).
98: .LI
99: Remove the \f4#\f1 character from the line within
100: \f4mailsurr\f1 that looks like this:
101: .DS I UI
102: #'.+' '.*[!@].*' 'Translate R=%X!%n'
103: .DE
104: .LE
105: .H 2 "Establishing Domain Addresses"
106: .IX istart \f4mail\f1, domain addressing
107: As distributed, mail knows about two forms of domain style addresses:
108: .DS I
109: \f2user\f4@\f2host\f1
110: .DE
111: and
112: .DS I
113: \f2user\f4@\f2host\f4.UUCP\f1
114: .DE
115: It does not know about
116: .DS I
117: \f2user\f4@\f2host\f4.\f2domain\f1
118: .DE
119: A domain name is an internationally recognized and registered name for a
120: set of machines.
121: Commercial entities may be registered under domain names similar to
122: \&\f4.\f2company-name\f4.COM\f1 and educational entities may be registered
123: under domain names similar to \(CW.\f2school\f4.EDU\f1.
124: (Note that \f4.UUCP\f1 is not a true domain name.
125: The high-level domain names of \f4.COM\f1 and \f4.EDU\f1 are assigned
126: by a central authority.)
127: A system will generally know how to establish direct connections to
128: other machines within the local domain,
129: but will want to make use of a smarter host to take care of other domains.
130: .P
131: To establish the local domain name, complete this step:
132: .AL
133: .LI
134: Type the command
135: .DS I UI
136: /usr/sbin/domainname \f2domain\fP
137: .DE
138: where \f2domain\f1 is replaced with the domain name, such as
139: \&\f4.\f2company-name\f4.COM\f1 or whatever is appropriate, and contains
140: the leading period.
141: (Any periods present within the domain name will be converted to
142: \f4\e.\f1 before being passed to the regular expressions in the surrogate
143: file.)
144: .LE
145: The domain name will also be used by the SMTP router when rewriting
146: header files into RFC822 format (see ``Administering SMTP'' below).
147: .IX iend \f4mail\f1, domain addressing
148: .H 2 "Establishing a Mail Cluster or Gateway"
149: .IX istart \f4mail\f1, machine cluster
150: .IX istart \f4mail\f1, gateway machine
151: With the arrival of inexpensive personal computers, it is often desirable
152: to assign a single name to a set (or a cluster) of machines by which all the
153: machines in the cluster will be known to external machines, for purposes of
154: mail.
155: For example, a cluster of machines known internally under names such as
156: \f4Xsysa\f1, \f4Xsysb\f1 and \f4Xsysc\f1, could be assigned the cluster name
157: of \f4Xsys\f1.
158: Mail sent from any of these machines would be shown as being from \f4Xsys\f1;
159: that is, the internal names would not be known outside the cluster.
160: .P
161: To establish a cluster name, add a line to the \f4mailcnfg\f1 that says:
162: .DS I UI
163: CLUSTER=\f2extname\fP
164: .DE
165: where \f2extname\f1 is the name by which the machine is known
166: externally (\f4Xsys\f1).
167: .IX iend \f4mail\f1, machine cluster
168: .IX iend \f4mail\f1, gateway machine
169: .H 2 "Establishing Mail Service on a Networked File System (RFS or NFS)"
170: .IX istart \f4mail\f1, LAN
171: .IX istart \f4mail\f1, RFS
172: .IX istart \f4mail\f1, NFS
173: With the arrival of inexpensive Local Area Networking (LAN) and networked file
174: systems such as RFS and NFS, clusters of machines
175: that share many file systems can be set up.
176: It is also possible to share \f4/var/mail\f1 across the machines.
177: .IX \f4/var/mail\f1
178: .IX files, mail
179: .IX \f4mail\f1, files
180: In this case, you can arrange to have all user's mail boxes created on only
181: one machine, but accessible from all machines.
182: .P
183: As an example, assume that you want the machines \f4Xsysa\f1, \f4Xsysb\f1 and
184: \f4Xsysc\f1 to share the mail directory under \f4Xsysa\f1.
185: In addition, the entire file system for each system is mounted under the names
186: \f4/Xsysa\f1, \f4/Xsysb\f1 and \f4/Xsysc\f1.
187: All users have home directories under file systems named \f4/homea\f1,
188: \f4/homeb\f1 and \f4/\f1homec, which are mounted on
189: the corresponding machines.
190: .P
191: To establish a shared \f4/var/mail\f1 file system, complete the following
192: steps:
193: .AL
194: .LI
195: Make certain that \f4/var/mail\f1 from \f4Xsysa\f1 is advertised.
196: .LI
197: Remove the directory \f4/var/mail/:saved\f1 from the systems that
198: will not have a local \f4/var/mail\f1 (\f4Xsysb\f1 and \f4Xsysc\f1).
199: .LI
200: Add a line to \f4mailcnfg\f1 that says
201: .DS I UI
202: FAILSAFE=Xsysa
203: .DE
204: With this specified, \f4mail\f1 will look for the presence of
205: \f4/var/mail/:saved\f1.
206: If the directory is not there (indicating that the network connection to
207: \f4Xsysa\f1 has been lost), \f4mail\f1 will requeue the file to be delivered to
208: \f4Xsysa\f1 via other means (such as UUCP or SMTP).
209: .LI
210: Move any mailboxes from \f4/var/mail\f1 on \f4Xsysb\f1 and
211: \f4Xsysc\f1 to \f4Xsysa\f1 (otherwise the files will be inaccessible).
212: .LI
213: Mount \f4/var/mail\f1 from \f4Xsysa\f1.
214: .LI
215: In order for the \f4notify\f1 program to identify where the
216: user is logged in (so that it can notify the user when new mail arrives),
217: create a file on all machines named \f4/etc/mail/notify.sys\f1
218: with contents similar to the following:
219: .SS
220: Xsysa /Xsysa
221: Xsysb /Xsysb
222: Xsysc /Xsysc
223: .SE
224: The first column lists the name of the system and the second gives a pathname
225: of the \f4root\f1 filesystem for each machine.
226: .LI
227: In order for the \f4notify\f1 program to handle a network failure,
228: create a file on all machines named \f4/etc/mail/notify.fsys\f1
229: with contents similar to the following:
230: .SS
231: /homea Xsysa
232: /homeb Xsysb
233: /homec Xsysc
234: .SE
235: The first column lists a file system name and the second column contains the
236: system (machine name) on which that file system is normally mounted.
237: If \f4notify\f1 cannot open the mail file for writing, it will look up the
238: file system in this list and requeue the file to be delivered to the
239: corresponding system via other means (such as UUCP or SMTP).
240: .LE
241: .IX iend \f4mail\f1, LAN
242: .IX iend \f4mail\f1, RFS
243: .IX iend \f4mail\f1, NFS
244: .H 2 "Administering \f4alias\fP Lists"
245: .IX istart \f4mail\f1, alias lists
246: .IX istart alias lists, \f4mail\f1
247: Before delivering a local mail message, \f4mail\f1 will look up the user name to
248: see if it has been aliased to another name or list of names.
249: The master alias path file \f4/etc/mail/namefiles\f1 contains a list of
250: files that \f4mail\f1 will search for aliases.
251: As distributed, this list contains only one file,
252: \f4/etc/mail/names\f1, to be searched for aliases.
253: If the named alias is found at the beginning of a line within an alias file,
254: the rest of that line will be used as the alias.
255: This may contain a single name, or a list of names separated by whitespace.
256: For example, if you want to set up a group mailing list (e.g., \f4andy.group\f1)
257: that will be expanded, add a line similar to the following to the alias file:
258: .DS I UI
259: andy.group tony paul john ned gary hailey mike
260: .DE
261: Recursive references are permitted, as in this reference to
262: \f4andy.group\f1 within another alias:
263: .DS I UI
264: armida.dept andy.group danielle.group bob.group \e
265: lee.group pier.group
266: .DE
267: Several alias files can be listed in \f4namefiles\f1, which may be kept
268: anywhere on the machine.
269: This permits different alias files to be owned by different administrators.
270: .IX iend \f4mail\f1, alias lists
271: .IX iend alias lists, \f4mail\f1
272: .H 2 "Other Tricks of the \f4surrogate\fP File Trade"
273: .H 3 "Logging Mail"
274: .IX \f4mail\f1, logging
275: .IX logging mail
276: Occasionally it may be necessary to keep a log of traffic going through the
277: system.
278: For example, if you were to write a program \f4/usr/lib/mail/surrcmd/logmail\fP
279: that takes three arguments (a log file name, the sender and recipient), it
280: could log all external mail flowing through the system by using this
281: surrogate entry:
282: .SS
283: \&'.+!.+' '.*' '> /usr/lib/mail/surrcmd/logmail /var/adm/mailtransport %R %n'
284: .SE
285: Another example would be to log traffic to or from
286: a particular system (here to \f5xyz\f1 and from \f5abc\f1):
287: .SS
288: \&'.*' 'xyz!.+' '> /usr/lib/mail/surrcmd/logmail /var/adm/mailto-xyz %R %n'
289: \&'abc!.+' '.*' '> /usr/lib/mail/surrcmd/logmail /var/adm/mailfrom-abc %R %n'
290: .SE
291: .H 3 "Path Translation"
292: .IX PATH Translation
293: .IX translate, PATH
294: Many systems have a path translation program available that will give the
295: shortest route to a given system, based on various criteria or a database.
296: An example of this is the public domain smail program.
297: As an alternative to using a smarter host, the autorouter can be invoked as
298: a final step in the mailsurr file:
299: .SS
300: \&'.+' '.*[!@].*' 'Translate R=|smail -A %n'
301: .SE
302: .H 3 "Controlling Mail Resource Access"
303: .IX Deny, mail access
304: .IX \f4mail\f1, controlling access
305: It is often necessary to control access to commercial services, such as AT&T
306: Mail.
307: One method of doing this is to prevent any non-local users from sending mail
308: to the commercial site using the Accept and Deny commands:
309: .SS
310: \&'[^!]+' 'attmail!.+' 'Accept'
311: \&'.+' 'attmail!.+' 'Deny'
312: .SE
313: Another method is to use an external program to check the sender's path to
314: see if it is a valid user of the service.
315: For example, this shell script returns 0 if the sender is a valid system,
316: and 1 otherwise:
317: .SS
318: case "$1" in
319: abc | def | ghi ) exit 0 ;;
320: * ) echo "$1 is not permitted to send mail to external service"
321: exit 1 ;;
322: esac
323: .SE
324: If the script were installed as /usr/lib/mail/surrcmd/chksender,
325: it would be invoked as a delivery agent which will either continue or fail:
326: .SS
327: # check senders more than one hop away
328: \&'.+!(.+)![^!]+' 'attmail!.+' '< C=0;F=*; /usr/lib/mail/surrcmd/chksender \e\e1'
329: # check senders one hop away
330: \&'(.+)![^!]+' 'attmail!.+' '< C=0;F=*; /usr/lib/mail/surrcmd/chksender \e\e1'
331: .SE
332: .H 2 "Administering SMTP"
333: .IX istart \f4mail\f1, SMTP (Simple Mail Transfer Protocol)
334: .IX SMTP (see \f4mail\f1)
335: .IX Simple Mail Transfer Protocol (see \f4mail\f1)
336: .IX TCP/IP
337: The Simple Mail Transfer Protocol
338: (SMTP) mail subsystem is delivered as a group of programs that
339: allow UNIX System mail to send and receive mail using the SMTP protocol.
340: This protocol is typically used over TCP/IP networks.
341: However, as delivered, the SMTP processes can connect over any
342: TLI-based, connection-oriented, transport that has been administered
343: to have an SMTP service.
344: .P
345: To establish SMTP service requires these steps:
346: .AL
347: .LI
348: By default, SMTP is installed in the mail surrogate file,
349: but it is turned off (commented out).
350: It may be turned on by uncommenting the line that says:
351: .SS
352: #'.+' '([^!@]+)!(.+)' '< /usr/lib/mail/surrcmd/smtpqer %R \e\e1 \e\e2'
353: .SE
354: To uncomment this line, edit the \f4mailsurr\f1 file to
355: remove the \f4#\f1 from the start of each line.
356: .P
357: Mail is addressed using the standard UNIX system mail
358: formats of \f2host\f4!\f2user\f1 or \f2user\f4@\f2host\f1.
359: If \f2host\f1 is known to support SMTP mail delivery, the mail
360: will be queued for delivery using SMTP.
361: If not, \f4smtpqer\f1 will not accept the message, and delivery will be
362: done by subsequent surrogates in the \f4mailsurr\f1 file.
363: .P
364: .IX files, SMTP (see \f4mail\f1)
365: All messages that are spooled for SMTP delivery are stored in the directory
366: \f4/var/spool/smtpq/\f2host\f1, where \f2host\f1 is the name of the machine
367: to which mail is being sent.
368: .LI
369: The list of machines that will accept SMTP mail is specified by the
370: \f4netdird\f1 service.
371: See \f4netdird\f1(1M) in the \f2System Administrator's Reference Manual\f1
372: to see how to add services to this database.
373: By default, the SMTP daemon \f4smtpd\f1 will always start when
374: your system is booted.
375: If \f4smtpd\f1 finds that there are no networks installed for which the
376: SMTP service is defined, it will exit.
377: .P
378: When the daemon \f4smtpd\f1 receives a piece of mail, it does three things:
379: 1) it inserts a valid UNIX System mail ``\f4From \f1''
380: header line;
381: 2) it converts the recipient address to \f2host\f4!\f2user\f1 form; and,
382: 3) hands the message to \f4rmail\f1 for delivery.
383: .LI
384: The following entry must be uncommented from \f4root\f1's \f4crontab\f1 file
385: [see \f4crontab\f1(1) for an explanation of this file]:
386: .SS
387: 25 * * * * /usr/lib/mail/surrcmd/smtpsched
388: 55 1 * * * /usr/lib/mail/surrcmd/smtpsched -c -w 1 -r 7
389: .SE
390: To do this, execute the following commands as root:
391: .SS
392: # crontab -l > /tmp/cron.temp
393: # ed /tmp/cron.temp
394: g!/smtpsched!s/^#//
395: w
396: q
397: # crontab /tmp/cron.temp
398: # rm /tmp/cron.temp
399: #
400: .SE
401: .P
402: By default, mail that cannot be delivered immediately (as
403: it is sent), is queued and retried at one hour intervals by \f4smtpsched\f1.
404: You can change the interval by modifying the
405: entry for \f4smtpsched\f1 in \f4root\f1's \f4cron\f1 file.
406: .IX \f4smtpsched\f1(1M)
407: .LE
408: .P
409: .IX logs, SMTP (see \f4mail\f1)
410: SMTP logs all SMTP activity, including
411: incoming mail messages, in the log file \f4/var/spool/smtpq/LOG\f1.
412: .IX \f4/var/spool/smtpq/LOG\f1
413: It is backed up once per day by \f4smtpsched\f1; previous days' log files are
414: located in \f4/var/spool/smtpq/LOG.\f2n\f1, where \f2n\f1 is the day
415: of the week (from 0 to 6).
416: The \f4smtpsched\f1 program will also return undeliverable mail messages.
417: For more information on \f4smtpsched\f1(1M)
418: see the \f2System Administrator's Reference Manual\f1.
419: .H 3 "Setting Up SMTP to Listen Over Multiple Networks"
420: \f4smtpd\f1 will listen to any connection-oriented TLI network
421: that provides the SMTP service.
422: TLI networks are specified in \f4/etc/netconfig\f1.
423: For each network that is
424: connection-oriented, \f4smtpd\f1 will use \f4netdir_getbyname\f1(3) to
425: determine if the SMTP service exists for that network.
426: If the service does exist, a port is opened at the address returned by this
427: function.
428: To make the listener listen to a new network,
429: first administer the \f4netdir\f1 databases, and then restart the listener.
430: .IX iend \f4mail\f1, SMTP (Simple Mail Transfer Protocol)
431: .IX iend \f4mail\f1, administration
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.