|
|
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.