diff options
| author | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
|---|---|---|
| committer | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
| commit | f1cb96b2ca44e4aa70b57abc58ffc615af6b0583 (patch) | |
| tree | a6ebcdd285462a08f65dcae64a1b57567dd129ea | |
| parent | f12eaca826e8750987e7055165cd38313cb63b46 (diff) | |
upgrade to version 8.6.5
66 files changed, 6546 insertions, 3990 deletions
diff --git a/usr.sbin/sendmail/CHANGES-R5-R8 b/usr.sbin/sendmail/CHANGES-R5-R8 index d935731a1c2..a3fdb53064b 100644 --- a/usr.sbin/sendmail/CHANGES-R5-R8 +++ b/usr.sbin/sendmail/CHANGES-R5-R8 @@ -138,7 +138,7 @@ Keyed Files Version 8 includes an "NIS" map class to support NIS/YP maps. -Multi-Word Classes +Multi-Word Classes & Macros in Classes Classes can now be multiple words. For example, @@ -147,6 +147,12 @@ Multi-Word Classes allows you to match the entire string ``hofmann.CS.Berkeley.EDU'' using the single construct ``$=S''. + Class definitions are now allowed to include macros -- for example: + + Cw$k + + is legal. + Deferred Macro Expansion The $&x construct has been adopted from IDA. @@ -277,23 +283,35 @@ Extended Options The `A' (alias file) option has been extended to allow multiple alias files of different types. +New Mailer Keyletters + + L= Set the allowable line length. In V5, the L mailer flag implied + a line length limit of 990 characters; this is now settable to + an arbitrary value. + New Mailer Flags - a Try to use ESMTP. It will fall back to SMTP if the initial + F=a Try to use ESMTP. It will fall back to SMTP if the initial EHLO packet is rejected. - b Ensure a blank line at the end of messages. Useful on the + F=b Ensure a blank line at the end of messages. Useful on the *file* mailer. - c Strip all comments from addresses; this should only be used as + F=c Strip all comments from addresses; this should only be used as a last resort when dealing with cranky mailers. - g Never use the null sender as the envelope sender, even when + F=g Never use the null sender as the envelope sender, even when running SMTP. This violates RFC 1123. - 7 Strip all output to this mailer to 7 bits. + F=7 Strip all output to this mailer to 7 bits. + +Changed Mailer Flags -New Pre-Defined Macros + F=L Used to set the line limit to 990 bytes for SMTP compatibility. + It now does that only if the L= keyletter is not specified. + This flag is obsolete and should not be used. + +New or Changed Pre-Defined Macros $k UUCP node name from uname(2). @@ -301,6 +319,18 @@ New Pre-Defined Macros $_ RFC 1413-provided sender address. + $w Previously was sometimes the full domain name, sometimes + just the first word. Now guaranteed to be the first word + of the domain name (i.e., the host name). + + $j Previously had to be defined -- it is now predefined to be + the full domain name, if that can be determined. That is, + it is equivalent to $w.$m. + +New Classes + + $=k Initialized to contain $k. + New LHS Token Version 8 allows `$@' on the Left Hand Side of an `R' line to match @@ -378,6 +408,25 @@ Portability and Security Enhancements Several fixes have been made to increase the paranoia factor. + In particular, the permissions required for .forward and :include: + files have been tightened up considerably. V5 would pretty much + read any file it could get to as root, which exposed some security + holes. V8 insists that all directories leading up to the .forward + or :include: file be searchable ("x" permission) by the controlling + user" (defined below), that the file itself be readable by the + controlling user, and that .forward files be owned by the user + who is being forwarded to or root. + + The "controlling user" is the user on whose behalf the mail is + being delivered. For example, if you mail to "user1" then the + controlling user for ~user1/.forward and any mailers invoked + by that .forward file, including :include: files. + + Previously, anyone who had a home directory could create a .forward + could forward to a program. Now, sendmail checks to make sure + that they have an "approved shell", that is, a shell listed in + the /etc/shells file. + Miscellaneous Enhancements Sendmail writes a /etc/sendmail.pid file with the current process id diff --git a/usr.sbin/sendmail/FAQ b/usr.sbin/sendmail/FAQ index 503e1dbdcce..43e02f6e1e1 100644 --- a/usr.sbin/sendmail/FAQ +++ b/usr.sbin/sendmail/FAQ @@ -1,7 +1,6 @@ Sendmail Version 8 Frequently Asked Questions - VERY EARLY DRAFT - Last Update: October 30, 1993 + Last Update: January 12, 1994 This FAQ is specific to Version 8 of sendmail. @@ -55,22 +54,31 @@ This FAQ is specific to Version 8 of sendmail. ---------------------------------------------------------------------- * What books are available describing sendmail? - There are currently no books available devoted to sendmail. - However, there are several books that have sendmail chapters. + There is one book available devoted to sendmail, and + several books that have sendmail chapters. Nemeth, Snyder, and Seebass, _Unix System Administration Handbook_. Prentice-Hall. Carl-Mitchell and Quarterman, _Practical Internetworking with TCP/IP and UNIX_. Addison-Wesley. Hunt, _TCP/IP Network Administration_. O'Reilly & Associates. + Costales, Allman, and Rickert, _Sendmail_. O'Reilly & + Associates. - At least two books are due out "soon": + Another book is due out "soon": - Costales, Allman, and Rickert, _Sendmail_. O'Reilly & -| Associates (to appear November 1, 1993). Avolio & Vixie, _Sendmail Theory and Practice_. Digital Press (release date unknown). ---------------------------------------------------------------------- + * Why does the Costales book have a bat on the cover? + + Do you want the real answer or the fun answer? The real + answer is that Bryan Costales was presented with a choice + of three pictures, and he picked the bat because it appealed + to him the most. The fun answer is that, although sendmail + has a reputation for being scary, like a bat, it is really + a rather friendly and intelligent beast. +---------------------------------------------------------------------- * How do I make all my addresses appear to be from a single host? Using the V8 configuration macros, use: @@ -188,16 +196,16 @@ This FAQ is specific to Version 8 of sendmail. ends. If they disagree, large packets will be trashed and the connection will hang. ---------------------------------------------------------------------- -+ * I just upgraded to 8.x and suddenly I'm getting messages in my -+ syslog of the form "collect: I/O error on connection". What is -+ going wrong? -+ -+ Nothing. This is just a diagnosis of a condition that had -+ not been diagnosed before. If you are getting a lot of these -+ from a single host, there is probably some incompatibility -+ between 8.x and that host. If you get a lot of them in general, -+ you may have network problems that are causing connections to -+ get reset. + * I just upgraded to 8.x and suddenly I'm getting messages in my + syslog of the form "collect: I/O error on connection". What is + going wrong? + + Nothing. This is just a diagnosis of a condition that had + not been diagnosed before. If you are getting a lot of these + from a single host, there is probably some incompatibility + between 8.x and that host. If you get a lot of them in general, + you may have network problems that are causing connections to + get reset. ---------------------------------------------------------------------- * How can I get sendmail to deliver local mail to $HOME/.mail instead of into /usr/spool/mail (or /usr/mail)? @@ -228,3 +236,87 @@ This FAQ is specific to Version 8 of sendmail. This will make message sent to "list" come out as being "From list-request" instead of "From eric". ---------------------------------------------------------------------- + * There are four UUCP mailers listed in the configuration files. + Which one should I use? + + The choice is partly a matter of local preferences and what is + running at the other end of your UUCP connection. Unlike good + protocols that define what will go over the wire, UUCP uses + the policy that you should do what is right for the other end; + if they change, you have to change. This makes it hard to + do the right thing, and discourages people from updating their + software. In general, if you can avoid UUCP, please do. + + If you can't avoid it, you'll have to find the version that is + closest to what the other end accepts. Following is a summary + of the UUCP mailers available. + + uucp-old (obsolete name: "uucp") + This is the oldest, the worst (but the closest to UUCP) way of + sending messages accros UUCP connections. It does bangify + everything and prepends $U (your UUCP name) to the sender's + address (which can already be a bang path itself). It can + only send to one address at a time, so it spends a lot of + time copying duplicates of messages. Avoid this if at all + possible. + + uucp-new (obsolete name: "suucp") + The same as above, except that it assumes that in one rmail + command you can specify several recipients. It still has a + lot of other problems. + + uucp-dom + This UUCP mailer keeps everything as domain addresses. + Basically, it uses the SMTP mailer rewriting rules. + + Unfortunately, a lot of UUCP mailer transport agents require + bangified addresses in the envelope, although you can use + domain-based addresses in the message header. (The envelope + shows up as the From_ line on UNIX mail.) So.... + + uucp-uudom + This is a cross between uucp-new (for the envelope addresses) + and uucp-dom (for the header addresses). It bangifies the + envelope sender (From_ line in messages) without adding the + local hostname, unless there is no host name on the address + at all (e.g., "wolf") or the host component is a UUCP host name + instead of a domain name ("somehost!wolf" instead of + "some.dom.ain!wolf"). + + Examples: + + We are on host grasp.insa-lyon.fr (UUCP host name "grasp"). The + following summarizes the sender rewriting for various mailers. + + Mailer sender rewriting in the envelope + ------ ------ ------------------------- + uucp-{old,new} wolf grasp!wolf + uucp-dom wolf wolf@grasp.insa-lyon.fr + uucp-uudom wolf grasp.insa-lyon.fr!wolf + + uucp-{old,new} wolf@fr.net grasp!fr.net!wolf + uucp-dom wolf@fr.net wolf@fr.net + uucp-uudom wolf@fr.net fr.net!wolf + + uucp-{old,new} somehost!wolf grasp!somehost!wolf + uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr + uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf +---------------------------------------------------------------------- ++ * I'm trying to to get my mail to go into queue only mode, and it ++ delivers the mail interactively anyway. (Or, I'm trying to use ++ the "don't deliver to expensive mailer" flag, and it doesn't ++ delivers the mail interactively anyway.) I can see it does it: ++ here's the output of "sendmail -v foo@somehost" (or Mail -v or ++ equivalent). ++ ++ The -v flag to sendmail (which is implied by the -v flag to ++ Mail and other programs in that family) tells sendmail to ++ watch the transaction. Since you have explicitly asked to ++ see what's going on, it assumes that you do not want to to ++ auto-queue, and turns that feature off. Remove the -v flag ++ and use a "tail -f" of the log instead to see what's going on. ++ ++ If you are trying to use the "don't deliver to expensive mailer" ++ flag (mailer flag "e"), be sure you also turn on global option ++ "c" -- otherwise it ignores the mailer flag. +---------------------------------------------------------------------- diff --git a/usr.sbin/sendmail/KNOWNBUGS b/usr.sbin/sendmail/KNOWNBUGS index 19727be2f31..1894e012bc8 100644 --- a/usr.sbin/sendmail/KNOWNBUGS +++ b/usr.sbin/sendmail/KNOWNBUGS @@ -1,7 +1,7 @@ K N O W N B U G S I N S E N D M A I L - (for 8.6.3) + (for 8.6.5) The following are bugs or deficiencies in sendmail that I am aware of @@ -9,14 +9,16 @@ but which have not been fixed in the current release. You probably want to get the most up to date version of this from FTP.CS.Berkeley.EDU in /ucb/sendmail/KNOWNBUGS. -* "SYSERR: openmailer(local): fd 1 not open" message +This list is not guaranteed to be complete, especially for fixed bugs. +Many bugs are reported and fixed without ever making it as far as this +file. See the file RELEASE_NOTES (in the root directory of the sendmail +distribution) for more details. + + ++----------------------------------------------+ +| THE FOLLOWING PROBLEMS ARE STILL OUTSTANDING | ++----------------------------------------------+ - File descriptor 1 (standard output) should not be closed during normal - processing. This is checked periodically, and sometimes this condition - is found and this message is produced. Sendmail repairs the problem, - and the mail is still delivered, but I still don't know why it happens. - (There was a bug that was fixed in 8.6.beta.13 that might be related, - but I think this bug still exists.) * Null bytes are not handled properly. @@ -26,12 +28,6 @@ in /ucb/sendmail/KNOWNBUGS. restructuring of the code -- for example, almost no C library support could be used to handle strings. -* Route-addrs missing angle brackets. - - There are cases where route-addrs do not get angle brackets around them, - such as in the "-r" flag on mailers or in the From_ line created when - mailing to files. - * Duplicate error messages. Sometimes identical, duplicate error messages can be generated. As @@ -56,4 +52,120 @@ in /ucb/sendmail/KNOWNBUGS. this address. It's not clear what the right behaviour is in this circumstance. -(Version 8.9, last updated 10/31/93) +* REDIRECT aliases don't work with `n' option. + + If you have option `n' set when you use newaliases and have + REDIRECT addresses in your aliases file, you'll get the error + messages during the newaliases instead of when email is sent to + the address in question. The workaround is to turn off the `n' + option. + +* MX records that point at non-existent hosts work strangly. + + Consider the DNS records: + + hostH MX 1 hostA + MX 2 hostB + hostA A 128.32.8.9 + + (note that there is no A record for hostB). If hostA is down, + an attempt to send to hostH gives "host unknown" -- that is, it + reflects out the status on the last host it tries, which in this + case is hostB, which is unknown. It probably ought to eliminate + hostB early in processing. + +* NAME environment variables with commas break. + + If you define your NAME environment variable to have a comma + (e.g., ``Lastname, Firstname''), and you are using the $q definition + that uses ``name <address>'' format, sendmail treats the first and + last names as two addresses, thus producing a bogus From line. You + can work around this by changing the $q definition to use + ``address (name)''. + +* \231 considered harmful. + + Header addresses that have the \231 character (and possibly others + in the range \201 - \237) behave in odd and usually unexpected ways. + +* DEC Alphas (OSF/1 1.3) sometimes time out on sending mail. + + I have one report that DEC Alphas acting as SMTP clients sometimes + will apparently not see the "250 OK" message in response to the + dot that indicates the end of the message. This only happens if + the message is run from the queue -- if it gets through on first + try, everything is fine. I have been unable to reproduce this + problem at Berkeley. + +* accept() problem on SVR4. + + Apparently, the sendmail daemon loop (doing accept()s on the network) + can get into a wierd state on SVR4; it starts logging ``SYSERR: + getrequests: accept: Protocol Error''. The workaround is to kill + and restart the sendmail daemon. We don't have an SVR4 system at + Berkeley that carries more than token mail load, so I can't validate + this. It is likely to be a glitch in the sockets emulation, since + "Protocol Error" is not possible error code with Berkeley TCP/IP. + + I've also had someone report the message ``sendmail: accept: + SIOCGPGRP failed errno 22'' on an SVR4 system. This message is + not in the sendmail source code, so I assume it is also a bug + in the sockets emulation. (Errno 22 is EINVAL "Invalid Argument" + on all the systems I have available, including Solaris 2.x.) + +* Sending user deletion not done properly in :include: lists. + + If you don't have the "m" (me too) option set, then a person + sending to a list that contains themselves should not get a copy + of the message. However, if that list points to a :include: file + that has one address per line, this will break, and the sender + will always get a copy of their own message, just as though the + "m" option were set. + + You can eliminate this by adding commas at the end of each line + of the :include: file. + + ++-------------------------------------------+ +| THE FOLLOWING PROBLEMS ARE FIXED IN 8.6.5 | ++-------------------------------------------+ + +* Route-addrs missing angle brackets. + + There are cases where route-addrs do not get angle brackets around them, + such as in the "-r" flag on mailers or in the From_ line created when + mailing to files. + +* No "exposed users" in "nullrelay" configuration. + + The "nullrelay" configuration hides all addresses behind the mail + hub name. Some sites might prefer to expose some names such as + root. This information is always available in Received: lines. + +* owner-* alias that uses :include: broken. + + If you have aliases set up as: + + owner-listname: :include:/some/file + + sendmail will break because it considers this a "sender address", + which is not permitted to use the :include: syntax. The easiest + workaround is to change this to: + + owner-listname: :include:/some/file, + + (note the trailing comma); a somewhat cleaner solution is to use: + + owner-listname: listname-request + listname-request: :include:/some/file + +* "SYSERR: openmailer(local): fd 1 not open" message + + File descriptor 1 (standard output) should not be closed during normal + processing. This is checked periodically, and sometimes this condition + is found and this message is produced. Sendmail repairs the problem, + and the mail is still delivered, but I still don't know why it happens. + (There was a bug that was fixed in 8.6.beta.13 that might be related, + but I think this bug still exists.) + +(Version 8.15, last updated 1/12/94) diff --git a/usr.sbin/sendmail/READ_ME b/usr.sbin/sendmail/READ_ME index 740fa6cc159..d91a54dad35 100644 --- a/usr.sbin/sendmail/READ_ME +++ b/usr.sbin/sendmail/READ_ME @@ -1,5 +1,5 @@ /*- - * @(#)READ_ME 8.5 (Berkeley) 9/28/93 + * @(#)READ_ME 8.8 (Berkeley) 1/4/94 */ SENDMAIL RELEASE 8 @@ -41,6 +41,43 @@ I'm also told that the groff distribution from MIT has a tmac.doc macro set that is compatible with these macros. ++-----------------------+ +| RELATED DOCUMENTATION | ++-----------------------+ + +There are other files you should read. Rooted in this directory are: + + CHANGES-R5-R8 + Describes changes between Release 5 and Release 8 of sendmail. + There are some things that may behave somewhat differently. + For example, the rules governing when :include: files will + be read have been tightened up for security reasons. + FAQ + Answers to Frequently Asked Questions. + KNOWNBUGS + Known bugs in the current release. I try to keep this up + to date -- get the latest version from FTP.CS.Berkeley.EDU + in /ucb/sendmail/KNOWNBUGS. + RELEASE_NOTES + A detailed description of the changes in each version. This + is quite long, but informative. + src/READ_ME + Details on compiling and installing sendmail. + cf/README + Details on configuring sendmail. + doc/op/op.me + The sendmail Installation & Operations Guide. Be warned: if + you are running this off on SunOS or some other system with an + old version of -me, you need to add the following macro to the + macros: + + .de sm + \s-1\\$1\\s0\\$2 + .. + + This sets a word in a smaller pointsize. + + +--------------+ | RELATED RFCS | +--------------+ @@ -98,6 +135,37 @@ also probably find that you have to add -I/where/you/put/db/include to the sendmail makefile to get db.h to work properly. ++-------------+ +| USE WITH MH | ++-------------+ + +This version of sendmail notices and reports certain kinds of SMTP +protocol violations that were ignored by older versions. If you +are running MH you may wish to install the patch in contrib/mh.patch +that will prevent these warning reports. This patch also works +with the old version of sendmail, so it's safe to go ahead and +install it. + + ++-----------+ +| MAKEFILES | ++-----------+ + +The Makefiles in this release use the new Berkeley "make" that is +available in BSD Net/2 and 4.4BSD. If you are using this version +of make, you may notice one or two places where the Makefile includes +"../../Makefile.inc". This file is not included with the sendmail +distribution because it's not part of sendmail. However, it is, +in toto: + + # @(#)Makefile.inc 8.1 (Berkeley) 6/6/93 + + BINDIR?= /usr/sbin + +The other directories should all have Makefile.dist files that work +on the old make. For more details, see src/READ_ME. + + +---------------------+ | DIRECTORY STRUCTURE | +---------------------+ diff --git a/usr.sbin/sendmail/RELEASE_NOTES b/usr.sbin/sendmail/RELEASE_NOTES index 951f2a1e3a4..7bbd6845111 100644 --- a/usr.sbin/sendmail/RELEASE_NOTES +++ b/usr.sbin/sendmail/RELEASE_NOTES @@ -1,3 +1,288 @@ +8.6.5/8.6.5 94/01/13 + Security fix: /.forward could be owned by anyone (the test + to allow root to own any file was backwards). From + Bob Campbell at U.C. Berkeley. + Security fix: group ids were not completely set when programs + were invoked. This caused programs to have group + permissions they should not have had (usually group + daemon instead of their own group). In particular, + Perl scripts would refuse to run. + Security: check to make sure files that are written are not + symbolic links (at least under some circumstances). + Although this does not respond to a specific known + attack, it's just a good idea. Suggested by + Christian Wettergren. + Security fix: if a user had an NFS mounted home directory on + a system with a restricted shell listed in their + /etc/passwd entry, they could still execute any + program by putting that in their .forward file. + This fix prevents that by insisting that their shell + appear in /etc/shells before allowing a .forward to + execute a program or write a file. You can disable + this by putting "*" in /etc/shells. It also won't + permit world-writable :include: files to reference + programs or files (there's no way to disable this). + These behaviours are only one level deep -- for + example, it is legal for a world-writable :include: + file to reference an alias that writes a file, on + the assumption that the alias file is well controlled. + Security fix: root was not treated suspiciously enough when + looking into subdirectories. This would potentially + allow a cracker to examine files that were publically + readable but in a non-publically searchable directory. + Fix a problem that causes an error on QUIT on a cached + connection to create problems on the current job. + These are typically unrelated, so errors occur in + the wrong place. + Reset CurrentLA in sendall() -- this makes sendmail queue + runs more responsive to load average, and fixes a + problem that ignored the load average in locally + generated mail. From Eric Wassenaar. + Fix possible core dump on aliases with null LHS. From + John Orthoefer of BB&N. + Revert to using flock() whenever possible -- there are just + too many bugs in fcntl() locking, particularly over + NFS, that cause sendmail to fail in perverse ways. + Fix a bug that causes the connection cache to get confused + when sending error messages. This resulted in + "unexpected close" messages. It should fix itself + on the following queue run. Problem noted by + Liudvikas Bukys of Rochester University. + Include $k in $=k as documented in the Install & Op Guide. + This seems odd, but it was documented.... From + Michael Corrigan of UCSD. + Fix problem that caused :include:s from alias files to be + forced to be owned by root instead of daemon + (actually DefUid). From Tim Irvin. + Diagnose unrecognized I option values -- from Mortin Forssen + of the Chalmers University of Technology. + Make "error" mailer work consistently when there is no error + code associated with it -- previously it returned OK + even though there was a real problem. Now it assumes + EX_UNAVAILABLE. + Fix bug that caused the last header line of messages that had + no body and which were terminated with EOF instead of + "." to be discarded. Problem noted by Liudvikas Bukys. + Fix core dump on SMTP mail to programs that failed -- it tried + to go to a "next MX host" when none existed, causing + a core dump. From der Mouse at McGill University. + Change IDENTPROTO from a defined/not defined to a 0/1 switch; + this makes it easier to turn it off (using + -DIDENTPROTO=0 in the Makefile). From der Mouse. + Fix YP_MASTER_NAME store to use the unupdated result of + gethostname() (instead of myhostname(), which tries + to fully qualify the name) to be consistent with + SunOS. If your hostname is unqualified, this fixes + transfers to slave servers. Bug noted by Keith + McMillan of Ameritech Services, Inc. + Fix Ultrix problem: gethostbyname() can return a very large + (> 500) h_length field, which causes the sockaddr + to be trashed. Use the size of the sockaddr instead. + Fix from Bob Manson of Ohio State. + Don't assume "-a." on host lookups if NAMED_BIND is not + defined -- this confuses gethostbyname on hosts + file lookups, which doesn't understand the trailing + dot convention. + Log SMTP server subprocesses that die with a signal instead + of from a clean exit. + If you don't have option "I" set, don't assume that a DNS + "host unknown" message is authoritative -- it + might still be found in /etc/hosts. + Fix a problem that would cause Deferred: messages to be sent + as the subject of an error message, even though the + actual cause of a message was more severe than that. + Problem noted by Chris Seabrook of OSSI. + Fix race condition in DBM alias file locking. From Kyle + Jones of UUNET. + Limit delivery syslog line length to avoid bugs in some + versions of syslog(3). This adds a new compile time + variable SYSLOG_BUFSIZE. From Jay Plett of Princeton + University, which is in turn derived from IDA. + Fix quotes inside of comments in addresses -- previously + it insisted that they be balanced, but the 822 spec + says that they should be ignored. + Dump open file state to syslog upon receiving SIGUSR1 (for + debugging). This also evaluates ruleset 89, if set + (with the null input), and logs the result. This + should be used sparingly, since the rewrite process + is not reentrant. + Change -qI, -qR, and -qS flags to be case-insensitive as + documented in the Bat Book. + If the mailer returned EX_IOERR or EX_OSERR, sendmail did not + return an error message and did not requeue the message. + Fix based on code from Roland Dirlewanger of + Reseau Regional Aquarel, Bordeaux, France. + Fix a problem that caused a seg fault if you got a 421 error + code during some parts of connection initialization. + I've only seen this when talking to buggy mailers on + the other end, but it shouldn't give a seg fault in + any case. From Amir Plivatsky. + Fix core dump caused by a ruleset call that returns null. + Fix from Bryan Costales of ICSI. + Full-Name: field was being ignored. Fix from Motonori Nakamura + of Kyoto University. + Fix a possible problem with very long input lines in setproctitle. + From P{r Emanuelsson. + Avoid putting "This is a warning message" out on return receipts. + Suggested by Douglas Anderson. + Detect loops caused by recursive ruleset calls. Suggested by + Bryan Costales. + Initialize non-alias maps during alias rebuilds -- they may be + needed for parsing. Problem noted by Douglas Anderson. + Log sender address even if no message was collected in SMTP + (e.g., if all RCPTs failed). Suggested by Motonori + Nakamura. + Don't reflect the owner-list contents into the envelope sender + address if the value contains ", :, /, or | (to avoid + illegal addresses appearing there). + Efficiency hack for toktype macro -- from Craig Partridge of + BB&N. + Clean up DNS error printing so that a host name is always + included. + Remember to set $i during queue runs. Reported by Stephen + Campbell of Dartmouth University. + If ${HOSTALIASES} is set, use it during canonification so that + headers are properly mapped. Reported by Anne Bennett + of Concordia University. + Avoid printing misleading error message if SMTP mailer (not + using [IPC]) should die on a core dump. + Avoid incorrect diagnosis of "file 1 closed" when it is caused + by the other end closing the connection. From + Dave Morrison of Oracle. + Improve several of the error messages printed by "mailq" + to include a host name or other useful information. + Add NetInfo preliminary support for NeXT systems. From Vince + DeMarco. + Fix a glitch that sometimes caused :include:s that pointed to + NFS filesystems that were down to give an "aliasing/ + forwarding loop broken" message instead of queueing + the message for retry. Noted by William C Fenner of + the NRL Connection Machine Facility. + Fix a problem that could cause a core dump if the input sequence + had (or somehow acquired) a \231 character. + Make sure that route-addrs always have <angle brackets> around + them in non-SMTP envelopes (SMTP envelopes already do + this properly). + Avoid wierd headers on unbalanced punctuation of the form: + ``Joe User <user)'' -- this caused reference to the + null macro. Fix from Rick McCarty of IO.COM. + Fix a problem that caused an alias "user: user@local.host" to + not have the QNOTREMOTE bit set; this caused configs + to act as if FEATURE(notsticky) was defined even when + it was not. The effect of the problem was to make it + very hard to to set up satellite sites that had a few + local accounts, with everything else forwarded to a + corporate hub. Reported by Detlef Drewanz of the + University of Rostock and Mark Frost of NCD. + Change queuing to not call rulesets 3, {1 or 2}, 4 on header + addresses. This is more efficient (fewer name server + calls) and fixes certain unusual configurations, such + as those that have ruleset 4 do something that is + non-idempotent unless a mailer-specific ruleset did + something else. Problem reported by Brian J. Coan + of the Institute for Global Communications. + Fix the "obsolete argument" routine in main to better understand + new arguments. For example, if you used ``sendmail + -C config -v -q'' it would choke on the -q because + the -C would stop looking for old-format arguments. + Portability fixes for: + SCO UNIX from Murray Kucherawy. + SCO Open Server 3.2v4 from Philippe Brand. + System V Release 4 from Rick Ellis and others. + OSF/1 from Steve Campbell. + DG/UX from Ben Mesander of the USGS and Bryan Curnutt + of Stoner Associates. + Motorola SysV88 from Kevin Johnson of Motorola. + Solaris 2.3 from Casper H.S. Dik of the University + of Amsterdam and John Caruso of University + of Maryland. + FreeBSD from Ollivier Robert. + NetBSD from Adam Glass. + TitanOS from Kate Hedstrom of Rutgers University. + Irix from Bryan Curnutt. + Dynix from Jim Davis of the University of Arizona. + RISC/os. + Linux from John Kennedy of California State University + at Chico. + Solaris 2.x from Tony Boner of the U.S. Air Force. + NEXTSTEP 3.x from Vince DeMarco. + HP-UX from various people. NOTA BENE: the location + of the config file has moved to /usr/lib + to match the HP-UX version of sendmail. + CONFIG: Don't do any recipient rewriting on relay mailer; + since this is intended only for internal use, the + usual RFC 821/822/1123 rules can be relaxed. The + main point of this is to avoid munging (ugh) UUCP + addresses when relaying internally. + CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; + syntax addresses delivered via UUCP. Solution + provided by Peter Wemm. + CONFIG: fix thumb-fumble in default UUCP relaying in ruleset + zero; it caused double @ signs in addresses. From + Irving Reid of the University of Toronto. + CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 + from Markku Toijala of ICL Personal Systems Oy. + CONFIG: Add trailing "." on pseudo-domains for consistency; + this fixes a problem (noted by Al Whaley of Sunnyside) + that made it hard to recognize your own pseudodomain + names. + CONFIG: catch "@host" syntax errors (i.e., null local-parts) + rather than letting them get "local configuration + error"s. Problem noted by John Gardiner Myers. + CONFIG: add uucp-uudom mailer variant, based on code posted + by Spider Boardman <spider@Orb.Nashua.NH.US>; this + has uucp-dom semantics but old UUCP syntax. This + also permits "uucp-old" as an alias for "uucp" and + "uucp-new" as a synonym for "suucp" for consistency. + CONFIG: add POP mailer support (from Kimmo Suominen + <kim@grendel.lut.fi>). + CONFIG: drop CSNET_RELAY support -- CSNET is long gone. + CONFIG: fix bug caused with domain literal addresses (e.g., + ``[128.32.131.12]'') when FEATURE(allmasquerade) + was set; it would get an additional @masquerade.host + added to the address. Problem noted by Peter Wan + of Georgia Tech. + CONFIG: make sure that the local UUCP name is in $=w. From + Jim Murray of Stratus. + CONFIG: changes to UUCP rewriting to simulate IDA-style "V" + mailer flag. Briefly, if you are sending to host + "foo", then it rewrites "foo!...!baz" to "...!baz", + "foo!baz" remains "foo!baz", and anything else has + the local name prepended. + CONFIG: portability fixes for HP-UX. + DOC: several minor problems fixed in the Install & Op Guide. + MAKEMAP: fix core dump problem on lines that are too long or + which lack newline. From Mark Delany. + MAILSTATS: print sums of columns (total messages & kbytes + in and out of the system). From Tom Ferrin of UC + San Francisco Computer Graphics Lab. + SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: + On HP-UX, /etc/sendmail.cf has been moved to + /usr/lib/sendmail.cf to match HP sendmail. + Permissions have been tightened up on world-writable + :include: files and accounts that have shells + that are not listed in /etc/shells. This may + cause some .forward files that have worked + before to start failing. + SIGUSR1 dumps some state to the log. + NEW FILES: + src/Makefile.DGUX + src/Makefile.Dynix + src/Makefile.FreeBSD + src/Makefile.Mach386 + src/Makefile.NetBSD + src/Makefile.RISCos + src/Makefile.SCO + src/Makefile.SVR4 + src/Makefile.Titan + cf/mailer/pop.m4 + cf/ostype/bsdi1.0.m4 + cf/ostype/dgux.m4 + cf/ostype/dynix3.2.m4 + cf/ostype/sco3.2.m4 + makemap/Makefile.dist + praliases/Makefile.dist + 8.6.4/8.6.4 93/10/31 Repair core-dump problem (write to read-only memory segment) if you fall back to the return-to-Postmaster case in diff --git a/usr.sbin/sendmail/cf/README b/usr.sbin/sendmail/cf/README index 56383488cdb..b604d2453f5 100644 --- a/usr.sbin/sendmail/cf/README +++ b/usr.sbin/sendmail/cf/README @@ -4,7 +4,7 @@ Eric Allman <eric@CS.Berkeley.EDU> - @(#)README 8.15 (Berkeley) 10/31/93 + @(#)README 8.21 (Berkeley) 1/12/94 This document describes the sendmail configuration files being used @@ -31,10 +31,9 @@ right thing to do. This package requires a post-V7 version of m4; if you are running the 4.2bsd, SysV.2, or 7th Edition version, I suggest finding a friend with a newer version. You can m4-expand on their system, then run locally. -SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 (which is a -language unto itself) also works, but I don't intend to work so hard -to keep this up in the future. [Note to GNU folks: the construct -"define(`FOO')" should work without my having to add a null value.] +SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 version 1.1 +also works. Unfortunately, I'm told that the M4 on BSDI 1.0 doesn't +work -- you'll have to use a Net/2 or GNU version. IF YOU DON'T HAVE A BERKELEY MAKE, don't despair! Just run "m4 foo.mc > foo.cf" -- that should be all you need. There is also @@ -52,6 +51,13 @@ I'm not pretending that this README describes everything that these configuration files can do; clever people can probably tweak them to great effect. But it should get you started. +******************************************************************* +*** BE SURE YOU CUSTOMIZE THESE FILES! They have some *** +*** Berkeley-specific assumptions built in, such as the name *** +*** of our UUCP-relay. You'll want to create your own domain *** +*** description, and use that in place of domain/Berkeley.m4. *** +******************************************************************* + +--------------------------+ | INTRODUCTION AND EXAMPLE | @@ -186,8 +192,6 @@ UUCP_RELAY The host that will forward UUCP-addressed email. connected. BITNET_RELAY The host that will forward BITNET-addressed email. If not defined, the .BITNET pseudo-domain won't work. -CSNET_RELAY The host that will forward CSNET-addressed email. - If not defined, the .CSNET pseudo-domain won't work. LOCAL_RELAY The site that will handle unqualified names -- that is, names with out an @domain extension. If not set, they are assumed to belong on this machine. This @@ -241,12 +245,15 @@ uucp The Unix-to-Unix Copy Program mailer. Actually, this is for when you know that the UUCP mailer at the other end can handle multiple recipients in one transfer. When you invoke this, sendmail looks for all names in - the $=U class and sends them to the uucp mailer; all - names in the $=Y class are sent to suucp. Note that + the $=U class and sends them to the uucp-old mailer; all + names in the $=Y class are sent to uucp-new; and all + names in the $=Z class are sent to uucp-uudom. Note that this is a function of what version of rmail runs on the receiving end, and hence may be out of your control. - If smtp is defined, it also defines a "uucp-dom" mailer - that uses domain-style rewriting. + If smtp is defined, it also defines "uucp-dom" and + "uucp-uudom" mailers that use domain-style rewriting. + See the section below describing UUCP mailers in more + detail. usenet Usenet (network news) delivery. If this is specified, an extra rule is added to ruleset 0 that forwards all @@ -258,6 +265,8 @@ fax Facsimile transmission. This is experimental and based on Sam Leffler's FlexFAX software. For more information, see below. +pop Post Office Protocol. + +----------+ | FEATURES | @@ -433,6 +442,92 @@ same line; these are usually aliases for the same host (or are at least in the same company). ++--------------------+ +| USING UUCP MAILERS | ++--------------------+ + +It's hard to get UUCP mailers right because of the extremely ad hoc +nature of UUCP addressing. These config files are really designed +for domain-based addressing, even for UUCP sites. + +There are four UUCP mailers available. The choice of which one to +use is partly a matter of local preferences and what is running at +the other end of your UUCP connection. Unlike good protocols that +define what will go over the wire, UUCP uses the policy that you +should do what is right for the other end; if they change, you have +to change. This makes it hard to do the right thing, and discourages +people from updating their software. In general, if you can avoid +UUCP, please do. + +The major choice is whether to go for a domainized scheme or a +non-domainized scheme. This depends entirely on what the other +end will recognize. If at all possible, you should encourage the +other end to go to a domain-based system -- non-domainized addresses +don't work entirely properly. + +The four mailers are: + + uucp-old (obsolete name: "uucp") + This is the oldest, the worst (but the closest to UUCP) way of + sending messages accros UUCP connections. It does bangify + everything and prepends $U (your UUCP name) to the sender's + address (which can already be a bang path itself). It can + only send to one address at a time, so it spends a lot of + time copying duplicates of messages. Avoid this if at all + possible. + + uucp-new (obsolete name: "suucp") + The same as above, except that it assumes that in one rmail + command you can specify several recipients. It still has a + lot of other problems. + + uucp-dom + This UUCP mailer keeps everything as domain addresses. + Basically, it uses the SMTP mailer rewriting rules. + + Unfortunately, a lot of UUCP mailer transport agents require + bangified addresses in the envelope, although you can use + domain-based addresses in the message header. (The envelope + shows up as the From_ line on UNIX mail.) So.... + + uucp-uudom + This is a cross between uucp-new (for the envelope addresses) + and uucp-dom (for the header addresses). It bangifies the + envelope sender (From_ line in messages) without adding the + local hostname, unless there is no host name on the address + at all (e.g., "wolf") or the host component is a UUCP host name + instead of a domain name ("somehost!wolf" instead of + "some.dom.ain!wolf"). + +Examples: + +We are on host grasp.insa-lyon.fr (UUCP host name "grasp"). The +following summarizes the sender rewriting for various mailers. + +Mailer sender rewriting in the envelope +------ ------ ------------------------- +uucp-{old,new} wolf grasp!wolf +uucp-dom wolf wolf@grasp.insa-lyon.fr +uucp-uudom wolf grasp.insa-lyon.fr!wolf + +uucp-{old,new} wolf@fr.net grasp!fr.net!wolf +uucp-dom wolf@fr.net wolf@fr.net +uucp-uudom wolf@fr.net fr.net!wolf + +uucp-{old,new} somehost!wolf grasp!somehost!wolf +uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr +uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf + +If you are using one of the domainized UUCP mailers, you really want +to convert all UUCP addresses to domain format -- otherwise, it will +do it for you (and probably not the way you expected). For example, +if you have the address foo!bar!baz (and you are not sending to foo), +the heuristics will add the @uucp.relay.name or @local.host.name to +this address. However, if you map foo to foo.host.name first, it +will not add the local hostname. You can do this using the uucpdomain +feature. + + +-------------------+ | TWEAKING RULESETS | +-------------------+ @@ -691,7 +786,7 @@ Sam Leffler's FlexFAX software is still in beta test -- but he expects a public version out "later this week" [as of 3/1/93]. The following blurb is direct from Sam: - $Header: /cvsroot/src/usr.sbin/sendmail/cf/Attic/README,v 1.6 1993/11/05 07:52:25 glass Exp $ + $Header: /cvsroot/src/usr.sbin/sendmail/cf/Attic/README,v 1.7 1994/01/31 02:38:21 glass Exp $ How To Obtain This Software (in case all you get is this file) -------------------------------------------------------------- @@ -826,7 +921,14 @@ Some options are likely to be deprecated in future versions -- that is, the option is only included to provide back-compatibility. These are marked with "*". +Remember that these options are M4 variables, and hence may need to +be quoted. In particular, arguments with commas will usually have to +be ``double quoted, like this phrase'' to avoid having the comma +confuse things. This is common for alias file definitions and for +the read timeout. + M4 Variable Name Default Mac/Opt Description +================ ======= ======= =========== confMAILER_NAME MAILER-DAEMON Dn The sender name used for internally generated outgoing messages. @@ -846,8 +948,8 @@ confMIN_FREE_BLOCKS 4 Ob Minimum number of free blocks SMTP mail. confBLANK_SUB . OB Blank (space) substitution character. -confCON_EXPENSIVE False Oc Connect immediately to - mailers marked expensive? +confCON_EXPENSIVE False Oc Avoid connecting immediately + to mailers marked expensive? confCHECKPOINT_INTERVAL 10 OC Checkpoint queue files every N recipients. confDELIVERY_MODE background Od Default delivery mode. @@ -1019,8 +1121,8 @@ RULESETS (* means built in to sendmail) MAILERS 0 local, prog local and program mailers - 1 smtp SMTP channel - 2 uucp UNIX-to-UNIX Copy Program + 1 [e]smtp, relay SMTP channel + 2 uucp-* UNIX-to-UNIX Copy Program 3 netnews Network News delivery 4 fax Sam Leffler's FlexFAX software @@ -1029,7 +1131,7 @@ MACROS A B Bitnet Relay - C CSNET Relay + C D The local domain -- usually not needed E F FAX Relay diff --git a/usr.sbin/sendmail/cf/cf/Makefile b/usr.sbin/sendmail/cf/cf/Makefile index 9a72e6670d5..6e2c706797d 100644 --- a/usr.sbin/sendmail/cf/cf/Makefile +++ b/usr.sbin/sendmail/cf/cf/Makefile @@ -1,4 +1,4 @@ -# @(#)Makefile 8.4 (Berkeley) 10/15/93 +# @(#)Makefile 8.5 (Berkeley) 12/1/93 M4= m4 #M4= /usr/src/usr.bin/m4/obj/m4 @@ -15,13 +15,14 @@ RM= rm -f ALL= cs-hidden.cf cs-exposed.cf \ hpux-cs-exposed.cf hpux-cs-hidden.cf \ + riscos-cs-exposed.cf \ sunos3.5-cs-exposed.cf sunos3.5-cs-hidden.cf \ sunos4.1-cs-exposed.cf sunos4.1-cs-hidden.cf \ ultrix4.1-cs-exposed.cf ultrix4.1-cs-hidden.cf \ osf1-cs-exposed.cf osf1-cs-hidden.cf \ mail.cs.cf mail.eecs.cf ucbvax.cf vangogh.cf \ chez.cf knecht.cf cogsci.cf alpha.cf s2k.cf auspex.cf \ - python.cf \ + python.cf sun-lamp.cf boat-anchor.cf trinity.cf \ clientproto.cf tcpproto.cf uucpproto.cf all: $(ALL) diff --git a/usr.sbin/sendmail/cf/cf/tcpproto.mc b/usr.sbin/sendmail/cf/cf/tcpproto.mc index 7a510cc6f6c..aa31ca152dc 100644 --- a/usr.sbin/sendmail/cf/cf/tcpproto.mc +++ b/usr.sbin/sendmail/cf/cf/tcpproto.mc @@ -44,9 +44,7 @@ divert(-1) include(`../m4/cf.m4') VERSIONID(`@(#)tcpproto.mc 8.2 (Berkeley) 8/21/93') -OSTYPE(bsd4.4)dnl +FEATURE(nouucp) -FEATURE(nouucp)dnl - -MAILER(local)dnl -MAILER(smtp)dnl +MAILER(local) +MAILER(smtp) diff --git a/usr.sbin/sendmail/cf/cf/uucpproto.mc b/usr.sbin/sendmail/cf/cf/uucpproto.mc index 9dbded4f3e2..c460d76b3cd 100644 --- a/usr.sbin/sendmail/cf/cf/uucpproto.mc +++ b/usr.sbin/sendmail/cf/cf/uucpproto.mc @@ -43,8 +43,6 @@ divert(-1) include(`../m4/cf.m4') VERSIONID(`@(#)uucpproto.mc 8.3 (Berkeley) 8/21/93') -OSTYPE(bsd4.4)dnl - FEATURE(nodns)dnl MAILER(local)dnl diff --git a/usr.sbin/sendmail/cf/domain/Berkeley.m4 b/usr.sbin/sendmail/cf/domain/Berkeley.m4 index c151c4e2fd8..c3320e00f0a 100644 --- a/usr.sbin/sendmail/cf/domain/Berkeley.m4 +++ b/usr.sbin/sendmail/cf/domain/Berkeley.m4 @@ -33,10 +33,9 @@ divert(-1) # SUCH DAMAGE. # divert(0) -VERSIONID(`@(#)Berkeley.m4 8.3 (Berkeley) 10/5/93') +VERSIONID(`@(#)Berkeley.m4 8.4 (Berkeley) 12/20/93') define(`UUCP_RELAY', `ucbvax.Berkeley.EDU')dnl define(`BITNET_RELAY', `jade.Berkeley.EDU')dnl -define(`CSNET_RELAY', `Relay.CV.COM')dnl define(`confFORWARD_PATH', `$z/.forward.$w:$z/.forward')dnl define(`confCW_FILE', `-o /etc/sendmail.cw')dnl FEATURE(redirect)dnl diff --git a/usr.sbin/sendmail/cf/feature/bitdomain.m4 b/usr.sbin/sendmail/cf/feature/bitdomain.m4 index f9302f43334..d90bb106346 100644 --- a/usr.sbin/sendmail/cf/feature/bitdomain.m4 +++ b/usr.sbin/sendmail/cf/feature/bitdomain.m4 @@ -34,7 +34,7 @@ divert(-1) # divert(0) -VERSIONID(`@(#)bitdomain.m4 8.3 (Berkeley) 8/7/93') +VERSIONID(`@(#)bitdomain.m4 8.4 (Berkeley) 11/30/93') divert(-1) @@ -45,5 +45,5 @@ POPDIVERT PUSHDIVERT(8) # handle BITNET mapping -R$* < @ $+ .BITNET > $* $: $1 < @ $(bitdomain $2 $: $2.BITNET $) > $3 +R$* < @ $+ .BITNET. > $* $: $1 < @ $(bitdomain $2 $: $2.BITNET. $) > $3 POPDIVERT diff --git a/usr.sbin/sendmail/cf/feature/uucpdomain.m4 b/usr.sbin/sendmail/cf/feature/uucpdomain.m4 index c338766c532..931a3150444 100644 --- a/usr.sbin/sendmail/cf/feature/uucpdomain.m4 +++ b/usr.sbin/sendmail/cf/feature/uucpdomain.m4 @@ -34,7 +34,7 @@ divert(-1) # divert(0) -VERSIONID(`@(#)uucpdomain.m4 8.3 (Berkeley) 8/7/93') +VERSIONID(`@(#)uucpdomain.m4 8.4 (Berkeley) 11/30/93') divert(-1) @@ -45,5 +45,5 @@ POPDIVERT PUSHDIVERT(8) # handle UUCP mapping -R$* < @ $+ .UUCP > $* $: $1 < @ $(uudomain $2 $: $2.UUCP $) > $3 +R$* < @ $+ .UUCP. > $* $: $1 < @ $(uudomain $2 $: $2.UUCP. $) > $3 POPDIVERT diff --git a/usr.sbin/sendmail/cf/m4/cf.m4 b/usr.sbin/sendmail/cf/m4/cf.m4 index 117f4a304e0..528cbfffef9 100644 --- a/usr.sbin/sendmail/cf/m4/cf.m4 +++ b/usr.sbin/sendmail/cf/m4/cf.m4 @@ -51,6 +51,7 @@ divert(-1) changecom() undefine(`format') +undefine(`hpux') ifdef(`pushdef', `', `errprint(`You need a newer version of M4, at least as new as System V or GNU') @@ -92,7 +93,7 @@ define(`DOL', ``$'$1') define(`SITECONFIG', `CONCAT(D, $3, $2) define(`_CLASS_$3_', `')dnl -ifelse($3, U, Cw$2, `dnl') +ifelse($3, U, Cw$2 $2.UUCP, `dnl') define(`SITE', `ifelse(CONCAT($'2`, $3), SU, CONCAT(CY, $'1`), CONCAT(C, $3, $'1`))') @@ -145,4 +146,4 @@ define(`confMIME_FORMAT_ERRORS', `True') define(`confTRY_NULL_MX_LIST', `False') divert(0)dnl -VERSIONID(`@(#)cf.m4 8.2 (Berkeley) 7/18/93') +VERSIONID(`@(#)cf.m4 8.4 (Berkeley) 12/24/93') diff --git a/usr.sbin/sendmail/cf/m4/proto.m4 b/usr.sbin/sendmail/cf/m4/proto.m4 index 04019de4dd8..410e32b7031 100644 --- a/usr.sbin/sendmail/cf/m4/proto.m4 +++ b/usr.sbin/sendmail/cf/m4/proto.m4 @@ -34,7 +34,7 @@ divert(-1) # divert(0) -VERSIONID(`@(#)proto.m4 8.20 (Berkeley) 10/31/93') +VERSIONID(`@(#)proto.m4 8.30 (Berkeley) 1/12/94') MAILER(local)dnl @@ -93,12 +93,6 @@ DB`'BITNET_RELAY CPBITNET ')dnl -ifdef(`CSNET_RELAY', -`# CSNET relay host -DC`'CSNET_RELAY -CPCSNET - -')dnl ifdef(`FAX_RELAY', `# FAX relay host DF`'FAX_RELAY @@ -185,7 +179,7 @@ Ob`'confMIN_FREE_BLOCKS # substitution for space (blank) characters OB`'confBLANK_SUB -# connect to "expensive" mailers on initial submission? +# avoid connecting to "expensive" mailers on initial submission? Oc`'confCON_EXPENSIVE # checkpoint queue runs after every N successful deliveries @@ -420,6 +414,9 @@ R$+ @ $+ $: $1 < @ $2 > focus on domain R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right R$+ < @ $+ > $@ $>_SET_96_ $1 < @ $2 > already canonical +# do some sanity checking +R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs + ifdef(`_NO_UUCP_', `dnl', `# convert old-style addresses to a domain-based address R$- ! $+ $@ $>_SET_96_ $2 < @ $1 .UUCP > resolve uucp names @@ -458,31 +455,34 @@ undivert(2)dnl ifdef(`_NO_UUCP_', `dnl', `ifdef(`UUCP_RELAY', `# pass UUCP addresses straight through -R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP > $3', +R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `# if really UUCP, handle it immediately ifdef(`_CLASS_U_', -`R$* < @ $=U . UUCP > $* $@ $1 < @ $2 . UUCP > $3', `dnl') +`R$* < @ $=U . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl') ifdef(`_CLASS_V_', -`R$* < @ $=V . UUCP > $* $@ $1 < @ $2 . UUCP > $3', `dnl') +`R$* < @ $=V . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl') ifdef(`_CLASS_W_', -`R$* < @ $=W . UUCP > $* $@ $1 < @ $2 . UUCP > $3', `dnl') +`R$* < @ $=W . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl') ifdef(`_CLASS_X_', -`R$* < @ $=X . UUCP > $* $@ $1 < @ $2 . UUCP > $3', `dnl') +`R$* < @ $=X . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl') ifdef(`_CLASS_Y_', -`R$* < @ $=Y . UUCP > $* $@ $1 < @ $2 . UUCP > $3', `dnl') +`R$* < @ $=Y . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl') # try UUCP traffic as a local address -R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP > $3 +R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3 ifdef(`_OLD_SENDMAIL_', -`R$* < @ $+ . $+ . UUCP > $* $@ $1 < @ $2 . $3 . > $4', -`R$* < @ $+ . . UUCP > $* $@ $1 < @ $2 . > $3')') +`R$* < @ $+ . $+ . UUCP . > $* $@ $1 < @ $2 . $3 . > $4', +`R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3')') ') -ifdef(`_NO_CANONIFY_', -`# make sure local host names appear canonical -R$* < @ $=w > $* $: $1 < @ $2 . > $3', +ifdef(`_NO_CANONIFY_', `dnl', `# pass to name server to make hostname canonical R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4') +# local host aliases and pseudo-domains are always canonical +R$* < @ $=w > $* $: $1 < @ $2 . > $3 +R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4 +R$* < @ $* . . > $* $1 < @ $2 . > $3 + undivert(8)dnl # if this is the local hostname, make sure we treat is as canonical @@ -534,13 +534,14 @@ S0 R<@> $#_LOCAL_ $: <> special case error msgs R$*:;<@> $#error $@ USAGE $: "list:; syntax illegal for recipient addresses" +R<@ $+> $#error $@ USAGE $: "user address required" ifdef(`_MAILER_smtp_', `# handle numeric address spec ifdef(`_NO_CANONIFY_', `dnl', `R$* < @ [ $+ ] > $* $: $1 < @ $[ [$2] $] > $3 numeric internet addr') R$* < @ [ $+ ] > $* $: $>_SET_98_ $1 < @ [ $2 ] > $3 numeric internet spec -R$* < @ [ $+ ] > $* $#_SMTP_ $@ [$2] $: $1 @ [$2] $3 still numeric: send', +R$* < @ [ $+ ] > $* $#_SMTP_ $@ [$2] $: $1 < @ [$2] > $3 still numeric: send', `dnl') # now delete the local info -- note $=O to find characters that cause forwarding @@ -564,7 +565,7 @@ R< $+ > $* $: $>90 <$1> $2 try domain', ifdef(`_LOCAL_NOT_STICKY_', `R$=L < @ $=w . > $#_LOCAL_ $: @ $1 special local names R$+ < @ $=w . > $#_LOCAL_ $: $1 dispose directly', -`R$+ < @ $=w . > $: $1 < @ $2 @ $H > first try hub +`R$+ < @ $=w . > $: $1 < @ $2 . @ $H > first try hub ifdef(`_OLD_SENDMAIL_', `R$+ < $+ @ $-:$+ > $# $3 $@ $4 $: $1 < $2 > yep .... R$+ < $+ @ $+ > $#relay $@ $3 $: $1 < $2 > yep .... @@ -576,39 +577,38 @@ undivert(4)dnl ifdef(`_NO_UUCP_', `dnl', `# resolve remotely connected UUCP links (if any) ifdef(`_CLASS_V_', -`R$* < @ $=V . UUCP > $* $: $>_SET_95_ < $V > $1 <@$2.UUCP> $3', +`R$* < @ $=V . UUCP . > $* $: $>_SET_95_ < $V > $1 <@$2.UUCP.> $3', `dnl') ifdef(`_CLASS_W_', -`R$* < @ $=W . UUCP > $* $: $>_SET_95_ < $W > $1 <@$2.UUCP> $3', +`R$* < @ $=W . UUCP . > $* $: $>_SET_95_ < $W > $1 <@$2.UUCP.> $3', `dnl') ifdef(`_CLASS_X_', -`R$* < @ $=X . UUCP > $* $: $>_SET_95_ < $X > $1 <@$2.UUCP> $3', +`R$* < @ $=X . UUCP . > $* $: $>_SET_95_ < $X > $1 <@$2.UUCP.> $3', `dnl')') # resolve fake top level domains by forwarding to other hosts ifdef(`BITNET_RELAY', -`R$*<@$+.BITNET>$* $: $>_SET_95_ < $B > $1 <@$2.BITNET> $3 user@host.BITNET', +`R$*<@$+.BITNET.>$* $: $>_SET_95_ < $B > $1 <@$2.BITNET.> $3 user@host.BITNET', `dnl') -ifdef(`CSNET_RELAY', -`R$*<@$+.CSNET>$* $: $>_SET_95_ < $C > $1 <@$2.CSNET> $3 user@host.CSNET', +ifdef(`_MAILER_pop_', +`R$+ < @ POP. > $#pop $: $1 user@POP', `dnl') ifdef(`_MAILER_fax_', -`R$+ < @ $+ .FAX > $#fax $@ $2 $: $1 user@host.FAX', +`R$+ < @ $+ .FAX. > $#fax $@ $2 $: $1 user@host.FAX', `ifdef(`FAX_RELAY', -`R$*<@$+.FAX>$* $: $>_SET_95_ < $F > $1 <@$2.FAX> $3 user@host.FAX', +`R$*<@$+.FAX.>$* $: $>_SET_95_ < $F > $1 <@$2.FAX.> $3 user@host.FAX', `dnl')') ifdef(`UUCP_RELAY', `# forward non-local UUCP traffic to our UUCP relay -R$*<@$*.UUCP>$* $: $>_SET_95_ < $Y > $1 @ <$2.UUCP> $3 uucp mail', +R$*<@$*.UUCP.>$* $: $>_SET_95_ < $Y > $1 <@$2.UUCP.> $3 uucp mail', `ifdef(`_MAILER_uucp_', `# forward other UUCP traffic straight to UUCP -R< @ $+ .UUCP > : $+ $#uucp $@ $1 $: $2 @host.UUCP:... -R$+ < @ $+ .UUCP > $#uucp $@ $2 $: $1 user@host.UUCP', +R$* < @ $+ .UUCP. > $* $#uucp $@ $2 $: $1 < @ $2 .UUCP. > $3 user@host.UUCP', `dnl')') ifdef(`_MAILER_usenet_', ` # addresses sent to net.group.USENET will get forwarded to a newsgroup -R$+ . USENET $#usenet $: $1', +R$+ . USENET. $#usenet $: $1', `dnl') ifdef(`_LOCAL_RULES_', diff --git a/usr.sbin/sendmail/cf/m4/version.m4 b/usr.sbin/sendmail/cf/m4/version.m4 index 835f0d60272..d92f73f9dfd 100644 --- a/usr.sbin/sendmail/cf/m4/version.m4 +++ b/usr.sbin/sendmail/cf/m4/version.m4 @@ -32,8 +32,8 @@ divert(-1) # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -VERSIONID(`@(#)version.m4 8.6.1.4 (Berkeley) 10/31/93') +VERSIONID(`@(#)version.m4 8.6.1.5 (Berkeley) 1/13/94') # divert(0) # Configuration version number -DZ8.6.4 +DZ8.6.5 diff --git a/usr.sbin/sendmail/cf/mailer/smtp.m4 b/usr.sbin/sendmail/cf/mailer/smtp.m4 index 143095c61a2..9b28f63e298 100644 --- a/usr.sbin/sendmail/cf/mailer/smtp.m4 +++ b/usr.sbin/sendmail/cf/mailer/smtp.m4 @@ -40,13 +40,13 @@ POPDIVERT ### SMTP Mailer specification ### ##################################### -VERSIONID(`@(#)smtp.m4 8.7 (Berkeley) 10/31/93') +VERSIONID(`@(#)smtp.m4 8.13 (Berkeley) 12/27/93') Msmtp, P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, ifdef(`_OLD_SENDMAIL_',, `L=990, ')A=IPC $h Mesmtp, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, ifdef(`_OLD_SENDMAIL_',, `L=990, ')A=IPC $h -Mrelay, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=51, E=\r\n, +Mrelay, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=61, E=\r\n, ifdef(`_OLD_SENDMAIL_',, `L=2040, ')A=IPC $h # @@ -55,10 +55,7 @@ Mrelay, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=51, E=\r\n, S11 R$+ $: $>51 $1 sender/recipient common R$* :; <@> $@ $1 :; list:; special case - -# handle unqualified names -R$* < @ $* > $* $@ $1 < @ $2 > $3 already qualified -R$* $@ $>61 $1 +R$* $@ $>61 $1 qualify unqual'ed names # @@ -87,14 +84,11 @@ R< @ $* > $* $@ < @ $1 > $2 pass route-addr through R$=E < @ $=w . > $@ $1 < @ $2 > exposed user as is R$* < @ $=w . > $: $1 < @ $M > masquerade as domain R$* < @ > $: $1 < @ $j > in case $M undefined - -# handle unqualified names -R$* < @ $* > $* $@ $1 < @ $2 > $3 already qualified -R$* $@ $>61 $1 +R$* $@ $>61 $1 qualify unqual'ed names # -# common rewriting for all SMTP addresses +# convert pseudo-domain addresses to real domain addresses # S51 @@ -103,15 +97,21 @@ R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr> # output fake domains as user%fake@relay ifdef(`BITNET_RELAY', -`R$+ <@ $+ . BITNET > $: $1 % $2 .BITNET < @ $B > user@host.BITNET +`R$+ <@ $+ .BITNET. > $: $1 % $2 .BITNET < @ $B > user@host.BITNET R$+.BITNET <@ $+:$+ > $: $1 .BITNET < @ $3 > strip mailer: part', `dnl') -ifdef(`CSNET_RELAY', -`R$+ <@ $+ . CSNET > $: $1 % $2 .CSNET < @ $C > user@host.CSNET -R$+.CSNET <@ $+:$+ > $: $1 .CSNET < @ $3 > strip mailer: part', - `dnl') -ifdef(`_NO_UUCP_', `dnl', -`R$+ <@ $+ . UUCP > $: $2 ! $1 < @ $j > user@host.UUCP') +ifdef(`_NO_UUCP_', `dnl', ` +# do UUCP heuristics; note that these are shared with UUCP mailers +R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form +R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form + +# leave these in .UUCP form to avoid further tampering +R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. > +R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 > +R< $&h ! > $+ $@ $1 < @ $&h .UUCP. > +R< $+ ! > $+ $: $1 ! $2 < @ $Y > +R$+ < @ > $: $1 < @ $j > in case $Y undefined +R$+ < @ $+ : $+ > $: $1 < @ $3 > strip mailer: part') # @@ -119,6 +119,7 @@ ifdef(`_NO_UUCP_', `dnl', # S61 +R$* < @ $* > $* $@ $1 < @ $2 > $3 already qualified R$=E $@ $1 < @ $j> show exposed names R$+ $: $1 < @ $M > user w/o host R$+ <@> $: $1 < @ $j > in case $M undefined diff --git a/usr.sbin/sendmail/cf/mailer/uucp.m4 b/usr.sbin/sendmail/cf/mailer/uucp.m4 index c12de28b68d..c4b5e8e0f9e 100644 --- a/usr.sbin/sendmail/cf/mailer/uucp.m4 +++ b/usr.sbin/sendmail/cf/mailer/uucp.m4 @@ -42,19 +42,32 @@ POPDIVERT ### UUCP Mailer specification ### ##################################### -VERSIONID(`@(#)uucp.m4 8.6 (Berkeley) 10/31/93') +VERSIONID(`@(#)uucp.m4 8.13 (Berkeley) 1/10/94') -# old UUCP mailer +# +# There are innumerable variations on the UUCP mailer. It really +# is rather absurd. +# + +# old UUCP mailer (two names) Muucp, P=UUCP_MAILER_PATH, F=CONCAT(DFMhuU, UUCP_MAILER_FLAGS), S=12, R=22, M=UUCP_MAX_SIZE, A=UUCP_MAILER_ARGS +Muucp-old, P=UUCP_MAILER_PATH, F=CONCAT(DFMhuU, UUCP_MAILER_FLAGS), S=12, R=22, M=UUCP_MAX_SIZE, + A=UUCP_MAILER_ARGS -# smart UUCP mailer (handles multiple addresses) +# smart UUCP mailer (handles multiple addresses) (two names) Msuucp, P=UUCP_MAILER_PATH, F=CONCAT(mDFMhuU, UUCP_MAILER_FLAGS), S=12, R=22, M=UUCP_MAX_SIZE, A=UUCP_MAILER_ARGS +Muucp-new, P=UUCP_MAILER_PATH, F=CONCAT(mDFMhuU, UUCP_MAILER_FLAGS), S=12, R=22, M=UUCP_MAX_SIZE, + A=UUCP_MAILER_ARGS ifdef(`_MAILER_smtp_', `# domain-ized UUCP mailer Muucp-dom, P=UUCP_MAILER_PATH, F=CONCAT(mDFMhu, UUCP_MAILER_FLAGS), S=52/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), M=UUCP_MAX_SIZE, + A=UUCP_MAILER_ARGS + +# domain-ized UUCP mailer with UUCP-style sender envelope +Muucp-uudom, P=UUCP_MAILER_PATH, F=CONCAT(mDFMhu, UUCP_MAILER_FLAGS), S=72/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), M=UUCP_MAX_SIZE, A=UUCP_MAILER_ARGS') @@ -70,10 +83,15 @@ R<@> $n errors to mailer-daemon R$* :; <@> $@ $1 :; R$* < @ $* . > $1 < @ $2 > strip trailing dots -R$* < @ $j > $1 strip local name +R$* < @ $=w > $1 strip local name +R<@ $- . UUCP > : $+ $1 ! $2 convert to UUCP format +R<@ $+ > : $+ $1 ! $2 convert to UUCP format R$* < @ $- . UUCP > $2 ! $1 convert to UUCP format R$* < @ $+ > $2 ! $1 convert to UUCP format +R$&h ! $+ ! $+ $@ $1 ! $2 $h!...!user => ...!user +R$&h ! $+ $@ $&h ! $1 $h!user => $h!user R$+ $: $U ! $1 prepend our name +R! $+ $: $k ! $1 in case $U undefined # # envelope and header recipient rewriting @@ -81,15 +99,22 @@ R$+ $: $U ! $1 prepend our name S22 # don't touch list:; syntax -R$* :; <@> $@ $1 ;: +R$* :; <@> $@ $1 :; R$* < @ $* . > $1 < @ $2 > strip trailing dots R$* < @ $j > $1 strip local name +R<@ $- . UUCP > : $+ $1 ! $2 convert to UUCP format +R<@ $+ > : $+ $1 ! $2 convert to UUCP format R$* < @ $- . UUCP > $2 ! $1 convert to UUCP format R$* < @ $+ > $2 ! $1 convert to UUCP format +R$&h ! $+ ! $+ $@ $1 ! $2 $h!...!user => ...!user +R$&h ! $+ $@ $&h ! $1 $h!user => $h!user +R$+ $: $U ! $1 prepend our name +R! $+ $: $k ! $1 in case $U undefined -# +ifdef(`_MAILER_smtp_', +`# # envelope sender rewriting for uucp-dom mailer # S52 @@ -100,13 +125,33 @@ R<@> $n errors to mailer-daemon # pass everything to standard SMTP mailer rewriting R$* $@ $>11 $1 +# +# envelope sender rewriting for uucp-uudom mailer +# +S72 + +# handle error address as a special case +R<@> $n errors to mailer-daemon + +# do not qualify list:; syntax +R$* :; <@> $@ $1 :; + +R$* < @ $* . > $1 < @ $2 > strip trailing dots +R$* < @ $=w > $1 strip local name +R<@ $- . UUCP > : $+ $1 ! $2 convert to UUCP format +R<@ $+ > : $+ $1 ! $2 convert to UUCP format +R$* < @ $- . UUCP > $2 ! $1 convert to UUCP format +R$* < @ $+ > $@ $2 ! $1 convert to UUCP format + +R$&h ! $+ ! $+ $@ $1 ! $2 $h!...!user => ...!user +R$&h ! $+ $@ $&h ! $1 $h!user => $h!user +R$+ $: $M ! $1 prepend masquerade name +R! $+ $: $j ! $1 in case $M undefined') + PUSHDIVERT(4) # resolve locally connected UUCP links -R< @ $=Z . UUCP > : $+ $#uucp-dom $@ $1 $: $2 @host.UUCP: ... -R$+ < @ $=Z . UUCP > $#uucp-dom $@ $2 $: $1 user@host.UUCP -R< @ $=Y . UUCP > : $+ $#suucp $@ $1 $: $2 @host.UUCP: ... -R$+ < @ $=Y . UUCP > $#suucp $@ $2 $: $1 user@host.UUCP -R< @ $=U . UUCP > : $+ $#uucp $@ $1 $: $2 @host.UUCP: ... -R$+ < @ $=U . UUCP > $#uucp $@ $2 $: $1 user@host.UUCP +R$* < @ $=Z . UUCP. > $* $#uucp-uudom $@ $1 $: $1 < @ $2 .UUCP. > $3 @host.UUCP: ... +R$* < @ $=Y . UUCP. > $* $#uucp-new $@ $2 $: $1 < @ $2 .UUCP. > $3 +R$* < @ $=U . UUCP. > $* $#uucp-old $@ $2 $: $1 < @ $2 .UUCP. > $3 POPDIVERT diff --git a/usr.sbin/sendmail/cf/ostype/hpux.m4 b/usr.sbin/sendmail/cf/ostype/hpux.m4 index 0a1d097a8be..1be21f36c3c 100644 --- a/usr.sbin/sendmail/cf/ostype/hpux.m4 +++ b/usr.sbin/sendmail/cf/ostype/hpux.m4 @@ -34,10 +34,11 @@ divert(-1) # divert(0) -VERSIONID(`@(#)hpux.m4 8.4 (Berkeley) 8/24/93') +VERSIONID(`@(#)hpux.m4 8.5 (Berkeley) 1/9/94') define(`QUEUE_DIR', /usr/spool/mqueue)dnl define(`ALIAS_FILE', /usr/lib/aliases)dnl define(`STATUS_FILE', /usr/lib/sendmail.st)dnl define(`LOCAL_MAILER_FLAGS', `m')dnl +define(`UUCP_MAILER_ARGS', `uux - -r -a$f -gC $h!rmail ($u)')dnl define(`confTIME_ZONE', `USE_TZ')dnl diff --git a/usr.sbin/sendmail/cf/ostype/irix.m4 b/usr.sbin/sendmail/cf/ostype/irix.m4 index 6baf60b6382..752c04d7aa8 100644 --- a/usr.sbin/sendmail/cf/ostype/irix.m4 +++ b/usr.sbin/sendmail/cf/ostype/irix.m4 @@ -34,5 +34,8 @@ divert(-1) # divert(0) -VERSIONID(`@(#)irix.m4 8.2 (Berkeley) 8/8/93') +VERSIONID(`@(#)irix.m4 8.3 (Berkeley) 11/27/93') define(`LOCAL_MAILER_FLAGS', Ehmu)dnl +define(`QUEUE_DIR', /usr/spool/mqueue)dnl +define(`ALIAS_FILE', /usr/lib/aliases)dnl +define(`STATUS_FILE', /usr/lib/sendmail.st)dnl diff --git a/usr.sbin/sendmail/contrib/mmuegel b/usr.sbin/sendmail/contrib/mmuegel index 7a9eafd1d5b..f440f47dc3f 100644 --- a/usr.sbin/sendmail/contrib/mmuegel +++ b/usr.sbin/sendmail/contrib/mmuegel @@ -1,35 +1,3 @@ -From: "Michael S. Muegel" <mmuegel@cssun6.corp.mot.com> -Message-Id: <199307280818.AA08111@cssun6.corp.mot.com> -Subject: Re: contributed software -To: eric@cs.berkeley.edu (Eric Allman) -Date: Wed, 28 Jul 1993 03:18:02 -0500 (CDT) -In-Reply-To: <199307221853.LAA04266@mastodon.CS.Berkeley.EDU> from "Eric Allman" at Jul 22, 93 11:53:47 am -X-Mailer: ELM [version 2.4 PL22] -Mime-Version: 1.0 -Content-Type: text/plain; charset=US-ASCII -Content-Transfer-Encoding: 7bit -Content-Length: 69132 - -Previously, Eric Allman forwarded to me: -> To: sendmail@vangogh.CS.Berkeley.EDU -> Subject: pseudo-bug -> Date: Thu, 22 Jul 1993 10:22:27 -0700 -> From: Adam Glass <glass@sun-lamp.cs.berkeley.edu> -> -> When you distribute the contrib stuff, some of it is kept under RCS by -> the authors. This is obvious from the $Header$, $Log$ type stuff in -> the files. Problem: because these files are distributed this way,when -> they are checked into our CVS tree (RCS based), those parts of the -> contrib stuff will be altered. I recommend that you get your -> RCS-using contributors to use the '-kv' option to RCS's co command to -> freeze their RCS information, so that it isn't corrupted by us. - -OK. Here is a new shell archive. - -Cheers, --Mike - ----- Cut Here and feed the following to sh ---- #!/bin/sh # This is a shell archive (produced by shar 3.49) # To extract the files from this archive, save it to a file, remove diff --git a/usr.sbin/sendmail/doc/op/op.me b/usr.sbin/sendmail/doc/op/op.me index 5d7b1b59795..0ad2bb6c180 100644 --- a/usr.sbin/sendmail/doc/op/op.me +++ b/usr.sbin/sendmail/doc/op/op.me @@ -30,7 +30,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)op.me 8.26 (Berkeley) 10/14/93 +.\" @(#)op.me 8.32 (Berkeley) 1/12/94 .\" .\" eqn op.me | pic | troff -me .eh 'SMM:08-%''Sendmail Installation and Operation Guide' @@ -69,7 +69,7 @@ University of California, Berkeley Mammoth Project eric@CS.Berkeley.EDU .sp -Version 8.26 +Version 8.32 .sp For Sendmail Version 8.6 .)l @@ -185,7 +185,7 @@ normally on 4.4BSD. .pp If you are loading this off the tape, -continue with the next session. +continue with the next section. If you have a running binary already on your system, you should probably skip to section 1.2. .sh 2 "Compiling Sendmail" @@ -576,15 +576,13 @@ The format of this file is detailed in later sections of this document. .sh 3 "/usr/\*(SB/newaliases" .pp -If you are running delivermail, -it is critical that the +The .i newaliases -command be replaced. -This can just be a link to +command should just be a link to .i sendmail : .(b rm \-f /usr/\*(SB/newaliases -ln /usr/\*(SD/sendmail /usr/\*(SB/newaliases +ln \-s /usr/\*(SD/sendmail /usr/\*(SB/newaliases .)b This can be installed in whatever search path you prefer for your system. @@ -808,6 +806,11 @@ This should be a link to /usr/\*(SD/sendmail. The system log is supported by the .i syslogd \|(8) program. +All messages from +.i sendmail +are logged under the +.sm LOG_MAIL +facility. .sh 3 "Format" .pp Each line in the system log @@ -994,6 +997,16 @@ and then the map named .q mail.aliases in .q my.nis.domain . +Warning: if you build your own +.sm NIS -based +alias files, +be sure to provide the +.b \-l +flag to +.i makedbm (8) +to map upper case letters in the keys to lower case; +otherwise, aliases with upper case letters in their names +won't match incoming addresses. .pp Additional flags can be added after the colon exactly like a @@ -1074,11 +1087,7 @@ it checks to insure that this entry exists\**. .q a option is required in the configuration for this action to occur. -This should normally be specified -unless you are running -.i delivermail -in parallel with -.i sendmail. +This should normally be specified. .)f .sh 3 "List owners" .pp @@ -1438,6 +1447,18 @@ All message traffic in and out of .i sendmail , including the incoming SMTP traffic, will be logged in this file. +.sh 2 "Dumping State" +.pp +You can ask +.i sendmail +to log a dump of the open files +and the connection cache +by sending it a +.sm SIGUSR1 +signal. +The results are logged at +.sm LOG_DEBUG +priority. .sh 1 "TUNING" .pp There are a number of configuration parameters @@ -2381,7 +2402,7 @@ The .b $) syntax is a more general form of lookup; it uses a named map instead of an implicit map. -If no lookup is found, the indicted +If no lookup is found, the indicated .i default is inserted; if no default is specified and no lookup matches, @@ -2444,12 +2465,21 @@ the may be a colon-separated list of hosts that are searched in order for the first working address (exactly like MX records). +The +.i user +is later rewritten by the mailer-specific envelope rewriting set +and assigned to the +.b $u +macro. .pp +Normally, a ruleset that matches is retried, +that is, +the ruleset loops until it fails. A RHS may also be preceded by a .b $@ or a .b $: -to control evaluation. +to change this behavior. A .b $@ prefix causes the ruleset to return with the remainder of the RHS @@ -2794,7 +2824,7 @@ is equivalent to Defaults to .q MAILER-DAEMON . .ip $o\(dg -.b "The set of "operators" in addresses." +.b "The set of \*(lqoperators\*(rq in addresses." A list of characters which will be considered tokens and which will separate tokens @@ -3109,6 +3139,27 @@ The class is set to be the same as .b $k , that is, the UUCP node name. +.pp +The class +.b $=m +is set to the set of domains by which this host is known, +initially just +.b $m . +.pp +.i Sendmail +can be compiled to allow a +.i scanf (3) +string on the +.b F +line. +This lets you do simplistic parsing of text files. +For example, to read all the user names in your system +.i /etc/passwd +file into a class, use +.(b +FL/etc/passwd %[^:] +.)b +which reads every line up to the first colon. .sh 3 "M \*- define mailer" .pp Programs and interfaces to mailers @@ -3698,7 +3749,7 @@ and then in .ip k\fIN\fP The maximum number of open connections that will be cached at a time. The default is one. -This delays closing the the current connection until +This delays closing the current connection until either this invocation of .i sendmail needs to connect to another host @@ -3794,6 +3845,7 @@ novrfy Disallow VRFY entirely restrictmailq Restrict mailq command restrictqrun Restrict \-q command line flag goaway Disallow essentially all SMTP status queries +authwarnings Put X-Authentication-Warning: headers in messages .)b The .q goaway @@ -3807,6 +3859,9 @@ can print the queue. If queue runs are restricted, only root and the owner of the queue directory can run the queue. +Authentication Warnings add warnings about various conditions +that may indicate attempts to spoof the mail system, +such as using an non-standard queue directory. .ip P\fIpostmaster\fP If set, copies of error messages will be sent to the named @@ -3893,7 +3948,7 @@ always instantiate the queue file, even if you are going to attempt immediate delivery. .i Sendmail always instantiates the queue file -before returning control the the client +before returning control the client under any circumstances. .ip S\fIfile\fP Log statistics in the named @@ -4165,6 +4220,21 @@ Version level five configuration files change the default definition of .b $w to be just the first component of the hostname. +.pp +The +.b V +line may have an optional +.b / \c +.i vendor +to indicate that this configuration file uses modifications +specific to a particular vendor\**. +.(f +\**And of course, vendors are encouraged to add themselves +to the list of recognized vendors by editing the routine +.i setvendor +in +.i conf.c . +.)f .sh 3 "K \*- key file declaration" .pp Special maps can be defined using the line: @@ -4265,7 +4335,7 @@ library, and the third requires that .i sendmail be compiled with NIS support. -All four accept as arguments the some optional flags +All four accept as arguments the same optional flags and a filename (or a mapname for NIS; the filename is the root of the database path, @@ -4616,7 +4686,7 @@ This would require that each host know exactly where each network connection is, possibly including the names of each host on that network. As long as the site remains small -and the the configuration remains relatively static, +and the configuration remains relatively static, the update problem will probably not be too great. .sh 4 "Single host" .pp @@ -4944,8 +5014,10 @@ To: wnj@monet.CS.Berkeley.EDU, mckusick@vangogh.CS.Berkeley.EDU .i "if and only if" the .q C -flag is defined in the mailer corresponding to -.q eric@vangogh.CS.Berkeley.EDU. +flag is defined in the mailer resolved to +by running +.q eric@vangogh.CS.Berkeley.EDU +through rulesets 3 and 0. .pp Other flags are described in Appendix C. @@ -4998,7 +5070,7 @@ The usual backslash escapes may be used. .pp Finally, -an argv template is given as the E field. +an argv template is given as the A field. It may have embedded spaces. If there is no argv with a .b $u @@ -5175,7 +5247,7 @@ If a .q maildrop is found for the user, but no corresponding -.q maildrop +.q mailname record exists, the record .q :default:mailname @@ -5310,7 +5382,7 @@ The pathname of the sendmail.pid file. The load average type. Details are described below. .lp -The are four built-in ways of computing the load average. +The are several built-in ways of computing the load average. .i Sendmail tries to auto-configure them based on imperfect guesses; you can select one using the @@ -5332,6 +5404,8 @@ The actual values are scaled by a factor FSCALE .ip LA_FLOAT The kernel stores the load average in the kernel as an array of double precision floats. +.ip LA_MACH +Use MACH-style load averages. .ip LA_SUBR Call the .i getloadavg @@ -6009,7 +6083,7 @@ This version avoids that use. However, for compatibility with RFC 822, you can set option `7' to get seven bit stripping. .pp -Individual mailers can still produce seven bit out put using the +Individual mailers can still produce seven bit output using the `7' mailer flag. .sh 2 "User Database" .pp @@ -6517,9 +6591,7 @@ for debugging mailer problems. This produces a lot of data very quickly and should be used sparingly. .pp There are a number of options that may be specified as -primitive flags -(provided for compatibility with -.i delivermail ). +primitive flags. These are the e, i, m, and v options. Also, the f option @@ -6803,7 +6875,7 @@ A transcript of the current session. .\"Eric Allman .\"Britton-Lee, Inc. .\".sp -.\"Version 8.26 +.\"Version 8.32 .\".ce 0 .bp 2 .rs diff --git a/usr.sbin/sendmail/doc/op/op.ps b/usr.sbin/sendmail/doc/op/op.ps index 711f11a3e84..61cfa2aafe1 100644 --- a/usr.sbin/sendmail/doc/op/op.ps +++ b/usr.sbin/sendmail/doc/op/op.ps @@ -204,7 +204,7 @@ BP /Times-Roman@0 SF(Eric Allman)263.42 196.2 Q(Uni)219.725 208.2 Q -.15(ve)-.25 G (rsity of California, Berk).15 E(ele)-.1 E(y)-.15 E(Mammoth Project)251.75 220.2 Q(eric@CS.Berk)239.41 232.2 Q(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -1.11 -(Ve)262.725 256.2 S(rsion 8.26)1.11 E -.15(Fo)236.965 280.2 S 2.5(rS).15 G +(Ve)262.725 256.2 S(rsion 8.32)1.11 E -.15(Fo)236.965 280.2 S 2.5(rS).15 G (endmail V)258.765 280.2 Q(ersion 8.6)-1.11 E/F3 10/Times-Italic@0 SF(Sendmail) 97 324.6 Q F2 .699(implements a general purpose internetw)3.199 F .698 (ork mail routing f)-.1 F .698(acility under the UNIX* operat-)-.1 F .378 @@ -306,9 +306,9 @@ meters are acceptable.)-.15 F 1.431(All path-)6.431 F 8.62(names and e)87 212.4 R 8.62(xamples are gi)-.15 F -.15(ve)-.25 G 11.12(nf).15 G 8.62 (rom the root of the)257.57 212.4 R F2(sendmail)378.16 212.4 Q F1 8.62 (subtree, normally)425.39 212.4 R F2(/usr/sr)87 224.4 Q(c/usr)-.37 E -(.sbin/sendmail)-1.11 E F1(on 4.4BSD.)2.5 E .511(If you are loading this of)112 -240.6 R 3.011(ft)-.25 G .511(he tape, continue with the ne)222.578 240.6 R .511 -(xt session.)-.15 F .511(If you ha)5.511 F .811 -.15(ve a r)-.2 H .511 +(.sbin/sendmail)-1.11 E F1(on 4.4BSD.)2.5 E .543(If you are loading this of)112 +240.6 R 3.042(ft)-.25 G .542(he tape, continue with the ne)222.766 240.6 R .542 +(xt section.)-.15 F .542(If you ha)5.542 F .842 -.15(ve a r)-.2 H .542 (unning binary).15 F (already on your system, you should probably skip to section 1.2.)87 252.6 Q F0 2.5(1.1. Compiling)87 276.6 R(Sendmail)2.5 E F1(All)127 292.8 Q F2(sendmail) @@ -584,2729 +584,2779 @@ BP (articularly unusual system con\214guration you may need to create a special v) .15 F(ersion.)-.15 E (The format of this \214le is detailed in later sections of this document.)117 -182.6 Q F0 2.5(1.3.3. /usr/bin/newaliases)102 206.6 R F1 1.59 -(If you are running deli)142 222.8 R -.15(ve)-.25 G 1.589 -(rmail, it is critical that the).15 F F2(ne)4.089 E(waliases)-.15 E F1 1.589 -(command be replaced.)4.089 F(This can just be a link to)117 234.8 Q F2 -(sendmail)2.5 E F1(:)A(rm \255f /usr/bin/ne)157 251 Q -.1(wa)-.25 G(liases).1 E -(ln /usr/sbin/sendmail /usr/bin/ne)157 263 Q -.1(wa)-.25 G(liases).1 E -(This can be installed in whate)117 279.2 Q -.15(ve)-.25 G 2.5(rs).15 G -(earch path you prefer for your system.)254.91 279.2 Q F0 2.5(1.3.4. /v)102 -303.2 R(ar/spool/mqueue)-.1 E F1 .217(The directory)142 319.4 R F2 -(/var/spool/mqueue)2.717 E F1 .218(should be created to hold the mail queue.) -2.717 F .218(This directory)5.218 F(should be mode 700 and o)117 331.4 Q +182.6 Q F0 2.5(1.3.3. /usr/bin/newaliases)102 206.6 R F1(The)142 222.8 Q F2(ne) +2.5 E(waliases)-.15 E F1(command should just be a link to)2.5 E F2(sendmail)2.5 +E F1(:)A(rm \255f /usr/bin/ne)157 239 Q -.1(wa)-.25 G(liases).1 E +(ln \255s /usr/sbin/sendmail /usr/bin/ne)157 251 Q -.1(wa)-.25 G(liases).1 E +(This can be installed in whate)117 267.2 Q -.15(ve)-.25 G 2.5(rs).15 G +(earch path you prefer for your system.)254.91 267.2 Q F0 2.5(1.3.4. /v)102 +291.2 R(ar/spool/mqueue)-.1 E F1 .218(The directory)142 307.4 R F2 +(/var/spool/mqueue)2.718 E F1 .217(should be created to hold the mail queue.) +2.718 F .217(This directory)5.217 F(should be mode 700 and o)117 319.4 Q (wned by root.)-.25 E(The actual path of this directory is de\214ned in the)142 -347.6 Q F0(Q)2.5 E F1(option of the)2.5 E F2(sendmail.cf)2.5 E F1(\214le.)2.5 E -F0 2.5(1.3.5. /etc/aliases*)102 371.6 R F1 1.493 -(The system aliases are held in \231/etc/aliases\232.)142 387.8 R 3.992(As) -6.492 G 1.492(ample is gi)350.01 387.8 R -.15(ve)-.25 G 3.992(ni).15 G 3.992 -<6e99>417.696 387.8 S 1.492(lib/aliases\232 which)431.128 387.8 R -(includes some aliases which)117 399.8 Q F2(must)2.5 E F1(be de\214ned:)2.5 E -(cp lib/aliases /etc/aliases)157 416 Q F2(edit /etc/aliases)157 428 Q F1 -1.1 -(Yo)117 444.2 S 2.5(us)1.1 G(hould e)139.51 444.2 Q(xtend this \214le with an) --.15 E 2.5(ya)-.15 G(liases that are apropos to your system.)267.54 444.2 Q -(Normally)142 460.4 Q F2(sendmail)3.609 E F1 1.109(looks at a v)3.609 F 1.109 -(ersion of these \214les maintained by the)-.15 F F2(dbm)3.609 E F1 1.11 -(\(3\) or)1.666 F F2(db)3.61 E F1(\(3\))1.666 E 3.46(routines. These)117 472.4 +335.6 Q F0(Q)2.5 E F1(option of the)2.5 E F2(sendmail.cf)2.5 E F1(\214le.)2.5 E +F0 2.5(1.3.5. /etc/aliases*)102 359.6 R F1 1.492 +(The system aliases are held in \231/etc/aliases\232.)142 375.8 R 3.992(As) +6.492 G 1.492(ample is gi)350.006 375.8 R -.15(ve)-.25 G 3.993(ni).15 G 3.993 +<6e99>417.694 375.8 S 1.493(lib/aliases\232 which)431.127 375.8 R +(includes some aliases which)117 387.8 Q F2(must)2.5 E F1(be de\214ned:)2.5 E +(cp lib/aliases /etc/aliases)157 404 Q F2(edit /etc/aliases)157 416 Q F1 -1.1 +(Yo)117 432.2 S 2.5(us)1.1 G(hould e)139.51 432.2 Q(xtend this \214le with an) +-.15 E 2.5(ya)-.15 G(liases that are apropos to your system.)267.54 432.2 Q +(Normally)142 448.4 Q F2(sendmail)3.61 E F1 1.109(looks at a v)3.61 F 1.109 +(ersion of these \214les maintained by the)-.15 F F2(dbm)3.609 E F1 1.109 +(\(3\) or)1.666 F F2(db)3.609 E F1(\(3\))1.666 E 3.46(routines. These)117 460.4 R .96(are stored either in \231/etc/aliases.dir\232 and \231/etc/aliases.pag\ \232 or \231/etc/aliases.db\232)3.46 F 1.022 -(depending on which database package you are using.)117 484.4 R 1.022 -(These can initially be created as empty)6.022 F(\214les, b)117 496.4 Q(ut the) --.2 E 2.5(yw)-.15 G(ill ha)180.54 496.4 Q .3 -.15(ve t)-.2 H 2.5(ob).15 G 2.5 -(ei)227.69 496.4 S(nitialized promptly)237.41 496.4 Q 5(.T)-.65 G -(hese should be mode 644:)326.76 496.4 Q(cp /de)157 512.6 Q -(v/null /etc/aliases.dir)-.25 E(cp /de)157 524.6 Q(v/null /etc/aliases.pag)-.25 -E(chmod 644 /etc/aliases.*)157 536.6 Q(ne)157 548.6 Q -.1(wa)-.25 G(liases).1 E -(The)117 564.8 Q F2(db)2.79 E F1 .29(routines preset the mode reasonably)2.79 F -2.79(,s)-.65 G 2.79(ot)301.68 564.8 S .29(his step can be skipped.)312.25 564.8 -R .29(The actual path of this)5.29 F(\214le is de\214ned in the)117 576.8 Q F0 +(depending on which database package you are using.)117 472.4 R 1.022 +(These can initially be created as empty)6.022 F(\214les, b)117 484.4 Q(ut the) +-.2 E 2.5(yw)-.15 G(ill ha)180.54 484.4 Q .3 -.15(ve t)-.2 H 2.5(ob).15 G 2.5 +(ei)227.69 484.4 S(nitialized promptly)237.41 484.4 Q 5(.T)-.65 G +(hese should be mode 644:)326.76 484.4 Q(cp /de)157 500.6 Q +(v/null /etc/aliases.dir)-.25 E(cp /de)157 512.6 Q(v/null /etc/aliases.pag)-.25 +E(chmod 644 /etc/aliases.*)157 524.6 Q(ne)157 536.6 Q -.1(wa)-.25 G(liases).1 E +(The)117 552.8 Q F2(db)2.79 E F1 .29(routines preset the mode reasonably)2.79 F +2.79(,s)-.65 G 2.79(ot)301.68 552.8 S .29(his step can be skipped.)312.25 552.8 +R .29(The actual path of this)5.29 F(\214le is de\214ned in the)117 564.8 Q F0 (A)2.5 E F1(option of the)2.5 E F2(sendmail.cf)2.5 E F1(\214le.)2.5 E F0 2.5 -(1.3.6. /etc/r)102 600.8 R(c)-.18 E F1 .155 -(It will be necessary to start up the)142 617 R F2(sendmail)2.655 E F1 .156 -(daemon when your system reboots.)2.655 F .156(This dae-)5.156 F 1.538 -(mon performs tw)117 629 R 4.037(of)-.1 G 1.537 -(unctions: it listens on the SMTP sock)201.223 629 R 1.537 -(et for connections \(to recei)-.1 F 1.837 -.15(ve m)-.25 H(ail).15 E .442(fro\ +(1.3.6. /etc/r)102 588.8 R(c)-.18 E F1 .156 +(It will be necessary to start up the)142 605 R F2(sendmail)2.655 E F1 .155 +(daemon when your system reboots.)2.655 F .155(This dae-)5.155 F 1.537 +(mon performs tw)117 617 R 4.037(of)-.1 G 1.537 +(unctions: it listens on the SMTP sock)201.221 617 R 1.537 +(et for connections \(to recei)-.1 F 1.838 -.15(ve m)-.25 H(ail).15 E .442(fro\ m a remote system\) and it processes the queue periodically to insure that mai\ -l gets deli)117 641 R -.15(ve)-.25 G(red).15 E(when hosts come up.)117 653 Q -.32 LW 76 669.2 72 669.2 DL 80 669.2 76 669.2 DL 84 669.2 80 669.2 DL 88 669.2 -84 669.2 DL 92 669.2 88 669.2 DL 96 669.2 92 669.2 DL 100 669.2 96 669.2 DL 104 -669.2 100 669.2 DL 108 669.2 104 669.2 DL 112 669.2 108 669.2 DL 116 669.2 112 -669.2 DL 120 669.2 116 669.2 DL 124 669.2 120 669.2 DL 128 669.2 124 669.2 DL -132 669.2 128 669.2 DL 136 669.2 132 669.2 DL 140 669.2 136 669.2 DL 144 669.2 -140 669.2 DL 148 669.2 144 669.2 DL 152 669.2 148 669.2 DL 156 669.2 152 669.2 -DL 160 669.2 156 669.2 DL 164 669.2 160 669.2 DL 168 669.2 164 669.2 DL 172 -669.2 168 669.2 DL 176 669.2 172 669.2 DL 180 669.2 176 669.2 DL 184 669.2 180 -669.2 DL 188 669.2 184 669.2 DL 192 669.2 188 669.2 DL 196 669.2 192 669.2 DL -200 669.2 196 669.2 DL 204 669.2 200 669.2 DL 208 669.2 204 669.2 DL 212 669.2 -208 669.2 DL 216 669.2 212 669.2 DL/F4 5/Times-Roman@0 SF(4)93.6 679.6 Q/F5 8 -/Times-Roman@0 SF .588 +l gets deli)117 629 R -.15(ve)-.25 G(red).15 E(when hosts come up.)117 641 Q +.505(Add the follo)142 657.2 R .505(wing lines to \231/etc/rc\232 \(or \231/et\ +c/rc.local\232 as appropriate\) in the area where it)-.25 F +(is starting up the daemons:)117 669.2 Q .32 LW 76 678.8 72 678.8 DL 80 678.8 +76 678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 678.8 DL 92 678.8 88 678.8 DL 96 +678.8 92 678.8 DL 100 678.8 96 678.8 DL 104 678.8 100 678.8 DL 108 678.8 104 +678.8 DL 112 678.8 108 678.8 DL 116 678.8 112 678.8 DL 120 678.8 116 678.8 DL +124 678.8 120 678.8 DL 128 678.8 124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 +132 678.8 DL 140 678.8 136 678.8 DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 +DL 152 678.8 148 678.8 DL 156 678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 +678.8 160 678.8 DL 168 678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 +678.8 DL 180 678.8 176 678.8 DL 184 678.8 180 678.8 DL 188 678.8 184 678.8 DL +192 678.8 188 678.8 DL 196 678.8 192 678.8 DL 200 678.8 196 678.8 DL 204 678.8 +200 678.8 DL 208 678.8 204 678.8 DL 212 678.8 208 678.8 DL 216 678.8 212 678.8 +DL/F4 5/Times-Roman@0 SF(4)93.6 689.2 Q/F5 8/Times-Roman@0 SF .588 (The system libraries can reference other \214les; in particular)3.2 J 2.589 -(,s)-.32 G .589(ystem library subroutines that)294.805 682.8 R/F6 8 +(,s)-.32 G .589(ystem library subroutines that)294.805 692.4 R/F6 8 /Times-Italic@0 SF(sendmail)2.589 E F5 .589(calls probably reference)2.589 F F6 -(/etc/passwd)72 692.4 Q F5(and)2 E F6(/etc/r)2 E(esolv)-.296 E(.conf)-.592 E F5 +(/etc/passwd)72 702 Q F5(and)2 E F6(/etc/r)2 E(esolv)-.296 E(.conf)-.592 E F5 (.)A EP %%Page: 11 6 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-11)452.9 60 Q/F1 10/Times-Roman@0 SF .505(Add the follo)142 96 R .505(\ -wing lines to \231/etc/rc\232 \(or \231/etc/rc.local\232 as appropriate\) in t\ -he area where it)-.25 F(is starting up the daemons:)117 108 Q -(if [ \255f /usr/sbin/sendmail \255a \255f /etc/sendmail.cf ]; then)157 124.2 Q -(\(cd /v)193 136.2 Q(ar/spool/mqueue; rm \255f [lnx]f*\))-.25 E -(/usr/sbin/sendmail \255bd \255q30m &)193 148.2 Q(echo \255n ' sendmail' >/de) -193 160.2 Q(v/console)-.25 E<8c>157 172.2 Q .173 +(SMM:08-11)452.9 60 Q/F1 10/Times-Roman@0 SF +(if [ \255f /usr/sbin/sendmail \255a \255f /etc/sendmail.cf ]; then)157 96 Q +(\(cd /v)193 108 Q(ar/spool/mqueue; rm \255f [lnx]f*\))-.25 E +(/usr/sbin/sendmail \255bd \255q30m &)193 120 Q(echo \255n ' sendmail' >/de)193 +132 Q(v/console)-.25 E<8c>157 144 Q .174 (The \231cd\232 and \231rm\232 commands insure that all lock \214les ha)117 -188.4 R .474 -.15(ve b)-.2 H .174(een remo).15 F -.15(ve)-.15 G .174(d; e).15 F -.174(xtraneous lock \214les)-.15 F .005 -(may be left around if the system goes do)117 200.4 R .004 -(wn in the middle of processing a message.)-.25 F .004(The line that)5.004 F -2.293(actually in)117 212.4 R -.2(vo)-.4 G -.1(ke).2 G(s).1 E/F2 10 -/Times-Italic@0 SF(sendmail)4.793 E F1 2.293(has tw)4.793 F 4.793<6f8d>-.1 G -2.293(ags: \231\255bd\232 causes it to listen on the SMTP port, and)272.935 -212.4 R(\231\255q30m\232 causes it to run the queue e)117 224.4 Q -.15(ve)-.25 -G(ry half hour).15 E(.)-.55 E .379(Some people use a more comple)142 240.6 R -2.879(xs)-.15 G .379(tartup script, remo)285.214 240.6 R .378 +160.2 R .473 -.15(ve b)-.2 H .173(een remo).15 F -.15(ve)-.15 G .173(d; e).15 F +.173(xtraneous lock \214les)-.15 F .004 +(may be left around if the system goes do)117 172.2 R .005 +(wn in the middle of processing a message.)-.25 F .005(The line that)5.005 F +2.294(actually in)117 184.2 R -.2(vo)-.4 G -.1(ke).2 G(s).1 E/F2 10 +/Times-Italic@0 SF(sendmail)4.794 E F1 2.294(has tw)4.794 F 4.794<6f8d>-.1 G +2.293(ags: \231\255bd\232 causes it to listen on the SMTP port, and)272.94 +184.2 R(\231\255q30m\232 causes it to run the queue e)117 196.2 Q -.15(ve)-.25 +G(ry half hour).15 E(.)-.55 E .378(Some people use a more comple)142 212.4 R +2.879(xs)-.15 G .379(tartup script, remo)285.209 212.4 R .379 (ving zero length qf \214les and df \214les)-.15 F -(for which there is no qf \214le.)117 252.6 Q -.15(Fo)5 G 2.5(re).15 G(xample:) -253.9 252.6 Q EP +(for which there is no qf \214le.)117 224.4 Q -.15(Fo)5 G 2.5(re).15 G(xample:) +253.9 224.4 Q 2.5(#r)157 240.6 S(emo)167.83 240.6 Q .3 -.15(ve z)-.15 H +(ero length qf \214les).15 E(for qf)157 252.6 Q(\214le in qf*)-.25 E(do)157 +264.6 Q(if [ \255r $qf)193 276.6 Q(\214le ])-.25 E(then)193 288.6 Q +(if [ ! \255s $qf)229 300.6 Q(\214le ])-.25 E(then)229 312.6 Q +(echo \255n " <zero: $qf)265 324.6 Q(\214le>" > /de)-.25 E(v/console)-.25 E +(rm \255f $qf)265 336.6 Q(\214le)-.25 E<8c>229 348.6 Q<8c>193 360.6 Q(done)157 +372.6 Q 2.5(#r)157 384.6 S(ename tf \214les to be qf if the qf does not e) +167.83 384.6 Q(xist)-.15 E(for tf)157 396.6 Q(\214le in tf*)-.25 E(do)157 408.6 +Q(qf)193 420.6 Q(\214le=`echo $tf)-.25 E(\214le | sed ')-.25 E(s/t/q/'`)-.55 E +(if [ \255r $tf)193 432.6 Q(\214le \255a ! \255f $qf)-.25 E(\214le ])-.25 E +(then)193 444.6 Q(echo \255n " <reco)229 456.6 Q -.15(ve)-.15 G(ring: $tf).15 E +(\214le>" > /de)-.25 E(v/console)-.25 E(mv $tf)229 468.6 Q(\214le $qf)-.25 E +(\214le)-.25 E(else)193 480.6 Q(echo \255n " <e)229 492.6 Q(xtra: $tf)-.15 E +(\214le>" > /de)-.25 E(v/console)-.25 E(rm \255f $tf)229 504.6 Q(\214le)-.25 E +<8c>193 516.6 Q(done)157 528.6 Q 2.5(#r)157 540.6 S(emo)167.83 540.6 Q .3 -.15 +(ve d)-.15 H 2.5<668c>.15 G(les with no corresponding qf \214les)213.08 540.6 Q +(for df)157 552.6 Q(\214le in df*)-.25 E(do)157 564.6 Q(qf)193 576.6 Q +(\214le=`echo $df)-.25 E(\214le | sed ')-.25 E(s/d/q/'`)-.55 E(if [ \255r $df) +193 588.6 Q(\214le \255a ! \255f $qf)-.25 E(\214le ])-.25 E(then)193 600.6 Q +(echo \255n " <incomplete: $df)229 612.6 Q(\214le>" > /de)-.25 E(v/console)-.25 +E(mv $df)229 624.6 Q(\214le `echo $df)-.25 E(\214le | sed ')-.25 E(s/d/D/'`) +-.55 E<8c>193 636.6 Q(done)157 648.6 Q 2.5(#a)157 660.6 S +(nnounce \214les that ha)168.94 660.6 Q .3 -.15(ve b)-.2 H(een sa).15 E -.15 +(ve)-.2 G 2.5(dd).15 G(uring disaster reco)314.32 660.6 Q -.15(ve)-.15 G(ry).15 +E(for xf)157 672.6 Q(\214le in [A-Z]f*)-.25 E(do)157 684.6 Q +(echo \255n " <panic: $xf)193 696.6 Q(\214le>" > /de)-.25 E(v/console)-.25 E +(done)157 708.6 Q EP %%Page: 12 7 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-12 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 2.5(#r)157 96 S -(emo)167.83 96 Q .3 -.15(ve z)-.15 H(ero length qf \214les).15 E(for qf)157 108 -Q(\214le in qf*)-.25 E(do)157 120 Q(if [ \255r $qf)193 132 Q(\214le ])-.25 E -(then)193 144 Q(if [ ! \255s $qf)229 156 Q(\214le ])-.25 E(then)229 168 Q -(echo \255n " <zero: $qf)265 180 Q(\214le>" > /de)-.25 E(v/console)-.25 E -(rm \255f $qf)265 192 Q(\214le)-.25 E<8c>229 204 Q<8c>193 216 Q(done)157 228 Q -2.5(#r)157 240 S(ename tf \214les to be qf if the qf does not e)167.83 240 Q -(xist)-.15 E(for tf)157 252 Q(\214le in tf*)-.25 E(do)157 264 Q(qf)193 276 Q -(\214le=`echo $tf)-.25 E(\214le | sed ')-.25 E(s/t/q/'`)-.55 E(if [ \255r $tf) -193 288 Q(\214le \255a ! \255f $qf)-.25 E(\214le ])-.25 E(then)193 300 Q -(echo \255n " <reco)229 312 Q -.15(ve)-.15 G(ring: $tf).15 E(\214le>" > /de) --.25 E(v/console)-.25 E(mv $tf)229 324 Q(\214le $qf)-.25 E(\214le)-.25 E(else) -193 336 Q(echo \255n " <e)229 348 Q(xtra: $tf)-.15 E(\214le>" > /de)-.25 E -(v/console)-.25 E(rm \255f $tf)229 360 Q(\214le)-.25 E<8c>193 372 Q(done)157 -384 Q 2.5(#r)157 396 S(emo)167.83 396 Q .3 -.15(ve d)-.15 H 2.5<668c>.15 G -(les with no corresponding qf \214les)213.08 396 Q(for df)157 408 Q -(\214le in df*)-.25 E(do)157 420 Q(qf)193 432 Q(\214le=`echo $df)-.25 E -(\214le | sed ')-.25 E(s/d/q/'`)-.55 E(if [ \255r $df)193 444 Q -(\214le \255a ! \255f $qf)-.25 E(\214le ])-.25 E(then)193 456 Q -(echo \255n " <incomplete: $df)229 468 Q(\214le>" > /de)-.25 E(v/console)-.25 E -(mv $df)229 480 Q(\214le `echo $df)-.25 E(\214le | sed ')-.25 E(s/d/D/'`)-.55 E -<8c>193 492 Q(done)157 504 Q 2.5(#a)157 516 S(nnounce \214les that ha)168.94 -516 Q .3 -.15(ve b)-.2 H(een sa).15 E -.15(ve)-.2 G 2.5(dd).15 G -(uring disaster reco)314.32 516 Q -.15(ve)-.15 G(ry).15 E(for xf)157 528 Q -(\214le in [A-Z]f*)-.25 E(do)157 540 Q(echo \255n " <panic: $xf)193 552 Q -(\214le>" > /de)-.25 E(v/console)-.25 E(done)157 564 Q .755 -(If you are not running a v)142 584.4 R .755(ersion of UNIX that supports Berk) --.15 F(ele)-.1 E 3.256(yT)-.15 G(CP/IP)416.722 584.4 Q 3.256(,d)-1.11 G 3.256 -(on)450.268 584.4 S .756(ot include)463.524 584.4 R(the)117 596.4 Q F0(\255bd) -2.5 E F1(\215ag.)2.5 E F0 2.5(1.3.7. /usr/lib/sendmail.hf)102 620.4 R F1 2.078 -(This is the help \214le used by the SMTP)142 636.6 R F0(HELP)4.578 E F1 4.578 +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .756 +(If you are not running a v)142 96 R .755(ersion of UNIX that supports Berk) +-.15 F(ele)-.1 E 3.255(yT)-.15 G(CP/IP)416.725 96 Q 3.255(,d)-1.11 G 3.255(on) +450.27 96 S .755(ot include)463.525 96 R(the)117 108 Q F0(\255bd)2.5 E F1 +(\215ag.)2.5 E F0 2.5(1.3.7. /usr/lib/sendmail.hf)102 132 R F1 2.078 +(This is the help \214le used by the SMTP)142 148.2 R F0(HELP)4.578 E F1 4.578 (command. It)4.578 F 2.078(should be copied from)4.578 F -(\231lib/sendmail.hf\232:)117 648.6 Q(cp lib/sendmail.hf /usr/lib)157 664.8 Q -(The actual path of this \214le is de\214ned in the)117 681 Q F0(H)2.5 E F1 +(\231lib/sendmail.hf\232:)117 160.2 Q(cp lib/sendmail.hf /usr/lib)157 176.4 Q +(The actual path of this \214le is de\214ned in the)117 192.6 Q F0(H)2.5 E F1 (option of the)2.5 E/F2 10/Times-Italic@0 SF(sendmail.cf)2.5 E F1(\214le.)2.5 E -EP -%%Page: 13 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-13)452.9 60 Q 2.5(1.3.8. /etc/sendmail.st)102 96 R/F1 10/Times-Roman@0 -SF 3.04(If you wish to collect statistics about your mail traf)142 112.2 R 3.04 -(\214c, you should create the \214le)-.25 F(\231/etc/sendmail.st\232:)117 124.2 -Q(cp /de)157 140.4 Q(v/null /etc/sendmail.st)-.25 E(chmod 666 /etc/sendmail.st) -157 152.4 Q .716(This \214le does not gro)117 168.6 R 4.516 -.65(w. I)-.25 H -3.216(ti).65 G 3.216(sp)231.506 168.6 S .716 -(rinted with the program \231mailstats/mailstats.c.)243.612 168.6 R 5.715<9a54> --.7 G .715(he actual path)447.03 168.6 R(of this \214le is de\214ned in the)117 -180.6 Q F0(S)2.5 E F1(option of the)2.5 E/F2 10/Times-Italic@0 SF(sendmail.cf) -2.5 E F1(\214le.)2.5 E F0 2.5(1.3.9. /usr/bin/newaliases)102 204.6 R F1(If)142 -220.8 Q F2(sendmail)3.255 E F1 .755(is in)3.255 F -.2(vo)-.4 G -.1(ke).2 G -3.255(da).1 G 3.255<7399>240.42 220.8 S(ne)252.005 220.8 Q -.1(wa)-.25 G -(liases,).1 E 3.255<9a69>-.7 G 3.255(tw)307.25 220.8 S .755(ill simulate the) -320.505 220.8 R F0(\255bi)3.255 E F1 .756(\215ag \(i.e., will reb)3.256 F .756 -(uild the)-.2 F(alias database; see belo)117 232.8 Q 2.5(w\). This)-.25 F +F0 2.5(1.3.8. /etc/sendmail.st)102 216.6 R F1 3.04 +(If you wish to collect statistics about your mail traf)142 232.8 R 3.04 +(\214c, you should create the \214le)-.25 F(\231/etc/sendmail.st\232:)117 244.8 +Q(cp /de)157 261 Q(v/null /etc/sendmail.st)-.25 E(chmod 666 /etc/sendmail.st) +157 273 Q .715(This \214le does not gro)117 289.2 R 4.516 -.65(w. I)-.25 H +3.216(ti).65 G 3.216(sp)231.502 289.2 S .716 +(rinted with the program \231mailstats/mailstats.c.)243.608 289.2 R 5.716<9a54> +-.7 G .716(he actual path)447.028 289.2 R(of this \214le is de\214ned in the) +117 301.2 Q F0(S)2.5 E F1(option of the)2.5 E F2(sendmail.cf)2.5 E F1(\214le.) +2.5 E F0 2.5(1.3.9. /usr/bin/newaliases)102 325.2 R F1(If)142 341.4 Q F2 +(sendmail)3.256 E F1 .756(is in)3.256 F -.2(vo)-.4 G -.1(ke).2 G 3.256(da).1 G +3.256<7399>240.424 341.4 S(ne)252.01 341.4 Q -.1(wa)-.25 G(liases,).1 E 3.255 +<9a69>-.7 G 3.255(tw)307.255 341.4 S .755(ill simulate the)320.51 341.4 R F0 +(\255bi)3.255 E F1 .755(\215ag \(i.e., will reb)3.255 F .755(uild the)-.2 F +(alias database; see belo)117 353.4 Q 2.5(w\). This)-.25 F (should be a link to /usr/sbin/sendmail.)2.5 E F0 2.5(1.3.10. /usr/bin/mailq) -102 256.8 R F1(If)142 273 Q F2(sendmail)3.44 E F1 .94(is in)3.44 F -.2(vo)-.4 G --.1(ke).2 G 3.44(da).1 G 3.44<7399>241.16 273 S(mailq,)252.93 273 Q 3.439<9a69> --.7 G 3.439(tw)288.169 273 S .939(ill simulate the)301.608 273 R F0(\255bp) -3.439 E F1 .939(\215ag \(i.e.,)3.439 F F2(sendmail)3.439 E F1 .939(will print) -3.439 F(the contents of the mail queue; see belo)117 285 Q 2.5(w\). This)-.25 F -(should be a link to /usr/sbin/sendmail.)2.5 E F0 2.5(2. NORMAL)72 309 R(OPERA) -2.5 E(TIONS)-.95 E 2.5(2.1. The)87 333 R(System Log)2.5 E F1 -(The system log is supported by the)127 349.2 Q F2(syslo)2.5 E(gd)-.1 E F1 -(\(8\) program.)1.666 E F0 2.5(2.1.1. F)102 373.2 R(ormat)-.25 E F1 .574(Each \ -line in the system log consists of a timestamp, the name of the machine that g\ -ener)142 389.4 R(-)-.2 E .849(ated it \(for logging from se)117 401.4 R -.15 -(ve)-.25 G .849(ral machines o).15 F -.15(ve)-.15 G 3.349(rt).15 G .848 -(he local area netw)316.942 401.4 R .848(ork\), the w)-.1 F .848 -(ord \231sendmail:\232,)-.1 F(and a message.)117 413.4 Q F0 2.5(2.1.2. Le)102 -437.4 R -.1(ve)-.15 G(ls).1 E F1 .204(If you ha)142 453.6 R -.15(ve)-.2 G F2 -(syslo)2.854 E(gd)-.1 E F1 .204(\(8\) or an equi)1.666 F -.25(va)-.25 G .205 +102 377.4 R F1(If)142 393.6 Q F2(sendmail)3.439 E F1 .939(is in)3.439 F -.2(vo) +-.4 G -.1(ke).2 G 3.439(da).1 G 3.439<7399>241.156 393.6 S(mailq,)252.925 393.6 +Q 3.439<9a69>-.7 G 3.439(tw)288.164 393.6 S .939(ill simulate the)301.603 393.6 +R F0(\255bp)3.439 E F1 .94(\215ag \(i.e.,)3.44 F F2(sendmail)3.44 E F1 .94 +(will print)3.44 F(the contents of the mail queue; see belo)117 405.6 Q 2.5 +(w\). This)-.25 F(should be a link to /usr/sbin/sendmail.)2.5 E F0 2.5 +(2. NORMAL)72 429.6 R(OPERA)2.5 E(TIONS)-.95 E 2.5(2.1. The)87 453.6 R +(System Log)2.5 E F1 1.511(The system log is supported by the)127 469.8 R F2 +(syslo)4.011 E(gd)-.1 E F1 1.511(\(8\) program.)1.666 F 1.511 +(All messages from)6.511 F F2(sendmail)4.011 E F1(are)4.011 E(logged under the) +102 481.8 Q/F3 9/Times-Roman@0 SF(LOG_MAIL)2.5 E F1 -.1(fa)2.5 G(cility).1 E(.) +-.65 E F0 2.5(2.1.1. F)102 505.8 R(ormat)-.25 E F1 .574(Each line in the syste\ +m log consists of a timestamp, the name of the machine that gener)142 522 R(-) +-.2 E .849(ated it \(for logging from se)117 534 R -.15(ve)-.25 G .849 +(ral machines o).15 F -.15(ve)-.15 G 3.349(rt).15 G .848(he local area netw) +316.942 534 R .848(ork\), the w)-.1 F .848(ord \231sendmail:\232,)-.1 F +(and a message.)117 546 Q F0 2.5(2.1.2. Le)102 570 R -.1(ve)-.15 G(ls).1 E F1 +.204(If you ha)142 586.2 R -.15(ve)-.2 G F2(syslo)2.854 E(gd)-.1 E F1 .204 +(\(8\) or an equi)1.666 F -.25(va)-.25 G .205 (lent installed, you will be able to do logging.).25 F .205(There is)5.205 F -2.788(al)117 465.6 S(ar)127.008 465.6 Q .287 +2.788(al)117 598.2 S(ar)127.008 598.2 Q .287 (ge amount of information that can be logged.)-.18 F .287 (The log is arranged as a succession of le)5.287 F -.15(ve)-.25 G(ls.).15 E .65 -(At the lo)117 477.6 R .65(west le)-.25 F -.15(ve)-.25 G 3.15(lo).15 G .65 -(nly e)201.72 477.6 R .651(xtremely strange situations are logged.)-.15 F .651 +(At the lo)117 610.2 R .65(west le)-.25 F -.15(ve)-.25 G 3.15(lo).15 G .65 +(nly e)201.72 610.2 R .651(xtremely strange situations are logged.)-.15 F .651 (At the highest le)5.651 F -.15(ve)-.25 G .651(l, e).15 F -.15(ve)-.25 G 3.151 -(nt).15 G(he)494.56 477.6 Q .826(most mundane and uninteresting e)117 489.6 R +(nt).15 G(he)494.56 610.2 Q .826(most mundane and uninteresting e)117 622.2 R -.15(ve)-.25 G .825(nts are recorded for posterity).15 F 5.825(.A)-.65 G 3.325 -(sac)400.27 489.6 S(on)419.69 489.6 Q -.15(ve)-.4 G .825(ntion, log le).15 F +(sac)400.27 622.2 S(on)419.69 622.2 Q -.15(ve)-.4 G .825(ntion, log le).15 F -.15(ve)-.25 G(ls).15 E .2 -(under ten are considered generally \231useful;\232 log le)117 501.6 R -.15(ve) +(under ten are considered generally \231useful;\232 log le)117 634.2 R -.15(ve) -.25 G .201(ls abo).15 F .501 -.15(ve 6)-.15 H 2.701(4a).15 G .201(re reserv) -381.566 501.6 R .201(ed for deb)-.15 F .201(ugging pur)-.2 F(-)-.2 E 2.5 -(poses. Le)117 513.6 R -.15(ve)-.25 G(ls from 11\25564 are reserv).15 E +381.566 634.2 R .201(ed for deb)-.15 F .201(ugging pur)-.2 F(-)-.2 E 2.5 +(poses. Le)117 646.2 R -.15(ve)-.25 G(ls from 11\25564 are reserv).15 E (ed for v)-.15 E(erbose information that some sites might w)-.15 E(ant.)-.1 E -2.5(Ac)142 529.8 S(omplete description of the log le)156.16 529.8 Q -.15(ve) --.25 G(ls is gi).15 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(ns)340.35 529.8 S -(ection 4.6.)351.74 529.8 Q F0 2.5(2.2. The)87 553.8 R(Mail Queue)2.5 E F1 .263 -(The mail queue should be processed transparently)127 570 R 5.262(.H)-.65 G --.25(ow)342.868 570 S -2.15 -.25(ev e).25 H 1.062 -.4(r, y).25 H .262 -(ou may \214nd that manual inter).4 F(-)-.2 E -.15(ve)102 582 S .081 -(ntion is sometimes necessary).15 F 5.081(.F)-.65 G .081(or e)240.254 582 R +2.5(Ac)142 662.4 S(omplete description of the log le)156.16 662.4 Q -.15(ve) +-.25 G(ls is gi).15 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(ns)340.35 662.4 S +(ection 4.6.)351.74 662.4 Q F0 2.5(2.2. The)87 686.4 R(Mail Queue)2.5 E F1 .263 +(The mail queue should be processed transparently)127 702.6 R 5.262(.H)-.65 G +-.25(ow)342.868 702.6 S -2.15 -.25(ev e).25 H 1.062 -.4(r, y).25 H .262 +(ou may \214nd that manual inter).4 F(-)-.2 E -.15(ve)102 714.6 S .081 +(ntion is sometimes necessary).15 F 5.081(.F)-.65 G .081(or e)240.254 714.6 R .081(xample, if a major host is do)-.15 F .081 -(wn for a period of time the queue)-.25 F .268(may become clogged.)102 594 R -(Although)5.268 E F2(sendmail)2.768 E F1 .268(ought to reco)2.768 F -.15(ve) --.15 G 2.768(rg).15 G .268(racefully when the host comes up, you)348.254 594 R -(may \214nd performance unacceptably bad in the meantime.)102 606 Q F0 2.5 -(2.2.1. Printing)102 630 R(the queue)2.5 E F1 .526 -(The contents of the queue can be printed using the)142 646.2 R F2(mailq)3.026 -E F1 .526(command \(or by specifying the)3.026 F F0(\255bp)117 658.2 Q F1 -(\215ag to)2.5 E F2(sendmail)2.5 E F1(\):)A(mailq)157 674.4 Q 1.673 -(This will produce a listing of the queue id')117 690.6 R 1.673 -(s, the size of the message, the date the message)-.55 F -(entered the queue, and the sender and recipients.)117 702.6 Q EP -%%Page: 14 9 +(wn for a period of time the queue)-.25 F EP +%%Page: 13 8 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-14 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E 2.5(2.2.2. F)102 96 R(or)-.25 E -(cing the queue)-.18 E/F1 10/Times-Italic@0 SF(Sendmail)142 112.2 Q/F2 10 -/Times-Roman@0 SF 1.137(should run the queue automatically at interv)3.637 F -3.638(als. The)-.25 F 1.138(algorithm is to read and)3.638 F .355 -(sort the queue, and then to attempt to process all jobs in order)117 124.2 R -5.355(.W)-.55 G .355(hen it attempts to run the job,)384.37 124.2 R F1 -(sendmail)117 136.2 Q F2(\214rst checks to see if the job is lock)2.5 E 2.5 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-13)452.9 60 Q/F1 10/Times-Roman@0 SF .268(may become clogged.)102 96 R +(Although)5.268 E/F2 10/Times-Italic@0 SF(sendmail)2.768 E F1 .268 +(ought to reco)2.768 F -.15(ve)-.15 G 2.768(rg).15 G .268 +(racefully when the host comes up, you)348.254 96 R +(may \214nd performance unacceptably bad in the meantime.)102 108 Q F0 2.5 +(2.2.1. Printing)102 132 R(the queue)2.5 E F1 .526 +(The contents of the queue can be printed using the)142 148.2 R F2(mailq)3.026 +E F1 .526(command \(or by specifying the)3.026 F F0(\255bp)117 160.2 Q F1 +(\215ag to)2.5 E F2(sendmail)2.5 E F1(\):)A(mailq)157 176.4 Q 1.673 +(This will produce a listing of the queue id')117 192.6 R 1.673 +(s, the size of the message, the date the message)-.55 F +(entered the queue, and the sender and recipients.)117 204.6 Q F0 2.5(2.2.2. F) +102 228.6 R(or)-.25 E(cing the queue)-.18 E F2(Sendmail)142 244.8 Q F1 1.137 +(should run the queue automatically at interv)3.637 F 3.638(als. The)-.25 F +1.138(algorithm is to read and)3.638 F .355 +(sort the queue, and then to attempt to process all jobs in order)117 256.8 R +5.355(.W)-.55 G .355(hen it attempts to run the job,)384.37 256.8 R F2 +(sendmail)117 268.8 Q F1(\214rst checks to see if the job is lock)2.5 E 2.5 (ed. If)-.1 F(so, it ignores the job)2.5 E(.)-.4 E .338 -(There is no attempt to insure that only one queue processor e)142 152.4 R .338 -(xists at an)-.15 F 2.838(yt)-.15 G .339(ime, since there)440.282 152.4 R .095 -(is no guarantee that a job cannot tak)117 164.4 R 2.595(ef)-.1 G(ore)272.07 -164.4 Q -.15(ve)-.25 G 2.595(rt).15 G 2.595(op)302.585 164.4 S .094 -(rocess \(ho)315.18 164.4 R(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F1(sendmail) -2.994 E F2 .094(does include heuris-)2.594 F 1.086 +(There is no attempt to insure that only one queue processor e)142 285 R .338 +(xists at an)-.15 F 2.838(yt)-.15 G .339(ime, since there)440.282 285 R .095 +(is no guarantee that a job cannot tak)117 297 R 2.595(ef)-.1 G(ore)272.07 297 +Q -.15(ve)-.25 G 2.595(rt).15 G 2.595(op)302.585 297 S .094(rocess \(ho)315.18 +297 R(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F2(sendmail)2.994 E F1 .094 +(does include heuris-)2.594 F 1.086 (tics to try to abort jobs that are taking absurd amounts of time; technically) -117 176.4 R 3.587(,t)-.65 G 1.087(his violates RFC)435.146 176.4 R .462(821, b) -117 188.4 R .461(ut is blessed by RFC 1123\).)-.2 F .461 +117 309 R 3.587(,t)-.65 G 1.087(his violates RFC)435.146 309 R .462(821, b)117 +321 R .461(ut is blessed by RFC 1123\).)-.2 F .461 (Due to the locking algorithm, it is impossible for one job to)5.461 F 1.086 -(freeze the entire queue.)117 200.4 R(Ho)6.086 E(we)-.25 E -.15(ve)-.25 G 1.886 --.4(r, a).15 H 3.586(nu).4 G(ncooperati)279.346 200.4 Q 1.386 -.15(ve r)-.25 H -1.086(ecipient host or a program recipient that).15 F(ne)117 212.4 Q -.15(ve) --.25 G 3.351(rr).15 G .851(eturns can accumulate man)145.491 212.4 R 3.351(yp) --.15 G .851(rocesses in your system.)269.825 212.4 R(Unfortunately)5.851 E -3.351(,t)-.65 G .85(here is no com-)439.52 212.4 R(pletely general w)117 224.4 -Q(ay to solv)-.1 E 2.5(et)-.15 G(his.)234.23 224.4 Q .082 -(In some cases, you may \214nd that a major host going do)142 240.6 R .083 -(wn for a couple of days may create)-.25 F 2.925(ap)117 252.6 S(rohibiti) -129.365 252.6 Q -.15(ve)-.25 G .425(ly lar).15 F .425(ge queue.)-.18 F .424 -(This will result in)5.425 F F1(sendmail)2.924 E F2 .424 +(freeze the entire queue.)117 333 R(Ho)6.086 E(we)-.25 E -.15(ve)-.25 G 1.886 +-.4(r, a).15 H 3.586(nu).4 G(ncooperati)279.346 333 Q 1.386 -.15(ve r)-.25 H +1.086(ecipient host or a program recipient that).15 F(ne)117 345 Q -.15(ve)-.25 +G 3.351(rr).15 G .851(eturns can accumulate man)145.491 345 R 3.351(yp)-.15 G +.851(rocesses in your system.)269.825 345 R(Unfortunately)5.851 E 3.351(,t)-.65 +G .85(here is no com-)439.52 345 R(pletely general w)117 357 Q(ay to solv)-.1 E +2.5(et)-.15 G(his.)234.23 357 Q .082 +(In some cases, you may \214nd that a major host going do)142 373.2 R .083 +(wn for a couple of days may create)-.25 F 2.925(ap)117 385.2 S(rohibiti) +129.365 385.2 Q -.15(ve)-.25 G .425(ly lar).15 F .425(ge queue.)-.18 F .424 +(This will result in)5.425 F F2(sendmail)2.924 E F1 .424 (spending an inordinate amount of time)2.924 F 1.084(sorting the queue.)117 -264.6 R 1.084(This situation can be \214x)6.084 F 1.084(ed by mo)-.15 F 1.085 -(ving the queue to a temporary place and)-.15 F .023(creating a ne)117 276.6 R -2.523(wq)-.25 G 2.523(ueue. The)182.629 276.6 R .022 +397.2 R 1.084(This situation can be \214x)6.084 F 1.084(ed by mo)-.15 F 1.085 +(ving the queue to a temporary place and)-.15 F .023(creating a ne)117 409.2 R +2.523(wq)-.25 G 2.523(ueue. The)182.629 409.2 R .022 (old queue can be run later when the of)2.523 F .022 -(fending host returns to service.)-.25 F 1.6 -.8(To d)142 292.8 T 2.5(ot).8 G -(his, it is acceptable to mo)170.09 292.8 Q .3 -.15(ve t)-.15 H -(he entire queue directory:).15 E(cd /v)157 309 Q(ar/spool)-.25 E -(mv mqueue omqueue; mkdir mqueue; chmod 700 mqueue)157 321 Q -1.1(Yo)117 337.2 -S 2.708(us)1.1 G .208(hould then kill the e)139.718 337.2 R .209 +(fending host returns to service.)-.25 F 1.6 -.8(To d)142 425.4 T 2.5(ot).8 G +(his, it is acceptable to mo)170.09 425.4 Q .3 -.15(ve t)-.15 H +(he entire queue directory:).15 E(cd /v)157 441.6 Q(ar/spool)-.25 E +(mv mqueue omqueue; mkdir mqueue; chmod 700 mqueue)157 453.6 Q -1.1(Yo)117 +469.8 S 2.708(us)1.1 G .208(hould then kill the e)139.718 469.8 R .209 (xisting daemon \(since it will still be processing in the old queue direc-) --.15 F(tory\) and create a ne)117 349.2 Q 2.5(wd)-.25 G(aemon.)213.1 349.2 Q -1.6 -.8(To r)142 365.4 T(un the old mail queue, run the follo).8 E -(wing command:)-.25 E(/usr/sbin/sendmail \255oQ/v)157 381.6 Q -(ar/spool/omqueue \255q)-.25 E(The)117 397.8 Q F0(\255oQ)2.868 E F2 .367 +-.15 F(tory\) and create a ne)117 481.8 Q 2.5(wd)-.25 G(aemon.)213.1 481.8 Q +1.6 -.8(To r)142 498 T(un the old mail queue, run the follo).8 E(wing command:) +-.25 E(/usr/sbin/sendmail \255oQ/v)157 514.2 Q(ar/spool/omqueue \255q)-.25 E +(The)117 530.4 Q F0(\255oQ)2.868 E F1 .367 (\215ag speci\214es an alternate queue directory and the)2.868 F F0<ad71>2.867 -E F2 .367(\215ag says to just run e)2.867 F -.15(ve)-.25 G .367(ry job in).15 F -.593(the queue.)117 409.8 R .593(If you ha)5.593 F .893 -.15(ve a t)-.2 H -(endenc).15 E 3.093(yt)-.15 G -2.1 -.25(ow a)263.111 409.8 T .593(rd v).25 F --.1(oy)-.2 G .593(eurism, you can use the).1 F F0<ad76>3.094 E F2 .594 -(\215ag to w)3.094 F .594(atch what is)-.1 F(going on.)117 421.8 Q -(When the queue is \214nally emptied, you can remo)142 438 Q .3 -.15(ve t)-.15 -H(he directory:).15 E(rmdir /v)157 454.2 Q(ar/spool/omqueue)-.25 E F0 2.5 -(2.3. The)87 482.4 R(Alias Database)2.5 E F2 .361(The alias database e)127 -498.6 R .361(xists in tw)-.15 F 2.861(of)-.1 G 2.861(orms. One)261.116 498.6 R -.361(is a te)2.861 F .36(xt form, maintained in the \214le)-.15 F F1 -(/etc/aliases.)2.86 E F2(The aliases are of the form)102 510.6 Q -(name: name1, name2, ...)142 526.8 Q(Only local names may be aliased; e.g.,)102 -543 Q(eric@prep.ai.MIT)142 559.2 Q(.EDU: eric@CS.Berk)-.74 E(ele)-.1 E -.65(y.) --.15 G(EDU).65 E .348(will not ha)102 575.4 R .648 -.15(ve t)-.2 H .348 -(he desired ef).15 F 2.849(fect. Aliases)-.25 F .349 -(may be continued by starting an)2.849 F 2.849(yc)-.15 G .349 -(ontinuation lines with a)408.783 575.4 R(space or a tab)102 587.4 Q 5(.B)-.4 G -(lank lines and lines be)170.47 587.4 Q -(ginning with a sharp sign \(\231#\232\) are comments.)-.15 E 1.593 -(The second form is processed by the)127 603.6 R F1(dbm)4.093 E F2 1.593 -(\(3\) \(or)1.666 F F1(db)4.093 E F2 1.593(\(3\)\) library)1.666 F 6.593(.T) --.65 G 1.593(his form is in the \214les)409.085 603.6 R F1(/etc/aliases.dir)102 -615.6 Q F2(and)3.028 E F1(/etc/aliases.pa)3.028 E -.15(g.)-.1 G F2 .528 -(This is the form that)5.678 F F1(sendmail)3.029 E F2 .529 -(actually uses to resolv)3.029 F 3.029(ea)-.15 G(liases.)479.28 615.6 Q -(This technique is used to impro)102 627.6 Q .3 -.15(ve p)-.15 H(erformance.) -.15 E -1.1(Yo)127 643.8 S 2.5(uc)1.1 G(an also use)150.06 643.8 Q/F3 9 -/Times-Roman@0 SF(NIS)2.5 E F2(-based alias \214les.)A -.15(Fo)5 G 2.5(re).15 G -(xample, the speci\214cation:)305.069 643.8 Q -.35(OA)142 660 S(/etc/aliases) -.35 E -.35(OA)142 672 S(nis:mail.aliases@my).35 E(.nis.domain)-.65 E(will \214\ -rst search the /etc/aliases \214le and then the map named \231mail.aliases\232\ - in \231my)102 688.2 Q(.nis.domain\232.)-.65 E -(Additional \215ags can be added after the colon e)127 704.4 Q(xactly lik)-.15 -E 2.5(ea)-.1 G F0(K)A F2(line \212 for e)2.5 E(xample:)-.15 E EP -%%Page: 15 10 +E F1 .367(\215ag says to just run e)2.867 F -.15(ve)-.25 G .367(ry job in).15 F +.593(the queue.)117 542.4 R .593(If you ha)5.593 F .893 -.15(ve a t)-.2 H +(endenc).15 E 3.093(yt)-.15 G -2.1 -.25(ow a)263.111 542.4 T .593(rd v).25 F +-.1(oy)-.2 G .593(eurism, you can use the).1 F F0<ad76>3.094 E F1 .594 +(\215ag to w)3.094 F .594(atch what is)-.1 F(going on.)117 554.4 Q +(When the queue is \214nally emptied, you can remo)142 570.6 Q .3 -.15(ve t) +-.15 H(he directory:).15 E(rmdir /v)157 586.8 Q(ar/spool/omqueue)-.25 E F0 2.5 +(2.3. The)87 615 R(Alias Database)2.5 E F1 .361(The alias database e)127 631.2 +R .361(xists in tw)-.15 F 2.861(of)-.1 G 2.861(orms. One)261.116 631.2 R .361 +(is a te)2.861 F .36(xt form, maintained in the \214le)-.15 F F2(/etc/aliases.) +2.86 E F1(The aliases are of the form)102 643.2 Q(name: name1, name2, ...)142 +659.4 Q(Only local names may be aliased; e.g.,)102 675.6 Q(eric@prep.ai.MIT)142 +691.8 Q(.EDU: eric@CS.Berk)-.74 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E .348 +(will not ha)102 708 R .648 -.15(ve t)-.2 H .348(he desired ef).15 F 2.849 +(fect. Aliases)-.25 F .349(may be continued by starting an)2.849 F 2.849(yc) +-.15 G .349(ontinuation lines with a)408.783 708 R(space or a tab)102 720 Q 5 +(.B)-.4 G(lank lines and lines be)170.47 720 Q +(ginning with a sharp sign \(\231#\232\) are comments.)-.15 E EP +%%Page: 14 9 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-15)452.9 60 Q/F1 10/Times-Roman@0 SF -.35(OA)142 96 S +/F0 10/Times-Bold@0 SF 193.36(SMM:08-14 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.593 +(The second form is processed by the)127 96 R/F2 10/Times-Italic@0 SF(dbm)4.093 +E F1 1.593(\(3\) \(or)1.666 F F2(db)4.093 E F1 1.593(\(3\)\) library)1.666 F +6.593(.T)-.65 G 1.593(his form is in the \214les)409.085 96 R F2 +(/etc/aliases.dir)102 108 Q F1(and)3.028 E F2(/etc/aliases.pa)3.028 E -.15(g.) +-.1 G F1 .528(This is the form that)5.678 F F2(sendmail)3.029 E F1 .529 +(actually uses to resolv)3.029 F 3.029(ea)-.15 G(liases.)479.28 108 Q +(This technique is used to impro)102 120 Q .3 -.15(ve p)-.15 H(erformance.).15 +E -1.1(Yo)127 136.2 S 2.5(uc)1.1 G(an also use)150.06 136.2 Q/F3 9 +/Times-Roman@0 SF(NIS)2.5 E F1(-based alias \214les.)A -.15(Fo)5 G 2.5(re).15 G +(xample, the speci\214cation:)305.069 136.2 Q -.35(OA)142 152.4 S(/etc/aliases) +.35 E -.35(OA)142 164.4 S(nis:mail.aliases@my).35 E(.nis.domain)-.65 E 1.725(w\ +ill \214rst search the /etc/aliases \214le and then the map named \231mail.ali\ +ases\232 in \231my)102 180.6 R(.nis.domain\232.)-.65 E -.8(Wa)102 192.6 S .589 +(rning: if you b).8 F .589(uild your o)-.2 F(wn)-.25 E F3(NIS)3.089 E F1 .589 +(-based alias \214les, be sure to pro)B .59(vide the)-.15 F F0<ad6c>3.09 E F1 +.59(\215ag to)3.09 F F2(mak)3.09 E(edbm)-.1 E F1(\(8\))A .159 +(to map upper case letters in the k)102 204.6 R -.15(ey)-.1 G 2.659(st).15 G +2.659(ol)253.552 204.6 S -.25(ow)263.991 204.6 S .159 +(er case; otherwise, aliases with upper case letters in their).25 F(names w)102 +216.6 Q(on')-.1 E 2.5(tm)-.18 G(atch incoming addresses.)163.38 216.6 Q +(Additional \215ags can be added after the colon e)127 232.8 Q(xactly lik)-.15 +E 2.5(ea)-.1 G F0(K)A F1(line \212 for e)2.5 E(xample:)-.15 E -.35(OA)142 249 S (nis:-N mail.aliases@my).35 E(.nis.domain)-.65 E -(will search the appropriate NIS map and al)102 112.2 Q -.1(wa)-.1 G +(will search the appropriate NIS map and al)102 265.2 Q -.1(wa)-.1 G (ys include null bytes in the k).1 E -.15(ey)-.1 G(.)-.5 E F0 2.5(2.3.1. Reb) -102 136.2 R(uilding the alias database)-.2 E F1 .542(The DB or DBM v)142 152.4 +102 289.2 R(uilding the alias database)-.2 E F1 .542(The DB or DBM v)142 305.4 R .542(ersion of the database may be reb)-.15 F .542(uilt e)-.2 F .542 -(xplicitly by e)-.15 F -.15(xe)-.15 G .542(cuting the com-).15 F(mand)117 164.4 -Q(ne)157 180.6 Q -.1(wa)-.25 G(liases).1 E(This is equi)117 196.8 Q -.25(va) --.25 G(lent to gi).25 E(ving)-.25 E/F2 10/Times-Italic@0 SF(sendmail)2.5 E F1 -(the)2.5 E F0(\255bi)2.5 E F1(\215ag:)2.5 E(/usr/sbin/sendmail \255bi)157 213 Q -.259(If the \231D\232 option is speci\214ed in the con\214guration,)142 233.4 R -F2(sendmail)2.759 E F1 .26(will reb)2.759 F .26(uild the alias database)-.2 F -1.921(automatically if possible when it is out of date.)117 245.4 R(Auto-reb) -6.921 E 1.92(uild can be dangerous on hea)-.2 F(vily)-.2 E 1.45 -(loaded machines with lar)117 257.4 R 1.45(ge alias \214les; if it might tak) --.18 F 3.951(em)-.1 G 1.451(ore than \214v)355.654 257.4 R 3.951(em)-.15 G -1.451(inutes to reb)420.127 257.4 R 1.451(uild the)-.2 F -(database, there is a chance that se)117 269.4 Q -.15(ve)-.25 G +(xplicitly by e)-.15 F -.15(xe)-.15 G .542(cuting the com-).15 F(mand)117 317.4 +Q(ne)157 333.6 Q -.1(wa)-.25 G(liases).1 E(This is equi)117 349.8 Q -.25(va) +-.25 G(lent to gi).25 E(ving)-.25 E F2(sendmail)2.5 E F1(the)2.5 E F0(\255bi) +2.5 E F1(\215ag:)2.5 E(/usr/sbin/sendmail \255bi)157 366 Q .26 +(If the \231D\232 option is speci\214ed in the con\214guration,)142 386.4 R F2 +(sendmail)2.759 E F1 .259(will reb)2.759 F .259(uild the alias database)-.2 F +1.92(automatically if possible when it is out of date.)117 398.4 R(Auto-reb) +6.921 E 1.921(uild can be dangerous on hea)-.2 F(vily)-.2 E 1.451 +(loaded machines with lar)117 410.4 R 1.451(ge alias \214les; if it might tak) +-.18 F 3.951(em)-.1 G 1.45(ore than \214v)355.66 410.4 R 3.95(em)-.15 G 1.45 +(inutes to reb)420.13 410.4 R 1.45(uild the)-.2 F +(database, there is a chance that se)117 422.4 Q -.15(ve)-.25 G (ral processes will start the reb).15 E(uild process simultaneously)-.2 E(.) --.65 E 1.77(If you ha)142 285.6 R 2.07 -.15(ve m)-.2 H 1.77 +-.65 E 1.77(If you ha)142 438.6 R 2.07 -.15(ve m)-.2 H 1.77 (ultiple aliases databases speci\214ed, the).15 F F0(\255bi)4.27 E F1 1.77 (\215ag reb)4.27 F 1.77(uilds all the database)-.2 F -(types it understands \(for e)117 297.6 Q(xample, it can reb)-.15 E +(types it understands \(for e)117 450.6 Q(xample, it can reb)-.15 E (uild dbm databases b)-.2 E(ut not nis databases\).)-.2 E F0 2.5(2.3.2. P)102 -321.6 R(otential pr)-.2 E(oblems)-.18 E F1 1.131 +474.6 R(otential pr)-.2 E(oblems)-.18 E F1 1.131 (There are a number of problems that can occur with the alias database.)142 -337.8 R(The)6.131 E 3.631(ya)-.15 G 1.131(ll result)472.589 337.8 R 1.104 -(from a)117 349.8 R F2(sendmail)3.604 E F1 1.104(process accessing the DBM v) -3.604 F 1.103(ersion while it is only partially b)-.15 F 3.603(uilt. This)-.2 F -(can)3.603 E 1.248(happen under tw)117 361.8 R 3.748(oc)-.1 G 1.248 +490.8 R(The)6.13 E 3.63(ya)-.15 G 1.13(ll result)472.59 490.8 R 1.103(from a) +117 502.8 R F2(sendmail)3.603 E F1 1.103(process accessing the DBM v)3.603 F +1.103(ersion while it is only partially b)-.15 F 3.604(uilt. This)-.2 F(can) +3.604 E 1.249(happen under tw)117 514.8 R 3.749(oc)-.1 G 1.248 (ircumstances: One process accesses the database while another process is) -199.234 361.8 R(reb)117 373.8 Q .518(uilding it, or the process reb)-.2 F .518 +199.237 514.8 R(reb)117 526.8 Q .518(uilding it, or the process reb)-.2 F .518 (uilding the database dies \(due to being killed or a system crash\))-.2 F -(before completing the reb)117 385.8 Q(uild.)-.2 E .792(Sendmail has tw)142 402 -R 3.292(ot)-.1 G .792(echniques to try to relie)220.666 402 R 1.092 -.15(ve t) --.25 H .792(hese problems.).15 F .793(First, it ignores interrupts)5.793 F .045 -(while reb)117 414 R .045(uilding the database; this a)-.2 F -.2(vo)-.2 G .045 +(before completing the reb)117 538.8 Q(uild.)-.2 E .793(Sendmail has tw)142 555 +R 3.293(ot)-.1 G .792(echniques to try to relie)220.669 555 R 1.092 -.15(ve t) +-.25 H .792(hese problems.).15 F .792(First, it ignores interrupts)5.792 F .045 +(while reb)117 567 R .045(uilding the database; this a)-.2 F -.2(vo)-.2 G .045 (ids the problem of someone aborting the process lea).2 F .045(ving a)-.2 F -(partially reb)117 426 Q(uilt database.)-.2 E(Second, at the end of the reb)5 E -(uild it adds an alias of the form)-.2 E(@: @)157 442.2 Q .336 -(\(which is not normally le)117 458.4 R -.05(ga)-.15 G 2.836(l\). Before).05 F +(partially reb)117 579 Q(uilt database.)-.2 E(Second, at the end of the reb)5 E +(uild it adds an alias of the form)-.2 E(@: @)157 595.2 Q .336 +(\(which is not normally le)117 611.4 R -.05(ga)-.15 G 2.836(l\). Before).05 F F2(sendmail)2.836 E F1 .336(will access the database, it checks to insure that) -2.836 F(this entry e)117 472.4 Q(xists)-.15 E/F3 7/Times-Roman@0 SF(5)179.63 -468.4 Q F1(.)183.13 472.4 Q F0 2.5(2.3.3. List)102 496.4 R -.1(ow)2.5 G(ners).1 -E F1 .4(If an error occurs on sending to a certain address, say \231)142 512.6 +2.836 F(this entry e)117 625.4 Q(xists)-.15 E/F4 7/Times-Roman@0 SF(5)179.63 +621.4 Q F1(.)183.13 625.4 Q F0 2.5(2.3.3. List)102 649.4 R -.1(ow)2.5 G(ners).1 +E F1 .4(If an error occurs on sending to a certain address, say \231)142 665.6 R F2(x)A F1<9a2c>A F2(sendmail)2.901 E F1 .401(will look for an alias)2.901 F -.418(of the form \231o)117 524.6 R(wner)-.25 E(-)-.2 E F2(x)A F1 2.918<9a74>C -2.918(or)212.632 524.6 S(ecei)223.88 524.6 Q .718 -.15(ve t)-.25 H .418 +.418(of the form \231o)117 677.6 R(wner)-.25 E(-)-.2 E F2(x)A F1 2.918<9a74>C +2.918(or)212.632 677.6 S(ecei)223.88 677.6 Q .718 -.15(ve t)-.25 H .418 (he errors.).15 F .417(This is typically useful for a mailing list where the) -5.418 F 1.116(submitter of the list has no control o)117 536.6 R -.15(ve)-.15 G -3.617(rt).15 G 1.117(he maintenance of the list itself; in this case the list) -288.4 536.6 R(maintainer w)117 548.6 Q(ould be the o)-.1 E(wner of the list.) --.25 E -.15(Fo)5 G 2.5(re).15 G(xample:)309.38 548.6 Q -(unix-wizards: eric@ucbarpa, wnj@monet, nosuchuser)157 564.8 Q(,)-.4 E -(sam@matisse)193 576.8 Q -.25(ow)157 588.8 S(ner).25 E -(-unix-wizards: eric@ucbarpa)-.2 E -.1(wo)117 605 S 1.959(uld cause \231eric@u\ -cbarpa\232 to get the error that will occur when someone sends to unix-).1 F -(wizards due to the inclusion of \231nosuchuser\232 on the list.)117 617 Q .958 -(List o)142 633.2 R .958(wners also cause the en)-.25 F -.15(ve)-.4 G .959 -(lope sender address to be modi\214ed.).15 F .959(The contents of the)5.959 F --.25(ow)117 645.2 S .429(ner alias are used if the).25 F 2.929(yp)-.15 G .429 -(oint to a single user)236.364 645.2 R 2.928(,o)-.4 G .428 -(therwise the name of the alias itself is used.)326.436 645.2 R -.15(Fo)117 -657.2 S 2.5(rt).15 G(his reason, and to obe)136.02 657.2 Q 2.5(yI)-.15 G -(nternet con)233.63 657.2 Q -.15(ve)-.4 G(ntions, a typical scheme w).15 E -(ould be:)-.1 E .32 LW 76 669.2 72 669.2 DL 80 669.2 76 669.2 DL 84 669.2 80 -669.2 DL 88 669.2 84 669.2 DL 92 669.2 88 669.2 DL 96 669.2 92 669.2 DL 100 -669.2 96 669.2 DL 104 669.2 100 669.2 DL 108 669.2 104 669.2 DL 112 669.2 108 -669.2 DL 116 669.2 112 669.2 DL 120 669.2 116 669.2 DL 124 669.2 120 669.2 DL -128 669.2 124 669.2 DL 132 669.2 128 669.2 DL 136 669.2 132 669.2 DL 140 669.2 -136 669.2 DL 144 669.2 140 669.2 DL 148 669.2 144 669.2 DL 152 669.2 148 669.2 -DL 156 669.2 152 669.2 DL 160 669.2 156 669.2 DL 164 669.2 160 669.2 DL 168 -669.2 164 669.2 DL 172 669.2 168 669.2 DL 176 669.2 172 669.2 DL 180 669.2 176 -669.2 DL 184 669.2 180 669.2 DL 188 669.2 184 669.2 DL 192 669.2 188 669.2 DL -196 669.2 192 669.2 DL 200 669.2 196 669.2 DL 204 669.2 200 669.2 DL 208 669.2 -204 669.2 DL 212 669.2 208 669.2 DL 216 669.2 212 669.2 DL/F4 5/Times-Roman@0 -SF(5)93.6 679.6 Q/F5 8/Times-Roman@0 SF .389(The \231a\232 option is required \ -in the con\214guration for this action to occur)3.2 J 4.389(.T)-.44 G .389 -(his should normally be speci\214ed unless you are run-)334.24 682.8 R(ning)72 -692.4 Q/F6 8/Times-Italic@0 SF(delivermail)2 E F5(in parallel with)2 E F6 -(sendmail.)2 E EP -%%Page: 16 11 +5.418 F .32 LW 76 687.2 72 687.2 DL 80 687.2 76 687.2 DL 84 687.2 80 687.2 DL +88 687.2 84 687.2 DL 92 687.2 88 687.2 DL 96 687.2 92 687.2 DL 100 687.2 96 +687.2 DL 104 687.2 100 687.2 DL 108 687.2 104 687.2 DL 112 687.2 108 687.2 DL +116 687.2 112 687.2 DL 120 687.2 116 687.2 DL 124 687.2 120 687.2 DL 128 687.2 +124 687.2 DL 132 687.2 128 687.2 DL 136 687.2 132 687.2 DL 140 687.2 136 687.2 +DL 144 687.2 140 687.2 DL 148 687.2 144 687.2 DL 152 687.2 148 687.2 DL 156 +687.2 152 687.2 DL 160 687.2 156 687.2 DL 164 687.2 160 687.2 DL 168 687.2 164 +687.2 DL 172 687.2 168 687.2 DL 176 687.2 172 687.2 DL 180 687.2 176 687.2 DL +184 687.2 180 687.2 DL 188 687.2 184 687.2 DL 192 687.2 188 687.2 DL 196 687.2 +192 687.2 DL 200 687.2 196 687.2 DL 204 687.2 200 687.2 DL 208 687.2 204 687.2 +DL 212 687.2 208 687.2 DL 216 687.2 212 687.2 DL/F5 5/Times-Roman@0 SF(5)93.6 +697.6 Q/F6 8/Times-Roman@0 SF(The \231a\232 option is required in the con\214g\ +uration for this action to occur)3.2 I 4(.T)-.44 G +(his should normally be speci\214ed.)329.18 700.8 Q EP +%%Page: 15 10 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-16 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 18.49 -(list: some,)157 96 R(set, of, addresses)2.5 E 22.28 -(list-request: list-admin-1,)157 108 R(list-admin-2, ...)2.5 E -.25(ow)157 120 -S(ner).25 E 26.62(-list: list-request)-.2 F F0 2.5(2.4. User)87 148.2 R(Inf)2.5 -E(ormation Database)-.25 E F1 1.059(If you ha)127 164.4 R 1.359 -.15(ve a ve) --.2 H 1.059(rsion of).15 F/F2 10/Times-Italic@0 SF(sendmail)3.559 E F1 1.06 -(with the user information database compiled in, and you)3.559 F(ha)102 176.4 Q -2.206 -.15(ve s)-.2 H 1.906(peci\214ed one or more databases using the).15 F F0 -(U)4.406 E F1 1.905(option, the databases will be searched for a)4.406 F F2 -(user)102 188.4 Q F1(:maildrop entry)A 5(.I)-.65 G 2.5(ff)191.34 188.4 S -(ound, the mail will be sent to the speci\214ed address.)200.5 188.4 Q 1.288 -(If the \214rst tok)127 204.6 R 1.288(en passed to user part of the \231local\ -\232 mailer is an at sign, the at sign will be)-.1 F(stripped of)102 216.6 Q -2.5(fa)-.25 G(nd this step will be skipped.)155.07 216.6 Q F0 2.5(2.5. P)87 -240.6 R(er)-.2 E(-User F)-.37 E(orwarding \(.f)-.25 E(orward Files\))-.25 E F1 -.121(As an alternati)127 256.8 R .421 -.15(ve t)-.25 H 2.621(ot).15 G .121 -(he alias database, an)210.404 256.8 R 2.621(yu)-.15 G .12 -(ser may put a \214le with the name \231.forw)304.878 256.8 R .12 -(ard\232 in his)-.1 F .205(or her home directory)102 268.8 R 5.205(.I)-.65 G -2.705(ft)199.92 268.8 S .205(his \214le e)208.735 268.8 R(xists,)-.15 E F2 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-15)452.9 60 Q/F1 10/Times-Roman@0 SF 1.116 +(submitter of the list has no control o)117 96 R -.15(ve)-.15 G 3.617(rt).15 G +1.117(he maintenance of the list itself; in this case the list)288.4 96 R +(maintainer w)117 108 Q(ould be the o)-.1 E(wner of the list.)-.25 E -.15(Fo)5 +G 2.5(re).15 G(xample:)309.38 108 Q +(unix-wizards: eric@ucbarpa, wnj@monet, nosuchuser)157 124.2 Q(,)-.4 E +(sam@matisse)193 136.2 Q -.25(ow)157 148.2 S(ner).25 E +(-unix-wizards: eric@ucbarpa)-.2 E -.1(wo)117 164.4 S 1.959(uld cause \231eric\ +@ucbarpa\232 to get the error that will occur when someone sends to unix-).1 F +(wizards due to the inclusion of \231nosuchuser\232 on the list.)117 176.4 Q +.958(List o)142 192.6 R .958(wners also cause the en)-.25 F -.15(ve)-.4 G .959 +(lope sender address to be modi\214ed.).15 F .959(The contents of the)5.959 F +-.25(ow)117 204.6 S .429(ner alias are used if the).25 F 2.929(yp)-.15 G .429 +(oint to a single user)236.364 204.6 R 2.928(,o)-.4 G .428 +(therwise the name of the alias itself is used.)326.436 204.6 R -.15(Fo)117 +216.6 S 2.5(rt).15 G(his reason, and to obe)136.02 216.6 Q 2.5(yI)-.15 G +(nternet con)233.63 216.6 Q -.15(ve)-.4 G(ntions, a typical scheme w).15 E +(ould be:)-.1 E 18.49(list: some,)157 232.8 R(set, of, addresses)2.5 E 22.28 +(list-request: list-admin-1,)157 244.8 R(list-admin-2, ...)2.5 E -.25(ow)157 +256.8 S(ner).25 E 26.62(-list: list-request)-.2 F F0 2.5(2.4. User)87 285 R +(Inf)2.5 E(ormation Database)-.25 E F1 1.059(If you ha)127 301.2 R 1.359 -.15 +(ve a ve)-.2 H 1.059(rsion of).15 F/F2 10/Times-Italic@0 SF(sendmail)3.559 E F1 +1.06(with the user information database compiled in, and you)3.559 F(ha)102 +313.2 Q 2.206 -.15(ve s)-.2 H 1.906(peci\214ed one or more databases using the) +.15 F F0(U)4.406 E F1 1.905(option, the databases will be searched for a)4.406 +F F2(user)102 325.2 Q F1(:maildrop entry)A 5(.I)-.65 G 2.5(ff)191.34 325.2 S +(ound, the mail will be sent to the speci\214ed address.)200.5 325.2 Q 1.288 +(If the \214rst tok)127 341.4 R 1.288(en passed to user part of the \231local\ +\232 mailer is an at sign, the at sign will be)-.1 F(stripped of)102 353.4 Q +2.5(fa)-.25 G(nd this step will be skipped.)155.07 353.4 Q F0 2.5(2.5. P)87 +377.4 R(er)-.2 E(-User F)-.37 E(orwarding \(.f)-.25 E(orward Files\))-.25 E F1 +.121(As an alternati)127 393.6 R .421 -.15(ve t)-.25 H 2.621(ot).15 G .121 +(he alias database, an)210.404 393.6 R 2.621(yu)-.15 G .12 +(ser may put a \214le with the name \231.forw)304.878 393.6 R .12 +(ard\232 in his)-.1 F .205(or her home directory)102 405.6 R 5.205(.I)-.65 G +2.705(ft)199.92 405.6 S .205(his \214le e)208.735 405.6 R(xists,)-.15 E F2 (sendmail)2.705 E F1 .205 (redirects mail for that user to the list of addresses)2.705 F .909 -(listed in the .forw)102 280.8 R .908(ard \214le.)-.1 F -.15(Fo)5.908 G 3.408 +(listed in the .forw)102 417.6 R .908(ard \214le.)-.1 F -.15(Fo)5.908 G 3.408 (re).15 G .908 (xample, if the home directory for user \231mckusick\232 has a .forw)233.98 -280.8 R(ard)-.1 E(\214le with contents:)102 292.8 Q(mckusick@ernie)142 309 Q -(kirk@calder)142 321 Q(then an)102 337.2 Q 2.5(ym)-.15 G(ail arri)146.29 337.2 -Q(ving for \231mckusick\232 will be redirected to the speci\214ed accounts.) --.25 E(Actually)127 353.4 Q 3.374(,t)-.65 G .874 +417.6 R(ard)-.1 E(\214le with contents:)102 429.6 Q(mckusick@ernie)142 445.8 Q +(kirk@calder)142 457.8 Q(then an)102 474 Q 2.5(ym)-.15 G(ail arri)146.29 474 Q +(ving for \231mckusick\232 will be redirected to the speci\214ed accounts.)-.25 +E(Actually)127 490.2 Q 3.374(,t)-.65 G .874 (he con\214guration \214le de\214nes a sequence of \214lenames to check.) -169.444 353.4 R .875(By def)5.875 F .875(ault, this is)-.1 F .688(the user')102 -365.4 R 3.188(s.)-.55 G(forw)146.426 365.4 Q .688(ard \214le, b)-.1 F .687 +169.444 490.2 R .875(By def)5.875 F .875(ault, this is)-.1 F .688(the user')102 +502.2 R 3.188(s.)-.55 G(forw)146.426 502.2 Q .688(ard \214le, b)-.1 F .687 (ut can be de\214ned to be more generally using the)-.2 F F0(J)3.187 E F1 3.187 -(option. If)3.187 F .687(you change)3.187 F .393(this, you will ha)102 377.4 R +(option. If)3.187 F .687(you change)3.187 F .393(this, you will ha)102 514.2 R .693 -.15(ve t)-.2 H 2.893(oi).15 G .393 -(nform your user base of the change; .forw)193.064 377.4 R .393 -(ard is pretty well incorporated into)-.1 F(the collecti)102 389.4 Q .3 -.15 -(ve s)-.25 H(ubconscious.).15 E F0 2.5(2.6. Special)87 413.4 R(Header Lines)2.5 -E F1(Se)127 429.6 Q -.15(ve)-.25 G 1.898(ral header lines ha).15 F 2.197 -.15 +(nform your user base of the change; .forw)193.064 514.2 R .393 +(ard is pretty well incorporated into)-.1 F(the collecti)102 526.2 Q .3 -.15 +(ve s)-.25 H(ubconscious.).15 E F0 2.5(2.6. Special)87 550.2 R(Header Lines)2.5 +E F1(Se)127 566.4 Q -.15(ve)-.25 G 1.898(ral header lines ha).15 F 2.197 -.15 (ve s)-.2 H 1.897 (pecial interpretations de\214ned by the con\214guration \214le.).15 F(Others) -6.897 E(ha)102 441.6 Q 1.205 -.15(ve i)-.2 H .905(nterpretations b).15 F .905 +6.897 E(ha)102 578.4 Q 1.205 -.15(ve i)-.2 H .905(nterpretations b).15 F .905 (uilt into)-.2 F F2(sendmail)3.405 E F1 .906 (that cannot be changed without changing the code.)3.405 F(These)5.906 E -.2 -(bu)102 453.6 S(iltins are described here.).2 E F0 2.5(2.6.1. Retur)102 477.6 R +(bu)102 590.4 S(iltins are described here.).2 E F0 2.5(2.6.1. Retur)102 614.4 R (n-Receipt-T)-.15 E(o:)-.92 E F1 1.371 -(If this header is sent, a message will be sent to an)142 493.8 R 3.87(ys)-.15 -G 1.37(peci\214ed addresses when the \214nal)366.88 493.8 R(deli)117 505.8 Q +(If this header is sent, a message will be sent to an)142 630.6 R 3.87(ys)-.15 +G 1.37(peci\214ed addresses when the \214nal)366.88 630.6 R(deli)117 642.6 Q -.15(ve)-.25 G .367(ry is complete, that is, when successfully deli).15 F -.15 (ve)-.25 G .368(red to a mailer with the).15 F F0(l)2.868 E F1 .368 (\215ag \(local deli)2.868 F(v-)-.25 E(ery\) set in the mailer descriptor)117 -519.8 Q/F3 7/Times-Roman@0 SF(6)242.25 515.8 Q F1(.)245.75 519.8 Q F0 2.5 -(2.6.2. Err)102 543.8 R(ors-T)-.18 E(o:)-.92 E F1 .22(If errors occur an)142 -560 R .22 -(ywhere during processing, this header will cause error messages to go to)-.15 -F(the listed addresses.)117 572 Q(This is intended for mailing lists.)5 E .384 -(The Errors-T)142 588.2 R .384(o: header w)-.8 F .384 -(as created in the bad old days when UUCP didn')-.1 F 2.885(tu)-.18 G .385 -(nderstand the)450.015 588.2 R .89(distinction between an en)117 600.2 R -.15 -(ve)-.4 G .89(lope and a header; this w).15 F .889(as a hack to pro)-.1 F .889 -(vide what should no)-.15 F 3.389(wb)-.25 G(e)499.56 600.2 Q(passed as the en) -117 612.2 Q -.15(ve)-.4 G(lope sender address.).15 E(It should go a)5 E -.1(wa) --.15 G 3.8 -.65(y. I).1 H 2.5(ti).65 G 2.5(so)365.22 612.2 S(nly used if the) -376.61 612.2 Q F0(l)2.5 E F1(option is set.)2.5 E .32 LW 76 659.6 72 659.6 DL -80 659.6 76 659.6 DL 84 659.6 80 659.6 DL 88 659.6 84 659.6 DL 92 659.6 88 -659.6 DL 96 659.6 92 659.6 DL 100 659.6 96 659.6 DL 104 659.6 100 659.6 DL 108 -659.6 104 659.6 DL 112 659.6 108 659.6 DL 116 659.6 112 659.6 DL 120 659.6 116 -659.6 DL 124 659.6 120 659.6 DL 128 659.6 124 659.6 DL 132 659.6 128 659.6 DL -136 659.6 132 659.6 DL 140 659.6 136 659.6 DL 144 659.6 140 659.6 DL 148 659.6 -144 659.6 DL 152 659.6 148 659.6 DL 156 659.6 152 659.6 DL 160 659.6 156 659.6 -DL 164 659.6 160 659.6 DL 168 659.6 164 659.6 DL 172 659.6 168 659.6 DL 176 -659.6 172 659.6 DL 180 659.6 176 659.6 DL 184 659.6 180 659.6 DL 188 659.6 184 -659.6 DL 192 659.6 188 659.6 DL 196 659.6 192 659.6 DL 200 659.6 196 659.6 DL -204 659.6 200 659.6 DL 208 659.6 204 659.6 DL 212 659.6 208 659.6 DL 216 659.6 -212 659.6 DL/F4 5/Times-Roman@0 SF(6)93.6 670 Q/F5 8/Times-Roman@0 SF .127 -(Some sites disable this header)3.2 J 2.127(,a)-.32 G .127(nd other \(non-) -199.959 673.2 R/F6 8/Times-Italic@0 SF(sendmail)A F5 2.127(\)s)C .127 -(ystems do not implement it.)282.772 673.2 R .127(Do not assume that a f)4.127 -F .126(ailure to get a re-)-.08 F .317 -(turn receipt means that the mail did not arri)72 682.8 R -.12(ve)-.2 G 4.317 +656.6 Q/F3 7/Times-Roman@0 SF(6)242.25 652.6 Q F1(.)245.75 656.6 Q .32 LW 76 +666.2 72 666.2 DL 80 666.2 76 666.2 DL 84 666.2 80 666.2 DL 88 666.2 84 666.2 +DL 92 666.2 88 666.2 DL 96 666.2 92 666.2 DL 100 666.2 96 666.2 DL 104 666.2 +100 666.2 DL 108 666.2 104 666.2 DL 112 666.2 108 666.2 DL 116 666.2 112 666.2 +DL 120 666.2 116 666.2 DL 124 666.2 120 666.2 DL 128 666.2 124 666.2 DL 132 +666.2 128 666.2 DL 136 666.2 132 666.2 DL 140 666.2 136 666.2 DL 144 666.2 140 +666.2 DL 148 666.2 144 666.2 DL 152 666.2 148 666.2 DL 156 666.2 152 666.2 DL +160 666.2 156 666.2 DL 164 666.2 160 666.2 DL 168 666.2 164 666.2 DL 172 666.2 +168 666.2 DL 176 666.2 172 666.2 DL 180 666.2 176 666.2 DL 184 666.2 180 666.2 +DL 188 666.2 184 666.2 DL 192 666.2 188 666.2 DL 196 666.2 192 666.2 DL 200 +666.2 196 666.2 DL 204 666.2 200 666.2 DL 208 666.2 204 666.2 DL 212 666.2 208 +666.2 DL 216 666.2 212 666.2 DL/F4 5/Times-Roman@0 SF(6)93.6 676.6 Q/F5 8 +/Times-Roman@0 SF .127(Some sites disable this header)3.2 J 2.127(,a)-.32 G +.127(nd other \(non-)199.959 679.8 R/F6 8/Times-Italic@0 SF(sendmail)A F5 2.127 +(\)s)C .127(ystems do not implement it.)282.772 679.8 R .127 +(Do not assume that a f)4.127 F .126(ailure to get a re-)-.08 F .317 +(turn receipt means that the mail did not arri)72 689.4 R -.12(ve)-.2 G 4.317 (.A).12 G .318(lso, do not assume that getting a return receipt means that the\ - mail has been read; it)232.509 682.8 R -(just means that the message has been deli)72 692.4 Q -.12(ve)-.2 G -(red to the recipient').12 E 2(sm)-.44 G(ailbox.)285.648 692.4 Q EP -%%Page: 17 12 + mail has been read; it)232.509 689.4 R +(just means that the message has been deli)72 699 Q -.12(ve)-.2 G +(red to the recipient').12 E 2(sm)-.44 G(ailbox.)285.648 699 Q EP +%%Page: 16 11 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-17)452.9 60 Q 2.5(2.6.3. A)102 96 R(ppar)-.25 E(ently-T)-.18 E(o:)-.92 -E/F1 10/Times-Roman@0 SF .22 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-16 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E 2.5(2.6.2. Err)102 96 R(ors-T)-.18 E +(o:)-.92 E/F1 10/Times-Roman@0 SF .22(If errors occur an)142 112.2 R .22 +(ywhere during processing, this header will cause error messages to go to)-.15 +F(the listed addresses.)117 124.2 Q(This is intended for mailing lists.)5 E +.384(The Errors-T)142 140.4 R .384(o: header w)-.8 F .384 +(as created in the bad old days when UUCP didn')-.1 F 2.885(tu)-.18 G .385 +(nderstand the)450.015 140.4 R .89(distinction between an en)117 152.4 R -.15 +(ve)-.4 G .89(lope and a header; this w).15 F .889(as a hack to pro)-.1 F .889 +(vide what should no)-.15 F 3.389(wb)-.25 G(e)499.56 152.4 Q(passed as the en) +117 164.4 Q -.15(ve)-.4 G(lope sender address.).15 E(It should go a)5 E -.1(wa) +-.15 G 3.8 -.65(y. I).1 H 2.5(ti).65 G 2.5(so)365.22 164.4 S(nly used if the) +376.61 164.4 Q F0(l)2.5 E F1(option is set.)2.5 E F0 2.5(2.6.3. A)102 188.4 R +(ppar)-.25 E(ently-T)-.18 E(o:)-.92 E F1 .22 (If a message comes in with no recipients listed in the message \(in a T)142 -112.2 R .22(o:, Cc:, or Bcc: line\))-.8 F(then)117 124.2 Q/F2 10/Times-Italic@0 +204.6 R .22(o:, Cc:, or Bcc: line\))-.8 F(then)117 216.6 Q/F2 10/Times-Italic@0 SF(sendmail)2.79 E F1 .29(will add an \231)2.79 F(Apparently-T)-.8 E .289 (o:\232 header line for an)-.8 F 2.789(yr)-.15 G .289(ecipients it is a)378.086 -124.2 R -.1(wa)-.15 G .289(re of.).1 F .289(This is)5.289 F -(not put in as a standard recipient line to w)117 136.2 Q(arn an)-.1 E 2.5(yr) --.15 G(ecipients that the list is not complete.)319.77 136.2 Q -(At least one recipient line is required under RFC 822.)142 152.4 Q F0 2.5 -(2.7. IDENT)87 176.4 R(Pr)2.5 E(otocol Support)-.18 E F2(Sendmail)127 192.6 Q -F1 1.835(supports the IDENT protocol as de\214ned in RFC 1413.)4.335 F 1.835 +216.6 R -.1(wa)-.15 G .289(re of.).1 F .289(This is)5.289 F +(not put in as a standard recipient line to w)117 228.6 Q(arn an)-.1 E 2.5(yr) +-.15 G(ecipients that the list is not complete.)319.77 228.6 Q +(At least one recipient line is required under RFC 822.)142 244.8 Q F0 2.5 +(2.7. IDENT)87 268.8 R(Pr)2.5 E(otocol Support)-.18 E F2(Sendmail)127 285 Q F1 +1.835(supports the IDENT protocol as de\214ned in RFC 1413.)4.335 F 1.835 (Although this enhances)6.835 F .29 -(identi\214cation of the author of an email message by doing a `)102 204.6 R -.289(`call back')-.74 F 2.789('t)-.74 G 2.789(ot)396.174 204.6 S .289 -(he originating system to)406.743 204.6 R .468(include the o)102 216.6 R .469(\ -wner of a particular TCP connection in the audit trail it is in no sense perfe\ -ct; a deter)-.25 F(-)-.2 E 1.294(mined for)102 228.6 R 1.294 +(identi\214cation of the author of an email message by doing a `)102 297 R .289 +(`call back')-.74 F 2.789('t)-.74 G 2.789(ot)396.174 297 S .289 +(he originating system to)406.743 297 R .468(include the o)102 309 R .469(wner\ + of a particular TCP connection in the audit trail it is in no sense perfect; \ +a deter)-.25 F(-)-.2 E 1.294(mined for)102 321 R 1.294 (ger can easily spoof the IDENT protocol.)-.18 F 1.294(The follo)6.294 F 1.294 -(wing description is e)-.25 F 1.293(xcerpted from)-.15 F(RFC 1413:)102 240.6 Q -2.5(6. Security)127 256.8 R(Considerations)2.5 E .005 -(The information returned by this protocol is at most as trustw)127 273 R(orth) --.1 E 2.506(ya)-.05 G 2.506(st)400.5 273 S .006(he host pro)409.676 273 R .006 -(viding it OR)-.15 F .274(the or)127 285 R -.05(ga)-.18 G .274 +(wing description is e)-.25 F 1.293(xcerpted from)-.15 F(RFC 1413:)102 333 Q +2.5(6. Security)127 349.2 R(Considerations)2.5 E .005 +(The information returned by this protocol is at most as trustw)127 365.4 R +(orth)-.1 E 2.506(ya)-.05 G 2.506(st)400.5 365.4 S .006(he host pro)409.676 +365.4 R .006(viding it OR)-.15 F .274(the or)127 377.4 R -.05(ga)-.18 G .274 (nization operating the host.).05 F -.15(Fo)5.274 G 2.774(re).15 G .273 -(xample, a PC in an open lab has fe)295.314 285 R 2.773(wi)-.25 G 2.773(fa) -448.614 285 S .573 -.15(ny c)459.157 285 T(ontrols).15 E .986(on it to pre)127 -297 R -.15(ve)-.25 G .986(nt a user from ha).15 F .986 +(xample, a PC in an open lab has fe)295.314 377.4 R 2.773(wi)-.25 G 2.773(fa) +448.614 377.4 S .573 -.15(ny c)459.157 377.4 T(ontrols).15 E .986(on it to pre) +127 389.4 R -.15(ve)-.25 G .986(nt a user from ha).15 F .986 (ving this protocol return an)-.2 F 3.486(yi)-.15 G .987 -(denti\214er the user w)378.052 297 R 3.487(ants. Lik)-.1 F(e-)-.1 E 1.441(wis\ -e, if the host has been compromised the information returned may be completely\ - erro-)127 309 R(neous and misleading.)127 321 Q .521(The Identi\214cation Pro\ -tocol is not intended as an authorization or access control protocol.)127 337.2 -R(At)5.521 E 1.037(best, it pro)127 349.2 R 1.037 +(denti\214er the user w)378.052 389.4 R 3.487(ants. Lik)-.1 F(e-)-.1 E 1.441(w\ +ise, if the host has been compromised the information returned may be complete\ +ly erro-)127 401.4 R(neous and misleading.)127 413.4 Q .521(The Identi\214cati\ +on Protocol is not intended as an authorization or access control protocol.)127 +429.6 R(At)5.521 E 1.037(best, it pro)127 441.6 R 1.037 (vides some additional auditing information with respect to TCP connections.) --.15 F(At)6.036 E -.1(wo)127 361.2 S(rst, it can pro).1 E +-.15 F(At)6.036 E -.1(wo)127 453.6 S(rst, it can pro).1 E (vide misleading, incorrect, or maliciously incorrect information.)-.15 E 1.006 (The use of the information returned by this protocol for other than auditing \ -is strongly dis-)127 377.4 R 2.697(couraged. Speci\214cally)127 389.4 R 2.697 -(,u)-.65 G .197(sing Identi\214cation Protocol information to mak)228.114 389.4 -R 2.697(ea)-.1 G .197(ccess control deci-)429.186 389.4 R .514(sions - either \ +is strongly dis-)127 469.8 R 2.697(couraged. Speci\214cally)127 481.8 R 2.697 +(,u)-.65 G .197(sing Identi\214cation Protocol information to mak)228.114 481.8 +R 2.697(ea)-.1 G .197(ccess control deci-)429.186 481.8 R .514(sions - either \ as the primary method \(i.e., no other checks\) or as an adjunct to other meth\ -ods)127 401.4 R(may result in a weak)127 413.4 Q(ening of normal host security) --.1 E(.)-.65 E 1.779(An Identi\214cation serv)127 429.6 R 1.778(er may re)-.15 -F -.15(ve)-.25 G 1.778 +ods)127 493.8 R(may result in a weak)127 505.8 Q(ening of normal host security) +-.1 E(.)-.65 E 1.779(An Identi\214cation serv)127 522 R 1.778(er may re)-.15 F +-.15(ve)-.25 G 1.778 (al information about users, entities, objects or processes).15 F .336 -(which might normally be considered pri)127 441.6 R -.25(va)-.25 G 2.836 -(te. An).25 F .337(Identi\214cation serv)2.836 F .337(er pro)-.15 F .337 +(which might normally be considered pri)127 534 R -.25(va)-.25 G 2.836(te. An) +.25 F .337(Identi\214cation serv)2.836 F .337(er pro)-.15 F .337 (vides service which)-.15 F .806 -(is a rough analog of the CallerID services pro)127 453.6 R .806 -(vided by some phone companies and man)-.15 F 3.306(yo)-.15 G(f)500.67 453.6 Q -1.397(the same pri)127 465.6 R -.25(va)-.25 G 1.697 -.15(cy c).25 H 1.397 +(is a rough analog of the CallerID services pro)127 546 R .806 +(vided by some phone companies and man)-.15 F 3.306(yo)-.15 G(f)500.67 546 Q +1.397(the same pri)127 558 R -.25(va)-.25 G 1.697 -.15(cy c).25 H 1.397 (onsiderations and ar).15 F 1.398 (guments that apply to the CallerID service apply to)-.18 F 3.546 -(Identi\214cation. If)127 477.6 R 1.046(you w)3.546 F(ouldn')-.1 E 3.546(tr) --.18 G 1.045(un a "\214nger" serv)260.334 477.6 R 1.045(er due to pri)-.15 F --.25(va)-.25 G 1.345 -.15(cy c).25 H 1.045(onsiderations you may).15 F(not w) -127 489.6 Q(ant to run this protocol.)-.1 E F0 2.5(3. ARGUMENTS)72 513.6 R F1 -.017(The complete list of ar)112 529.8 R .017(guments to)-.18 F F2(sendmail) -2.517 E F1 .017(is described in detail in Appendix A.)2.517 F .018 -(Some important)5.018 F(ar)87 541.8 Q(guments are described here.)-.18 E F0 2.5 -(3.1. Queue)87 565.8 R(Inter)2.5 E -.1(va)-.1 G(l).1 E F1 .455(The amount of t\ -ime between forking a process to run through the queue is de\214ned by the)127 -582 R F0<ad71>2.955 E F1 2.705(\215ag. If)102 594 R .206(you run in mode)2.705 -F F0(f)2.706 E F1(or)2.706 E F0(a)2.706 E F1 .206(this can be relati)2.706 F --.15(ve)-.25 G .206(ly lar).15 F .206(ge, since it will only be rele)-.18 F --.25(va)-.25 G .206(nt when a host).25 F .07(that w)102 606 R .07(as do)-.1 F -.07(wn comes back up.)-.25 F .07(If you run in)5.07 F F0(q)2.57 E F1 .07 +(Identi\214cation. If)127 570 R 1.046(you w)3.546 F(ouldn')-.1 E 3.546(tr)-.18 +G 1.045(un a "\214nger" serv)260.334 570 R 1.045(er due to pri)-.15 F -.25(va) +-.25 G 1.345 -.15(cy c).25 H 1.045(onsiderations you may).15 F(not w)127 582 Q +(ant to run this protocol.)-.1 E F0 2.5(3. ARGUMENTS)72 606 R F1 .017 +(The complete list of ar)112 622.2 R .017(guments to)-.18 F F2(sendmail)2.517 E +F1 .017(is described in detail in Appendix A.)2.517 F .018(Some important)5.018 +F(ar)87 634.2 Q(guments are described here.)-.18 E F0 2.5(3.1. Queue)87 658.2 R +(Inter)2.5 E -.1(va)-.1 G(l).1 E F1 .455(The amount of time between forking a \ +process to run through the queue is de\214ned by the)127 674.4 R F0<ad71>2.955 +E F1 2.705(\215ag. If)102 686.4 R .206(you run in mode)2.705 F F0(f)2.706 E F1 +(or)2.706 E F0(a)2.706 E F1 .206(this can be relati)2.706 F -.15(ve)-.25 G .206 +(ly lar).15 F .206(ge, since it will only be rele)-.18 F -.25(va)-.25 G .206 +(nt when a host).25 F .07(that w)102 698.4 R .07(as do)-.1 F .07 +(wn comes back up.)-.25 F .07(If you run in)5.07 F F0(q)2.57 E F1 .07 (mode it should be relati)2.57 F -.15(ve)-.25 G .07 (ly short, since it de\214nes the).15 F -(maximum amount of time that a message may sit in the queue.)102 618 Q 1.335 -(RFC 1123 section 5.3.1.1 says that this v)127 634.2 R 1.336 -(alue should be at least 30 minutes \(although that)-.25 F(probably doesn')102 -646.2 Q 2.5(tm)-.18 G(ak)179.59 646.2 Q 2.5(es)-.1 G(ense if you use `)199.76 -646.2 Q(`queue-only')-.74 E 2.5('m)-.74 G(ode\).)329.08 646.2 Q F0 2.5 -(3.2. Daemon)87 670.2 R(Mode)2.5 E F1 .085(If you allo)127 686.4 R 2.585(wi) --.25 G .085(ncoming mail o)181.165 686.4 R -.15(ve)-.15 G 2.585(ra).15 G 2.585 -(nI)263.61 686.4 S .085(PC connection, you should ha)274.525 686.4 R .384 -.15 -(ve a d)-.2 H .084(aemon running.).15 F(This)5.084 E .069 -(should be set by your)102 698.4 R F2(/etc/r)2.569 E(c)-.37 E F1 .069 -(\214le using the)2.569 F F0(\255bd)2.569 E F1 2.57(\215ag. The)2.569 F F0 -(\255bd)2.57 E F1 .07(\215ag and the)2.57 F F0<ad71>2.57 E F1 .07 -(\215ag may be combined)2.57 F(in one call:)102 710.4 Q EP -%%Page: 18 13 +(maximum amount of time that a message may sit in the queue.)102 710.4 Q EP +%%Page: 17 12 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-18 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -(/usr/sbin/sendmail \255bd \255q30m)142 96 Q F0 2.5(3.3. F)87 124.2 R(or)-.25 E -(cing the Queue)-.18 E F1 .04(In some cases you may \214nd that the queue has \ -gotten clogged for some reason.)127 140.4 R -1.1(Yo)5.04 G 2.54(uc)1.1 G .04 -(an force)471.48 140.4 R 3.184(aq)102 152.4 S .684(ueue run using the)114.624 -152.4 R F0<ad71>3.184 E F1 .684(\215ag \(with no v)3.184 F 3.184(alue\). It) --.25 F .684(is entertaining to use the)3.184 F F0<ad76>3.185 E F1 .685 -(\215ag \(v)3.185 F .685(erbose\) when)-.15 F(this is done to w)102 164.4 Q -(atch what happens:)-.1 E(/usr/sbin/sendmail \255q \255v)142 180.6 Q -1.1(Yo) -127 201 S 4.004(uc)1.1 G 1.504 -(an also limit the jobs to those with a particular queue identi\214er)151.564 -201 R 4.004(,s)-.4 G(ender)428.362 201 Q 4.004(,o)-.4 G 4.004(rr)461.676 201 S -(ecipient)472.34 201 Q .686(using one of the queue modi\214ers.)102 213 R -.15 -(Fo)5.687 G 3.187(re).15 G .687(xample, \231\255qRberk)265.654 213 R(ele)-.1 E -.687(y\232 restricts the queue run to jobs that)-.15 F(ha)102 225 Q .526 -.15 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-17)452.9 60 Q/F1 10/Times-Roman@0 SF 1.335 +(RFC 1123 section 5.3.1.1 says that this v)127 96 R 1.336 +(alue should be at least 30 minutes \(although that)-.25 F(probably doesn')102 +108 Q 2.5(tm)-.18 G(ak)179.59 108 Q 2.5(es)-.1 G(ense if you use `)199.76 108 Q +(`queue-only')-.74 E 2.5('m)-.74 G(ode\).)329.08 108 Q F0 2.5(3.2. Daemon)87 +132 R(Mode)2.5 E F1 .085(If you allo)127 148.2 R 2.585(wi)-.25 G .085 +(ncoming mail o)181.165 148.2 R -.15(ve)-.15 G 2.585(ra).15 G 2.585(nI)263.61 +148.2 S .085(PC connection, you should ha)274.525 148.2 R .384 -.15(ve a d)-.2 +H .084(aemon running.).15 F(This)5.084 E .069(should be set by your)102 160.2 R +/F2 10/Times-Italic@0 SF(/etc/r)2.569 E(c)-.37 E F1 .069(\214le using the)2.569 +F F0(\255bd)2.569 E F1 2.57(\215ag. The)2.569 F F0(\255bd)2.57 E F1 .07 +(\215ag and the)2.57 F F0<ad71>2.57 E F1 .07(\215ag may be combined)2.57 F +(in one call:)102 172.2 Q(/usr/sbin/sendmail \255bd \255q30m)142 188.4 Q F0 2.5 +(3.3. F)87 216.6 R(or)-.25 E(cing the Queue)-.18 E F1 .04(In some cases you ma\ +y \214nd that the queue has gotten clogged for some reason.)127 232.8 R -1.1 +(Yo)5.04 G 2.54(uc)1.1 G .04(an force)471.48 232.8 R 3.184(aq)102 244.8 S .684 +(ueue run using the)114.624 244.8 R F0<ad71>3.184 E F1 .684(\215ag \(with no v) +3.184 F 3.184(alue\). It)-.25 F .684(is entertaining to use the)3.184 F F0 +<ad76>3.185 E F1 .685(\215ag \(v)3.185 F .685(erbose\) when)-.15 F +(this is done to w)102 256.8 Q(atch what happens:)-.1 E +(/usr/sbin/sendmail \255q \255v)142 273 Q -1.1(Yo)127 293.4 S 4.004(uc)1.1 G +1.504(an also limit the jobs to those with a particular queue identi\214er) +151.564 293.4 R 4.004(,s)-.4 G(ender)428.362 293.4 Q 4.004(,o)-.4 G 4.004(rr) +461.676 293.4 S(ecipient)472.34 293.4 Q .686 +(using one of the queue modi\214ers.)102 305.4 R -.15(Fo)5.687 G 3.187(re).15 G +.687(xample, \231\255qRberk)265.654 305.4 R(ele)-.1 E .687 +(y\232 restricts the queue run to jobs that)-.15 F(ha)102 317.4 Q .526 -.15 (ve t)-.2 H .226(he string \231berk).15 F(ele)-.1 E .226(y\232 some)-.15 F .225 (where in one of the recipient addresses.)-.25 F(Similarly)5.225 E 2.725<2c99> --.65 G .225(\255qSstring\232 lim-)441.185 225 R(its the run to particular send\ -ers and \231\255qIstring\232 limits it to particular identi\214ers.)102 237 Q -F0 2.5(3.4. Deb)87 261 R(ugging)-.2 E F1 1.365(There are a f)127 277.2 R 1.365 -(airly lar)-.1 F 1.365(ge number of deb)-.18 F 1.365(ug \215ags b)-.2 F 1.365 -(uilt into)-.2 F/F2 10/Times-Italic@0 SF(sendmail)3.865 E F1 6.365(.E)C 1.365 -(ach deb)417.65 277.2 R 1.365(ug \215ag has a)-.2 F 1.116(number and a le)102 -289.2 R -.15(ve)-.25 G 1.116(l, where higher le).15 F -.15(ve)-.25 G 1.116 +-.65 G .225(\255qSstring\232 lim-)441.185 317.4 R(its the run to particular se\ +nders and \231\255qIstring\232 limits it to particular identi\214ers.)102 329.4 +Q F0 2.5(3.4. Deb)87 353.4 R(ugging)-.2 E F1 1.365(There are a f)127 369.6 R +1.365(airly lar)-.1 F 1.365(ge number of deb)-.18 F 1.365(ug \215ags b)-.2 F +1.365(uilt into)-.2 F F2(sendmail)3.865 E F1 6.365(.E)C 1.365(ach deb)417.65 +369.6 R 1.365(ug \215ag has a)-.2 F 1.116(number and a le)102 381.6 R -.15(ve) +-.25 G 1.116(l, where higher le).15 F -.15(ve)-.25 G 1.116 (ls means to print out more information.).15 F 1.116(The con)6.116 F -.15(ve) --.4 G 1.116(ntion is).15 F .293(that le)102 301.2 R -.15(ve)-.25 G .293 +-.4 G 1.116(ntion is).15 F .293(that le)102 393.6 R -.15(ve)-.25 G .293 (ls greater than nine are \231absurd,).15 F 2.794<9a69>-.7 G .294(.e., the) -274.014 301.2 R 2.794(yp)-.15 G .294(rint out so much information that you w) -313.612 301.2 R(ouldn')-.1 E(t)-.18 E .692(normally w)102 313.2 R .692 +274.014 393.6 R 2.794(yp)-.15 G .294(rint out so much information that you w) +313.612 393.6 R(ouldn')-.1 E(t)-.18 E .692(normally w)102 405.6 R .692 (ant to see them e)-.1 F .692(xcept for deb)-.15 F .692 (ugging that particular piece of code.)-.2 F(Deb)5.692 E .691 -(ug \215ags are set)-.2 F(using the)102 325.2 Q F0<ad64>2.5 E F1 -(option; the syntax is:)2.5 E(deb)142 341.4 Q(ug-\215ag:)-.2 E F0<ad64>200.13 -341.4 Q F1(deb)2.5 E(ug-list)-.2 E(deb)142 353.4 Q 13.05(ug-list: deb)-.2 F -(ug-option [ , deb)-.2 E(ug-option ])-.2 E(deb)142 365.4 Q -.28(ug-option: deb) +(ug \215ags are set)-.2 F(using the)102 417.6 Q F0<ad64>2.5 E F1 +(option; the syntax is:)2.5 E(deb)142 433.8 Q(ug-\215ag:)-.2 E F0<ad64>200.13 +433.8 Q F1(deb)2.5 E(ug-list)-.2 E(deb)142 445.8 Q 13.05(ug-list: deb)-.2 F +(ug-option [ , deb)-.2 E(ug-option ])-.2 E(deb)142 457.8 Q -.28(ug-option: deb) -.2 F(ug-range [ . deb)-.2 E(ug-le)-.2 E -.15(ve)-.25 G 2.5(l]).15 G(deb)142 -377.4 Q 3.07(ug-range: inte)-.2 F(ger | inte)-.15 E(ger \255 inte)-.15 E(ger) --.15 E(deb)142 389.4 Q(ug-le)-.2 E -.15(ve)-.25 G 6.24(l: inte).15 F(ger)-.15 E -(where spaces are for reading ease only)102 405.6 Q 5(.F)-.65 G(or e)268.64 -405.6 Q(xample,)-.15 E 34.99(\255d12 Set)142 421.8 R(\215ag 12 to le)2.5 E -.15 -(ve)-.25 G 2.5(l1).15 G 27.49(\255d12.3 Set)142 433.8 R(\215ag 12 to le)2.5 E --.15(ve)-.25 G 2.5(l3).15 G 26.66(\255d3-17 Set)142 445.8 R +469.8 Q 3.07(ug-range: inte)-.2 F(ger | inte)-.15 E(ger \255 inte)-.15 E(ger) +-.15 E(deb)142 481.8 Q(ug-le)-.2 E -.15(ve)-.25 G 6.24(l: inte).15 F(ger)-.15 E +(where spaces are for reading ease only)102 498 Q 5(.F)-.65 G(or e)268.64 498 Q +(xample,)-.15 E 34.99(\255d12 Set)142 514.2 R(\215ag 12 to le)2.5 E -.15(ve) +-.25 G 2.5(l1).15 G 27.49(\255d12.3 Set)142 526.2 R(\215ag 12 to le)2.5 E -.15 +(ve)-.25 G 2.5(l3).15 G 26.66(\255d3-17 Set)142 538.2 R (\215ags 3 through 17 to le)2.5 E -.15(ve)-.25 G 2.5(l1).15 G 19.16 -(\255d3-17.4 Set)142 457.8 R(\215ags 3 through 17 to le)2.5 E -.15(ve)-.25 G -2.5(l4).15 G -.15(Fo)102 474 S 4.065(rac).15 G 1.565(omplete list of the a) -132.75 474 R -.25(va)-.2 G 1.565(ilable deb).25 F 1.565(ug \215ags you will ha) --.2 F 1.865 -.15(ve t)-.2 H 4.065(ol).15 G 1.566(ook at the code \(the)380.895 -474 R 4.066(ya)-.15 G 1.566(re too)479.384 474 R(dynamic to k)102 486 Q -(eep this documentation up to date\).)-.1 E F0 2.5(3.5. T)87 510 R -(rying a Differ)-.74 E(ent Con\214guration File)-.18 E F1(An alternati)127 -526.2 Q .3 -.15(ve c)-.25 H(on\214guration \214le can be speci\214ed using the) -.15 E F0<ad43>2.5 E F1(\215ag; for e)2.5 E(xample,)-.15 E -(/usr/sbin/sendmail \255Ctest.cf)142 542.4 Q .429 -(uses the con\214guration \214le)102 558.6 R F2(test.cf)2.928 E F1 .428 +(\255d3-17.4 Set)142 550.2 R(\215ags 3 through 17 to le)2.5 E -.15(ve)-.25 G +2.5(l4).15 G -.15(Fo)102 566.4 S 4.065(rac).15 G 1.565(omplete list of the a) +132.75 566.4 R -.25(va)-.2 G 1.565(ilable deb).25 F 1.565 +(ug \215ags you will ha)-.2 F 1.865 -.15(ve t)-.2 H 4.065(ol).15 G 1.566 +(ook at the code \(the)380.895 566.4 R 4.066(ya)-.15 G 1.566(re too)479.384 +566.4 R(dynamic to k)102 578.4 Q(eep this documentation up to date\).)-.1 E F0 +2.5(3.5. T)87 602.4 R(rying a Differ)-.74 E(ent Con\214guration File)-.18 E F1 +(An alternati)127 618.6 Q .3 -.15(ve c)-.25 H +(on\214guration \214le can be speci\214ed using the).15 E F0<ad43>2.5 E F1 +(\215ag; for e)2.5 E(xample,)-.15 E(/usr/sbin/sendmail \255Ctest.cf)142 634.8 Q +.429(uses the con\214guration \214le)102 651 R F2(test.cf)2.928 E F1 .428 (instead of the def)2.928 F(ault)-.1 E F2(/etc/sendmail.cf)2.928 E(.)-.15 E F1 .428(If the)5.428 F F0<ad43>2.928 E F1 .428(\215ag has no v)2.928 F(alue)-.25 E -(it def)102 570.6 Q(aults to)-.1 E F2(sendmail.cf)2.5 E F1 -(in the current directory)2.5 E(.)-.65 E F0 2.5(3.6. Changing)87 594.6 R(the V) -2.5 E(alues of Options)-.92 E F1(Options can be o)127 610.8 Q -.15(ve)-.15 G +(it def)102 663 Q(aults to)-.1 E F2(sendmail.cf)2.5 E F1 +(in the current directory)2.5 E(.)-.65 E F0 2.5(3.6. Changing)87 687 R(the V) +2.5 E(alues of Options)-.92 E F1(Options can be o)127 703.2 Q -.15(ve)-.15 G (rridden using the).15 E F0<ad6f>2.5 E F1 2.5(\215ag. F)2.5 F(or e)-.15 E -(xample,)-.15 E(/usr/sbin/sendmail \255oT2m)142 627 Q(sets the)102 643.2 Q F0 -(T)2.5 E F1(\(timeout\) option to tw)2.5 E 2.5(om)-.1 G -(inutes for this run only)246.63 643.2 Q(.)-.65 E .181(Some options ha)127 -659.4 R .481 -.15(ve s)-.2 H .181(ecurity implications.).15 F .181 -(Sendmail allo)5.181 F .182(ws you to set these, b)-.25 F .182 -(ut refuses to run)-.2 F(as root thereafter)102 671.4 Q(.)-.55 E F0 2.5 -(3.7. Logging)87 695.4 R -.74(Tr)2.5 G(af\214c).74 E F1(Man)127 711.6 Q 3.255 -(yS)-.15 G .754(MTP implementations do not fully implement the protocol.) -158.995 711.6 R -.15(Fo)5.754 G 3.254(re).15 G .754(xample, some per)428.542 -711.6 R(-)-.2 E 1.178(sonal computer based SMTPs do not understand continuatio\ -n lines in reply codes.)102 723.6 R 1.178(These can be)6.178 F EP -%%Page: 19 14 +(xample,)-.15 E EP +%%Page: 18 13 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-19)452.9 60 Q/F1 10/Times-Roman@0 SF -.15(ve)102 96 S .13 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-18 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF +(/usr/sbin/sendmail \255oT2m)142 96 Q(sets the)102 112.2 Q F0(T)2.5 E F1 +(\(timeout\) option to tw)2.5 E 2.5(om)-.1 G(inutes for this run only)246.63 +112.2 Q(.)-.65 E .181(Some options ha)127 128.4 R .481 -.15(ve s)-.2 H .181 +(ecurity implications.).15 F .181(Sendmail allo)5.181 F .182 +(ws you to set these, b)-.25 F .182(ut refuses to run)-.2 F(as root thereafter) +102 140.4 Q(.)-.55 E F0 2.5(3.7. Logging)87 164.4 R -.74(Tr)2.5 G(af\214c).74 E +F1(Man)127 180.6 Q 3.255(yS)-.15 G .754 +(MTP implementations do not fully implement the protocol.)158.995 180.6 R -.15 +(Fo)5.754 G 3.254(re).15 G .754(xample, some per)428.542 180.6 R(-)-.2 E 1.178 +(sonal computer based SMTPs do not understand continuation lines in reply code\ +s.)102 192.6 R 1.178(These can be)6.178 F -.15(ve)102 204.6 S .13 (ry hard to trace.).15 F .13(If you suspect such a problem, you can set traf) 5.13 F .13(\214c logging using the)-.25 F F0<ad58>2.63 E F1 2.63(\215ag. F)2.63 -F(or)-.15 E -.15(ex)102 108 S(ample,).15 E(/usr/sbin/sendmail \255X /tmp/traf) -142 124.2 Q(\214c -bd)-.25 E(will log all traf)102 140.4 Q(\214c in the \214le) --.25 E/F2 10/Times-Italic@0 SF(/tmp/tr)2.5 E(af)-.15 E<8c63>-.18 E F1(.)A .128 -(This logs a lot of data v)127 156.6 R .128(ery quickly and should ne)-.15 F --.15(ve)-.25 G 2.628(rb).15 G 2.628(eu)345.888 156.6 S .128 -(sed during normal operations.)357.956 156.6 R(After)5.129 E 1.326(starting up\ - such a daemon, force the errant implementation to send a message to your host\ -.)102 168.6 R(All)6.326 E .504(message traf)102 180.6 R .504 -(\214c in and out of)-.25 F F2(sendmail)3.004 E F1 3.004(,i)C .504 -(ncluding the incoming SMTP traf)265.258 180.6 R .505 -(\214c, will be logged in this)-.25 F(\214le.)102 192.6 Q F0 2.5(4. TUNING)72 -216.6 R F1 1.922(There are a number of con\214guration parameters you may w)112 -232.8 R 1.922(ant to change, depending on the)-.1 F .366 -(requirements of your site.)87 244.8 R .367 -(Most of these are set using an option in the con\214guration \214le.)5.366 F --.15(Fo)5.367 G 2.867(re).15 G(xample,)472.06 244.8 Q(the line \231O)87 256.8 Q -(T5d\232 sets option \231T\232 to the v)-.4 E(alue \2315d\232 \(\214v)-.25 E -2.5(ed)-.15 G(ays\).)312.55 256.8 Q .735(Most of these options ha)112 273 R -1.035 -.15(ve a)-.2 H .735(ppropriate def).15 F .735(aults for most sites.)-.1 -F(Ho)5.735 E(we)-.25 E -.15(ve)-.25 G 1.535 -.4(r, s).15 H .735(ites ha).4 F -.735(ving v)-.2 F .735(ery high)-.15 F .045(mail loads may \214nd the)87 285 R -2.545(yn)-.15 G .046(eed to tune them as appropriate for their mail load.) -193.465 285 R .046(In particular)5.046 F 2.546(,s)-.4 G .046(ites e)459.394 285 -R(xperi-)-.15 E 1.088(encing a lar)87 297 R 1.088 -(ge number of small messages, man)-.18 F 3.588(yo)-.15 G 3.587(fw)294.504 297 S -1.087(hich are deli)308.641 297 R -.15(ve)-.25 G 1.087(red to man).15 F 3.587 -(yr)-.15 G 1.087(ecipients, may \214nd)425.996 297 R(that the)87 309 Q 2.5(yn) --.15 G(eed to adjust the parameters dealing with queue priorities.)129.07 309 Q -F0 2.5(4.1. T)87 333 R(imeouts)-.18 E F1 .582(All time interv)127 349.2 R .583 +F(or)-.15 E -.15(ex)102 216.6 S(ample,).15 E +(/usr/sbin/sendmail \255X /tmp/traf)142 232.8 Q(\214c -bd)-.25 E +(will log all traf)102 249 Q(\214c in the \214le)-.25 E/F2 10/Times-Italic@0 SF +(/tmp/tr)2.5 E(af)-.15 E<8c63>-.18 E F1(.)A .128(This logs a lot of data v)127 +265.2 R .128(ery quickly and should ne)-.15 F -.15(ve)-.25 G 2.628(rb).15 G +2.628(eu)345.888 265.2 S .128(sed during normal operations.)357.956 265.2 R +(After)5.129 E 1.326(starting up such a daemon, force the errant implementatio\ +n to send a message to your host.)102 277.2 R(All)6.326 E .504(message traf)102 +289.2 R .504(\214c in and out of)-.25 F F2(sendmail)3.004 E F1 3.004(,i)C .504 +(ncluding the incoming SMTP traf)265.258 289.2 R .505 +(\214c, will be logged in this)-.25 F(\214le.)102 301.2 Q F0 2.5(3.8. Dumping) +87 325.2 R(State)2.5 E F1 -1.1(Yo)127 341.4 S 2.564(uc)1.1 G .064(an ask) +150.124 341.4 R F2(sendmail)2.564 E F1 .064 +(to log a dump of the open \214les and the connection cache by sending it a) +2.564 F/F3 9/Times-Roman@0 SF(SIGUSR1)102 353.4 Q F1 2.5(signal. The)2.5 F +(results are logged at)2.5 E F3(LOG_DEB)2.5 E(UG)-.09 E F1(priority)2.5 E(.) +-.65 E F0 2.5(4. TUNING)72 377.4 R F1 1.922 +(There are a number of con\214guration parameters you may w)112 393.6 R 1.922 +(ant to change, depending on the)-.1 F .367(requirements of your site.)87 405.6 +R .366(Most of these are set using an option in the con\214guration \214le.) +5.367 F -.15(Fo)5.366 G 2.866(re).15 G(xample,)472.06 405.6 Q(the line \231O)87 +417.6 Q(T5d\232 sets option \231T\232 to the v)-.4 E(alue \2315d\232 \(\214v) +-.25 E 2.5(ed)-.15 G(ays\).)312.55 417.6 Q .735(Most of these options ha)112 +433.8 R 1.035 -.15(ve a)-.2 H .735(ppropriate def).15 F .735 +(aults for most sites.)-.1 F(Ho)5.735 E(we)-.25 E -.15(ve)-.25 G 1.535 -.4 +(r, s).15 H .735(ites ha).4 F .735(ving v)-.2 F .735(ery high)-.15 F .046 +(mail loads may \214nd the)87 445.8 R 2.546(yn)-.15 G .046 +(eed to tune them as appropriate for their mail load.)193.47 445.8 R .045 +(In particular)5.045 F 2.545(,s)-.4 G .045(ites e)459.395 445.8 R(xperi-)-.15 E +1.087(encing a lar)87 457.8 R 1.087(ge number of small messages, man)-.18 F +3.587(yo)-.15 G 3.588(fw)294.496 457.8 S 1.088(hich are deli)308.634 457.8 R +-.15(ve)-.25 G 1.088(red to man).15 F 3.588(yr)-.15 G 1.088 +(ecipients, may \214nd)425.994 457.8 R(that the)87 469.8 Q 2.5(yn)-.15 G +(eed to adjust the parameters dealing with queue priorities.)129.07 469.8 Q F0 +2.5(4.1. T)87 493.8 R(imeouts)-.18 E F1 .583(All time interv)127 510 R .583 (als are set using a scaled syntax.)-.25 F -.15(Fo)5.583 G 3.083(re).15 G .583 -(xample, \23110m\232 represents ten minutes,)346.138 349.2 R -(whereas \2312h30m\232 represents tw)102 361.2 Q 2.5(oa)-.1 G(nd a half hours.) -241.3 361.2 Q(The full set of scales is:)5 E 16.11(ss)142 377.4 S(econds)165.89 -377.4 Q 12.22(mm)142 389.4 S(inutes)169.78 389.4 Q 15(hh)142 401.4 S(ours)167 -401.4 Q 15(dd)142 413.4 S(ays)167 413.4 Q 12.78(ww)142 425.4 S(eeks)169.22 -425.4 Q F0 2.5(4.1.1. Queue)102 453.6 R(inter)2.5 E -.1(va)-.1 G(l).1 E F1 .18 -(The ar)142 469.8 R .18(gument to the)-.18 F F0<ad71>2.68 E F1 .18 +(xample, \23110m\232 represents ten minutes,)346.14 510 R +(whereas \2312h30m\232 represents tw)102 522 Q 2.5(oa)-.1 G(nd a half hours.) +241.3 522 Q(The full set of scales is:)5 E 16.11(ss)142 538.2 S(econds)165.89 +538.2 Q 12.22(mm)142 550.2 S(inutes)169.78 550.2 Q 15(hh)142 562.2 S(ours)167 +562.2 Q 15(dd)142 574.2 S(ays)167 574.2 Q 12.78(ww)142 586.2 S(eeks)169.22 +586.2 Q F0 2.5(4.1.1. Queue)102 614.4 R(inter)2.5 E -.1(va)-.1 G(l).1 E F1 .18 +(The ar)142 630.6 R .18(gument to the)-.18 F F0<ad71>2.68 E F1 .18 (\215ag speci\214es ho)2.68 F 2.68(wo)-.25 G .18 -(ften a sub-daemon will run the queue.)319.25 469.8 R .18(This is)5.18 F .967 -(typically set to between \214fteen minutes and one hour)117 481.8 R 5.968(.R) --.55 G .968(FC 1123 section 5.3.1.1 recommends)350.968 481.8 R -(that this be at least 30 minutes.)117 493.8 Q F0 2.5(4.1.2. Read)102 517.8 R +(ften a sub-daemon will run the queue.)319.25 630.6 R .18(This is)5.18 F .968 +(typically set to between \214fteen minutes and one hour)117 642.6 R 5.968(.R) +-.55 G .967(FC 1123 section 5.3.1.1 recommends)350.972 642.6 R +(that this be at least 30 minutes.)117 654.6 Q F0 2.5(4.1.2. Read)102 678.6 R (timeouts)2.5 E F1 .51(It is possible to time out when reading the standard in\ -put or when reading from a remote)142 534 R .324(SMTP serv)117 546 R(er)-.15 E -5.324(.T)-.55 G .324(hese timeouts are set using the)183.608 546 R F0(r)2.824 E -F1 .324(option in the con\214guration \214le.)2.824 F .324(The ar)5.324 F -(gument)-.18 E .843(is a list of)117 558 R F2 -.1(ke)3.342 G(ywor)-.2 E -(d=value)-.37 E F1 3.342(pairs. The)3.342 F .842(recognized k)3.342 F -.15(ey) --.1 G -.1(wo).15 G .842(rds, their def).1 F .842(ault v)-.1 F .842 -(alues, and the mini-)-.25 F(mum v)117 570 Q(alues allo)-.25 E -(wed by RFC 1123 section 5.3.2 are:)-.25 E 46.16(initial The)117 586.2 R -.1 +put or when reading from a remote)142 694.8 R .324(SMTP serv)117 706.8 R(er) +-.15 E 5.324(.T)-.55 G .324(hese timeouts are set using the)183.608 706.8 R F0 +(r)2.824 E F1 .324(option in the con\214guration \214le.)2.824 F .324(The ar) +5.324 F(gument)-.18 E 2.766(is a list of)117 718.8 R F2 -.1(ke)5.266 G(ywor)-.2 +E(d=value)-.37 E F1 5.266(pairs. The)5.266 F 2.766(recognized k)5.266 F -.15 +(ey)-.1 G -.1(wo).15 G 2.766(rds, their def).1 F 2.766(ault v)-.1 F 2.767 +(alues, and the)-.25 F EP +%%Page: 19 14 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-19)452.9 60 Q/F1 10/Times-Roman@0 SF(minimum v)117 96 Q(alues allo)-.25 +E(wed by RFC 1123 section 5.3.2 are:)-.25 E 46.16(initial The)117 112.2 R -.1 (wa)2.5 G(it for the initial 220 greeting message [5m, 5m].).1 E 52.28 -(helo The)117 602.4 R -.1(wa)4.226 G 1.727 +(helo The)117 128.4 R -.1(wa)4.227 G 1.727 (it for a reply from a HELO or EHLO command [5m, unspeci\214ed].).1 F .1 -(This may require a host name lookup, so \214v)189 614.4 R 2.6(em)-.15 G .1 -(inutes is probably a reasonable)380.29 614.4 R(minimum.)189 626.4 Q 46.72 -(mail\207 The)117 642.6 R -.1(wa)2.5 G +(This may require a host name lookup, so \214v)189 140.4 R 2.6(em)-.15 G .1 +(inutes is probably a reasonable)380.29 140.4 R(minimum.)189 152.4 Q 46.72 +(mail\207 The)117 168.6 R -.1(wa)2.5 G (it for a reply from a MAIL command [10m, 5m].).1 E 48.95(rcpt\207 The)117 -658.8 R -.1(wa)3.481 G .981(it for a reply from a RCPT command [1h, 5m].).1 F -.982(This should be long)5.982 F -(because it could be pointing at a list that tak)189 670.8 Q -(es a long time to e)-.1 E(xpand.)-.15 E 34.5(datainit\207 The)117 687 R -.1 +184.8 R -.1(wa)3.482 G .982(it for a reply from a RCPT command [1h, 5m].).1 F +.981(This should be long)5.981 F +(because it could be pointing at a list that tak)189 196.8 Q +(es a long time to e)-.1 E(xpand.)-.15 E 34.5(datainit\207 The)117 213 R -.1 (wa)2.5 G(it for a reply from a D).1 E -1.21 -1.11(AT A)-.4 H -(command [5m, 2m].)3.61 E 25.62(datablock\207 The)117 703.2 R -.1(wa)2.696 G +(command [5m, 2m].)3.61 E 25.62(datablock\207 The)117 229.2 R -.1(wa)2.696 G .196(it for reading a data block \(that is, the body of the message\).).1 F -.196([1h, 3m].)5.196 F 2.686 +.196([1h, 3m].)5.196 F .621 (This should be long because it also applies to programs piping input to)189 -715.2 R EP -%%Page: 20 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-20 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Italic@0 SF(sendmail)189 96 -Q/F2 10/Times-Roman@0 SF(which ha)2.5 E .3 -.15(ve n)-.2 H 2.5(og).15 G -(uarantee of promptness.)293.08 96 Q 30.06(data\214nal\207 The)117 112.2 R -.1 -(wa)2.806 G .306(it for a reply from the dot terminating a message.).1 F .306 -([1h, 10m].)5.306 F .306(If this is)5.306 F .883 -(shorter than the time actually needed for the recei)189 124.2 R -.15(ve)-.25 G -3.384(rt).15 G 3.384(od)412.878 124.2 S(eli)426.262 124.2 Q -.15(ve)-.25 G -3.384(rt).15 G .884(he message,)454.796 124.2 R(duplicates will be generated.) -189 136.2 Q(This is discussed in RFC 1047.)5 E 55.06(rset The)117 152.4 R -.1 +241.2 R/F2 10/Times-Italic@0 SF(send-)3.12 E(mail)189 253.2 Q F1(which ha)2.5 E +.3 -.15(ve n)-.2 H 2.5(og).15 G(uarantee of promptness.)274.75 253.2 Q 30.06 +(data\214nal\207 The)117 269.4 R -.1(wa)2.806 G .306 +(it for a reply from the dot terminating a message.).1 F .306([1h, 10m].)5.306 +F .306(If this is)5.306 F .884 +(shorter than the time actually needed for the recei)189 281.4 R -.15(ve)-.25 G +3.383(rt).15 G 3.383(od)412.881 281.4 S(eli)426.264 281.4 Q -.15(ve)-.25 G +3.383(rt).15 G .883(he message,)454.797 281.4 R(duplicates will be generated.) +189 293.4 Q(This is discussed in RFC 1047.)5 E 55.06(rset The)117 309.6 R -.1 (wa)2.5 G(it for a reply from a RSET command [5m, unspeci\214ed].).1 E 53.94 -(quit The)117 168.6 R -.1(wa)2.5 G(it for a reply from a Q).1 E -(UIT command [2m, unspeci\214ed].)-.1 E 50.61(misc The)117 184.8 R -.1(wa)2.761 -G .261(it for a reply from miscellaneous \(b).1 F .261 +(quit The)117 325.8 R -.1(wa)2.5 G(it for a reply from a Q).1 E +(UIT command [2m, unspeci\214ed].)-.1 E 50.61(misc The)117 342 R -.1(wa)2.76 G +.261(it for a reply from miscellaneous \(b).1 F .261 (ut short\) commands such as NOOP)-.2 F(\(no-operation\) and VERB \(go into v) -189 196.8 Q(erbose mode\).)-.15 E([2m, unspeci\214ed].)5 E 25.06 -(command\207 In)117 213 R(serv)2.5 E(er SMTP)-.15 E 2.5(,t)-1.11 G -(he time to w)259.4 213 Q(ait for another command.)-.1 E([1h, 5m].)5 E 49.5 -(ident The)117 229.2 R(timeout w)2.5 E -(aiting for a reply to an IDENT query [30s, unspeci\214ed].)-.1 E -.15(Fo)117 -245.4 S 3.633(rc).15 G 1.134 -(ompatibility with old con\214guration \214les, if no `)138.813 245.4 R(`k)-.74 -E -.15(ey)-.1 G -.1(wo).15 G(rd=').1 E 3.634('i)-.74 G 3.634(ss)390.854 245.4 S -1.134(peci\214ed, all the timeouts)402.268 245.4 R(mark)117 257.4 Q -(ed with \207 are set to the indicated v)-.1 E(alue.)-.25 E(Man)142 273.6 Q -2.501(yo)-.15 G 2.501(ft)172.681 273.6 S .001(he RFC 1123 minimum v)181.292 -273.6 R .001(alues may well be too short.)-.25 F F1(Sendmail)5 E F2 -.1(wa)2.5 -G 2.5(sd).1 G(esigned to)463.17 273.6 Q .066 -(the RFC 822 protocols, which did not specify read timeouts; hence,)117 285.6 R -F1(sendmail)2.567 E F2 .067(does not guarantee)2.567 F .438 -(to reply to messages promptly)117 297.6 R 5.438(.I)-.65 G 2.938(np)249.92 -297.6 S(articular)262.858 297.6 Q 2.938(,a\231)-.4 G .438 -(RCPT\232 command specifying a mailing list will)313.034 297.6 R -.15(ex)117 -311.6 S .205(pand and v).15 F .205(erify the entire list; a lar)-.15 F .205 -(ge list on a slo)-.18 F 2.705(ws)-.25 G .205(ystem may tak)339.81 311.6 R -2.705(em)-.1 G .205(ore than \214v)413.375 311.6 R 2.705(em)-.15 G(inutes) -474.11 311.6 Q/F3 7/Times-Roman@0 SF(7)498 307.6 Q F2(.)501.5 311.6 Q 3.036(Ir) -117 323.6 S .536(ecommend a one hour timeout \212 since this f)126.696 323.6 R +189 354 Q(erbose mode\).)-.15 E([2m, unspeci\214ed].)5 E 25.06(command\207 In) +117 370.2 R(serv)2.5 E(er SMTP)-.15 E 2.5(,t)-1.11 G(he time to w)259.4 370.2 Q +(ait for another command.)-.1 E([1h, 5m].)5 E 49.5(ident The)117 386.4 R +(timeout w)2.5 E(aiting for a reply to an IDENT query [30s, unspeci\214ed].)-.1 +E -.15(Fo)117 402.6 S 3.634(rc).15 G 1.134 +(ompatibility with old con\214guration \214les, if no `)138.814 402.6 R(`k)-.74 +E -.15(ey)-.1 G -.1(wo).15 G(rd=').1 E 3.634('i)-.74 G 3.634(ss)390.856 402.6 S +1.133(peci\214ed, all the timeouts)402.27 402.6 R(mark)117 414.6 Q +(ed with \207 are set to the indicated v)-.1 E(alue.)-.25 E(Man)142 430.8 Q 2.5 +(yo)-.15 G 2.5(ft)172.68 430.8 S(he RFC 1123 minimum v)181.29 430.8 Q .001 +(alues may well be too short.)-.25 F F2(Sendmail)5.001 E F1 -.1(wa)2.501 G +2.501(sd).1 G .001(esigned to)463.169 430.8 R .067 +(the RFC 822 protocols, which did not specify read timeouts; hence,)117 442.8 R +F2(sendmail)2.566 E F1 .066(does not guarantee)2.566 F .437 +(to reply to messages promptly)117 454.8 R 5.438(.I)-.65 G 2.938(np)249.918 +454.8 S(articular)262.856 454.8 Q 2.938(,a\231)-.4 G .438 +(RCPT\232 command specifying a mailing list will)313.032 454.8 R -.15(ex)117 +468.8 S .205(pand and v).15 F .205(erify the entire list; a lar)-.15 F .205 +(ge list on a slo)-.18 F 2.705(ws)-.25 G .205(ystem may tak)339.81 468.8 R +2.705(em)-.1 G .205(ore than \214v)413.375 468.8 R 2.705(em)-.15 G(inutes) +474.11 468.8 Q/F3 7/Times-Roman@0 SF(7)498 464.8 Q F1(.)501.5 468.8 Q 3.037(Ir) +117 480.8 S .536(ecommend a one hour timeout \212 since this f)126.697 480.8 R .536(ailure is rare, a long timeout is not onerous and)-.1 F -(may ultimately help reduce netw)117 335.6 Q(ork load.)-.1 E -.15(Fo)142 351.8 -S 2.5(re).15 G(xample, the line:)162.53 351.8 Q(Orcommand=25m,datablock=3h)157 -368 Q .344(sets the serv)117 384.2 R .344(er SMTP command timeout to 25 minute\ -s and the input data block timeout to three)-.15 F(hours.)117 396.2 Q F0 2.5 -(4.1.3. Message)102 420.2 R(timeouts)2.5 E F2 .237 -(After sitting in the queue for a fe)142 436.4 R 2.737(wd)-.25 G .237 -(ays, a message will time out.)289.726 436.4 R .238(This is to insure that at) -5.238 F .283(least the sender is a)117 448.4 R -.1(wa)-.15 G .282 -(re of the inability to send a message.).1 F .282 -(The timeout is typically set to three)5.282 F 2.5(days. This)117 460.4 R -(timeout is set using the)2.5 E F0(T)2.5 E F2 +(may ultimately help reduce netw)117 492.8 Q(ork load.)-.1 E -.15(Fo)142 509 S +2.5(re).15 G(xample, the line:)162.53 509 Q(Orcommand=25m,datablock=3h)157 +525.2 Q .343(sets the serv)117 541.4 R .344(er SMTP command timeout to 25 minu\ +tes and the input data block timeout to three)-.15 F(hours.)117 553.4 Q F0 2.5 +(4.1.3. Message)102 577.4 R(timeouts)2.5 E F1 .238 +(After sitting in the queue for a fe)142 593.6 R 2.737(wd)-.25 G .237 +(ays, a message will time out.)289.733 593.6 R .237(This is to insure that at) +5.237 F .282(least the sender is a)117 605.6 R -.1(wa)-.15 G .282 +(re of the inability to send a message.).1 F .283 +(The timeout is typically set to three)5.282 F 2.5(days. This)117 617.6 R +(timeout is set using the)2.5 E F0(T)2.5 E F1 (option in the con\214guration \214le.)2.5 E .413(The time of submission is se\ -t in the queue, rather than the amount of time left until time-)142 476.6 R -3.263(out. As)117 488.6 R 3.263(ar)3.263 G .763 -(esult, you can \215ush messages that ha)163.449 488.6 R 1.062 -.15(ve b)-.2 H -.762(een hanging for a short period by running).15 F -(the queue with a short message timeout.)117 500.6 Q -.15(Fo)5 G 2.5(re).15 G -(xample,)302.79 500.6 Q(/usr/sbin/sendmail \255oT1d \255q)157 516.8 Q -(will run the queue and \215ush an)117 533 Q(ything that is one day old.)-.15 E -1.077(Since this option is global, and since you can not)142 549.2 R F1 3.577 -(ap)3.577 G(riori)364.395 549.2 Q F2(kno)3.577 E 3.577(wh)-.25 G 1.577 -.25 -(ow l)416.859 549.2 T 1.077(ong another host).25 F .476 -(outside your domain will be do)117 561.2 R .475(wn, a \214v)-.25 F 2.975(ed) --.15 G .475(ay timeout is recommended.)291.785 561.2 R .475(This allo)5.475 F -.475(ws a recipient)-.25 F 1.579(to \214x the problem e)117 573.2 R -.15(ve) --.25 G 4.079(ni).15 G 4.079(fi)222.545 573.2 S 4.079(to)232.734 573.2 S 1.579 -(ccurs at the be)244.593 573.2 R 1.58(ginning of a long week)-.15 F 4.08 -(end. RFC)-.1 F 1.58(1123 section)4.08 F -(5.3.1.1 says that this parameter should be `)117 585.2 Q -(`at least 4\2555 days')-.74 E('.)-.74 E(The)142 601.4 Q F0(T)2.711 E F2 .211 -(option can also tak)2.711 F 2.711(eas)-.1 G .21 -(econd timeout indicating a time after which a w)263.637 601.4 R .21 -(arning mes-)-.1 F(sage should be sent; the tw)117 613.4 Q 2.5(ot)-.1 G -(imeouts are separated by a slash.)234.67 613.4 Q -.15(Fo)5 G 2.5(re).15 G -(xample, the v)391.28 613.4 Q(alue)-.25 E(5d/4h)157 629.6 Q .971 -(causes email to f)117 645.8 R .971(ail after \214v)-.1 F 3.471(ed)-.15 G .971 -(ays, b)245.326 645.8 R .971(ut a w)-.2 F .971 -(arning message will be sent after four hours.)-.1 F(This)5.972 E -(should be lar)117 657.8 Q(ge enough that the message will ha)-.18 E .3 -.15 -(ve b)-.2 H(een tried se).15 E -.15(ve)-.25 G(ral times.).15 E .32 LW 76 669.2 -72 669.2 DL 80 669.2 76 669.2 DL 84 669.2 80 669.2 DL 88 669.2 84 669.2 DL 92 -669.2 88 669.2 DL 96 669.2 92 669.2 DL 100 669.2 96 669.2 DL 104 669.2 100 -669.2 DL 108 669.2 104 669.2 DL 112 669.2 108 669.2 DL 116 669.2 112 669.2 DL -120 669.2 116 669.2 DL 124 669.2 120 669.2 DL 128 669.2 124 669.2 DL 132 669.2 -128 669.2 DL 136 669.2 132 669.2 DL 140 669.2 136 669.2 DL 144 669.2 140 669.2 -DL 148 669.2 144 669.2 DL 152 669.2 148 669.2 DL 156 669.2 152 669.2 DL 160 -669.2 156 669.2 DL 164 669.2 160 669.2 DL 168 669.2 164 669.2 DL 172 669.2 168 -669.2 DL 176 669.2 172 669.2 DL 180 669.2 176 669.2 DL 184 669.2 180 669.2 DL -188 669.2 184 669.2 DL 192 669.2 188 669.2 DL 196 669.2 192 669.2 DL 200 669.2 -196 669.2 DL 204 669.2 200 669.2 DL 208 669.2 204 669.2 DL 212 669.2 208 669.2 -DL 216 669.2 212 669.2 DL/F4 5/Times-Roman@0 SF(7)93.6 679.6 Q/F5 8 -/Times-Roman@0 SF .344(This v)3.2 J .344(eri\214cation includes looking up e) --.12 F -.12(ve)-.2 G .344(ry address with the name serv).12 F .344(er; this in) --.12 F -.16(vo)-.32 G(lv).16 E .344(es netw)-.12 F .343 -(ork delays, and can in some cases)-.08 F(can be considerable.)72 692.4 Q EP -%%Page: 21 16 +t in the queue, rather than the amount of time left until time-)142 633.8 R +3.262(out. As)117 645.8 R 3.262(ar)3.262 G .762 +(esult, you can \215ush messages that ha)163.446 645.8 R 1.062 -.15(ve b)-.2 H +.763(een hanging for a short period by running).15 F +(the queue with a short message timeout.)117 657.8 Q -.15(Fo)5 G 2.5(re).15 G +(xample,)302.79 657.8 Q .32 LW 76 669.2 72 669.2 DL 80 669.2 76 669.2 DL 84 +669.2 80 669.2 DL 88 669.2 84 669.2 DL 92 669.2 88 669.2 DL 96 669.2 92 669.2 +DL 100 669.2 96 669.2 DL 104 669.2 100 669.2 DL 108 669.2 104 669.2 DL 112 +669.2 108 669.2 DL 116 669.2 112 669.2 DL 120 669.2 116 669.2 DL 124 669.2 120 +669.2 DL 128 669.2 124 669.2 DL 132 669.2 128 669.2 DL 136 669.2 132 669.2 DL +140 669.2 136 669.2 DL 144 669.2 140 669.2 DL 148 669.2 144 669.2 DL 152 669.2 +148 669.2 DL 156 669.2 152 669.2 DL 160 669.2 156 669.2 DL 164 669.2 160 669.2 +DL 168 669.2 164 669.2 DL 172 669.2 168 669.2 DL 176 669.2 172 669.2 DL 180 +669.2 176 669.2 DL 184 669.2 180 669.2 DL 188 669.2 184 669.2 DL 192 669.2 188 +669.2 DL 196 669.2 192 669.2 DL 200 669.2 196 669.2 DL 204 669.2 200 669.2 DL +208 669.2 204 669.2 DL 212 669.2 208 669.2 DL 216 669.2 212 669.2 DL/F4 5 +/Times-Roman@0 SF(7)93.6 679.6 Q/F5 8/Times-Roman@0 SF .343(This v)3.2 J .343 +(eri\214cation includes looking up e)-.12 F -.12(ve)-.2 G .344 +(ry address with the name serv).12 F .344(er; this in)-.12 F -.16(vo)-.32 G(lv) +.16 E .344(es netw)-.12 F .344(ork delays, and can in some cases)-.08 F +(can be considerable.)72 692.4 Q EP +%%Page: 20 15 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-21)452.9 60 Q 2.5(4.2. F)87 96 R(orking During Queue Runs)-.25 E/F1 10 -/Times-Roman@0 SF .303(By setting the)127 112.2 R F0(Y)2.802 E F1(option,)2.802 -E/F2 10/Times-Italic@0 SF(sendmail)2.802 E F1 .302(will fork before each indi) -2.802 F .302(vidual message while running the)-.25 F 2.513(queue. This)102 -124.2 R .013(will pre)2.513 F -.15(ve)-.25 G(nt).15 E F2(sendmail)2.513 E F1 -.013(from consuming lar)2.513 F .013(ge amounts of memory)-.18 F 2.513(,s)-.65 -G 2.513(oi)421.993 124.2 S 2.513(tm)432.286 124.2 S .014(ay be useful in) -445.359 124.2 R .592(memory-poor en)102 136.2 R 3.092(vironments. Ho)-.4 F(we) --.25 E -.15(ve)-.25 G 1.392 -.4(r, i).15 H 3.092(ft).4 G(he)275.388 136.2 Q F0 -(Y)3.092 E F1 .591(option is not set,)3.091 F F2(sendmail)3.091 E F1 .591 -(will k)3.091 F .591(eep track of hosts)-.1 F(that are do)102 148.2 Q -(wn during a queue run, which can impro)-.25 E .3 -.15(ve p)-.15 H -(erformance dramatically).15 E(.)-.65 E(If the)127 164.4 Q F0(Y)2.5 E F1 -(option is set,)2.5 E F2(sendmail)2.5 E F1(can not use connection caching.)2.5 -E F0 2.5(4.3. Queue)87 188.4 R(Priorities)2.5 E F1(Ev)127 204.6 Q 1.128(ery me\ -ssage is assigned a priority when it is \214rst instantiated, consisting of th\ -e message)-.15 F .003(size \(in bytes\) of)102 216.6 R .002 -(fset by the message class times the \231w)-.25 F .002(ork class f)-.1 F .002 -(actor\232 and the number of recipients)-.1 F .637(times the \231w)102 228.6 R -.637(ork recipient f)-.1 F(actor)-.1 E 4.537 -.7(.\232 T)-.55 H .638 -(he priority is used to order the queue.).7 F .638(Higher numbers for the)5.638 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-20 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF +(/usr/sbin/sendmail \255oT1d \255q)157 96 Q(will run the queue and \215ush an) +117 112.2 Q(ything that is one day old.)-.15 E 1.077 +(Since this option is global, and since you can not)142 128.4 R/F2 10 +/Times-Italic@0 SF 3.577(ap)3.577 G(riori)364.397 128.4 Q F1(kno)3.577 E 3.577 +(wh)-.25 G 1.577 -.25(ow l)416.861 128.4 T 1.076(ong another host).25 F .475 +(outside your domain will be do)117 140.4 R .475(wn, a \214v)-.25 F 2.975(ed) +-.15 G .475(ay timeout is recommended.)291.78 140.4 R .476(This allo)5.476 F +.476(ws a recipient)-.25 F 1.58(to \214x the problem e)117 152.4 R -.15(ve)-.25 +G 4.08(ni).15 G 4.08(fi)222.55 152.4 S 4.08(to)232.74 152.4 S 1.579 +(ccurs at the be)244.6 152.4 R 1.579(ginning of a long week)-.15 F 4.079 +(end. RFC)-.1 F 1.579(1123 section)4.079 F +(5.3.1.1 says that this parameter should be `)117 164.4 Q +(`at least 4\2555 days')-.74 E('.)-.74 E(The)142 180.6 Q F0(T)2.71 E F1 .21 +(option can also tak)2.71 F -5.209 2.71(ea s)-.1 H .211 +(econd timeout indicating a time after which a w)263.631 180.6 R .211 +(arning mes-)-.1 F(sage should be sent; the tw)117 192.6 Q 2.5(ot)-.1 G +(imeouts are separated by a slash.)234.67 192.6 Q -.15(Fo)5 G 2.5(re).15 G +(xample, the v)391.28 192.6 Q(alue)-.25 E(5d/4h)157 208.8 Q .972 +(causes email to f)117 225 R .971(ail after \214v)-.1 F 3.471(ed)-.15 G .971 +(ays, b)245.329 225 R .971(ut a w)-.2 F .971 +(arning message will be sent after four hours.)-.1 F(This)5.971 E +(should be lar)117 237 Q(ge enough that the message will ha)-.18 E .3 -.15 +(ve b)-.2 H(een tried se).15 E -.15(ve)-.25 G(ral times.).15 E F0 2.5(4.2. F)87 +261 R(orking During Queue Runs)-.25 E F1 .302(By setting the)127 277.2 R F0(Y) +2.802 E F1(option,)2.802 E F2(sendmail)2.802 E F1 .302 +(will fork before each indi)2.802 F .302(vidual message while running the)-.25 +F 2.514(queue. This)102 289.2 R .013(will pre)2.514 F -.15(ve)-.25 G(nt).15 E +F2(sendmail)2.513 E F1 .013(from consuming lar)2.513 F .013 +(ge amounts of memory)-.18 F 2.513(,s)-.65 G 2.513(oi)421.995 289.2 S 2.513(tm) +432.288 289.2 S .013(ay be useful in)445.361 289.2 R .591(memory-poor en)102 +301.2 R 3.091(vironments. Ho)-.4 F(we)-.25 E -.15(ve)-.25 G 1.391 -.4(r, i).15 +H 3.091(ft).4 G(he)275.384 301.2 Q F0(Y)3.091 E F1 .591(option is not set,) +3.091 F F2(sendmail)3.091 E F1 .592(will k)3.092 F .592(eep track of hosts)-.1 +F(that are do)102 313.2 Q(wn during a queue run, which can impro)-.25 E .3 -.15 +(ve p)-.15 H(erformance dramatically).15 E(.)-.65 E(If the)127 329.4 Q F0(Y)2.5 +E F1(option is set,)2.5 E F2(sendmail)2.5 E F1(can not use connection caching.) +2.5 E F0 2.5(4.3. Queue)87 353.4 R(Priorities)2.5 E F1(Ev)127 369.6 Q 1.128(er\ +y message is assigned a priority when it is \214rst instantiated, consisting o\ +f the message)-.15 F .002(size \(in bytes\) of)102 381.6 R .002 +(fset by the message class times the \231w)-.25 F .002(ork class f)-.1 F .003 +(actor\232 and the number of recipients)-.1 F .638(times the \231w)102 393.6 R +.638(ork recipient f)-.1 F(actor)-.1 E 4.538 -.7(.\232 T)-.55 H .637 +(he priority is used to order the queue.).7 F .637(Higher numbers for the)5.637 F(priority mean that the message will be processed later when running the queu\ -e.)102 240.6 Q .329(The message size is included so that lar)127 256.8 R .328 -(ge messages are penalized relati)-.18 F .628 -.15(ve t)-.25 H 2.828(os).15 G -.328(mall messages.)443.122 256.8 R .285(The message class allo)102 268.8 R +e.)102 405.6 Q .328(The message size is included so that lar)127 421.8 R .329 +(ge messages are penalized relati)-.18 F .629 -.15(ve t)-.25 H 2.829(os).15 G +.329(mall messages.)443.121 421.8 R .285(The message class allo)102 433.8 R .285(ws users to send \231high priority\232 messages by including a \231Preced\ -ence:\232 \214eld)-.25 F .008(in their message; the v)102 280.8 R .008 -(alue of this \214eld is look)-.25 F .007(ed up in the)-.1 F F0(P)2.507 E F1 -.007(lines of the con\214guration \214le.)2.507 F .007(Since the)5.007 F 1.966 -(number of recipients af)102 292.8 R 1.967 +ence:\232 \214eld)-.25 F .007(in their message; the v)102 445.8 R .007 +(alue of this \214eld is look)-.25 F .008(ed up in the)-.1 F F0(P)2.508 E F1 +.008(lines of the con\214guration \214le.)2.508 F .008(Since the)5.008 F 1.967 +(number of recipients af)102 457.8 R 1.967 (fects the amount of load a message presents to the system, this is also)-.25 F -(included into the priority)102 304.8 Q(.)-.65 E .895 -(The recipient and class f)127 321 R .895 -(actors can be set in the con\214guration \214le using the)-.1 F F0(y)3.394 E -F1(and)3.394 E F0(z)3.394 E F1(options)3.394 E(respecti)102 333 Q -.15(ve)-.25 -G(ly).15 E 5.962(.T)-.65 G(he)163.842 333 Q 3.462(yd)-.15 G(ef)186.594 333 Q -.962(ault to 30000 \(for the recipient f)-.1 F .963 -(actor\) and 1800 \(for the class f)-.1 F 3.463(actor\). The)-.1 F -(initial priority is:)102 345 Q F2(pri)223.76 363 Q/F3 10/Symbol SF(=)3.16 E F2 +(included into the priority)102 469.8 Q(.)-.65 E .894 +(The recipient and class f)127 486 R .895 +(actors can be set in the con\214guration \214le using the)-.1 F F0(y)3.395 E +F1(and)3.395 E F0(z)3.395 E F1(options)3.395 E(respecti)102 498 Q -.15(ve)-.25 +G(ly).15 E 5.963(.T)-.65 G(he)163.843 498 Q 3.463(yd)-.15 G(ef)186.596 498 Q +.963(ault to 30000 \(for the recipient f)-.1 F .962 +(actor\) and 1800 \(for the class f)-.1 F 3.462(actor\). The)-.1 F +(initial priority is:)102 510 Q F2(pri)223.76 528 Q/F3 10/Symbol SF(=)3.16 E F2 (msgsize)3.18 E F3(-)2.38 E F1(\()2.2 E F2(class).2 E F3<b4>2.47 E F0(z\))2.2 E F3(+)2.2 E F1(\()2.2 E F2(nrcpt).36 E F3<b4>2.88 E F0(y\))2.2 E F1(\(Remember) -102 381 Q 3.328(,h)-.4 G .828(igher v)159.638 381 R .828 +102 546 Q 3.328(,h)-.4 G .828(igher v)159.638 546 R .828 (alues for this parameter actually mean that the job will be treated with lo) --.25 F(wer)-.25 E(priority)102 393 Q(.\))-.65 E 1.519(The priority of a job ca\ -n also be adjusted each time it is processed \(that is, each time an)127 409.2 -R .256(attempt is made to deli)102 421.2 R -.15(ve)-.25 G 2.756(ri).15 G .256 -(t\) using the \231w)212.04 421.2 R .256(ork time f)-.1 F(actor)-.1 E 1.656 -.7 +-.25 F(wer)-.25 E(priority)102 558 Q(.\))-.65 E 1.519(The priority of a job ca\ +n also be adjusted each time it is processed \(that is, each time an)127 574.2 +R .256(attempt is made to deli)102 586.2 R -.15(ve)-.25 G 2.756(ri).15 G .256 +(t\) using the \231w)212.04 586.2 R .256(ork time f)-.1 F(actor)-.1 E 1.656 -.7 (,\232 s)-.4 H .256(et by the).7 F F0(Z)2.756 E F1 2.756(option. This)2.756 F -.256(is added to the)2.756 F(priority)102 433.2 Q 2.702(,s)-.65 G 2.703(oi) -140.442 433.2 S 2.703(tn)150.925 433.2 S .203 +.256(is added to the)2.756 F(priority)102 598.2 Q 2.703(,s)-.65 G 2.703(oi) +140.443 598.2 S 2.703(tn)150.926 598.2 S .203 (ormally decreases the precedence of the job, on the grounds that jobs that ha) -161.408 433.2 R .503 -.15(ve f)-.2 H(ailed).05 E(man)102 445.2 Q 2.5(yt)-.15 G -(imes will tend to f)129.35 445.2 Q(ail ag)-.1 E(ain in the future.)-.05 E(The) +161.409 598.2 R .502 -.15(ve f)-.2 H(ailed).05 E(man)102 610.2 Q 2.5(yt)-.15 G +(imes will tend to f)129.35 610.2 Q(ail ag)-.1 E(ain in the future.)-.05 E(The) 5 E F0(Z)2.5 E F1(option def)2.5 E(aults to 90000.)-.1 E F0 2.5(4.4. Load)87 -469.2 R(Limiting)2.5 E F2(Sendmail)127 485.4 Q F1 .102(can be ask)2.602 F .101 +634.2 R(Limiting)2.5 E F2(Sendmail)127 650.4 Q F1 .101(can be ask)2.601 F .101 (ed to queue \(b)-.1 F .101(ut not deli)-.2 F -.15(ve)-.25 G .101 -(r\) mail if the system load a).15 F -.15(ve)-.2 G .101(rage gets too high).15 -F .626(using the)102 497.4 R F0(x)3.126 E F1 3.126(option. When)3.126 F .626 +(r\) mail if the system load a).15 F -.15(ve)-.2 G .102(rage gets too high).15 +F .627(using the)102 662.4 R F0(x)3.127 E F1 3.126(option. When)3.126 F .626 (the load a)3.126 F -.15(ve)-.2 G .626(rage e).15 F .626(xceeds the v)-.15 F .626(alue of the)-.25 F F0(x)3.126 E F1 .626(option, the deli)3.126 F -.15(ve) --.25 G .627(ry mode is).15 F .987(set to)102 509.4 R F0(q)3.487 E F1 .987 -(\(queue only\) if the)3.487 F F2 .987(Queue F)3.487 F(actor)-.75 E F1(\()3.487 -E F0(q)A F1 .987(option\) di)3.487 F .986(vided by the dif)-.25 F .986 -(ference in the current load)-.25 F -2.25 -.2(av e)102 521.4 T 1.268 +-.25 G .626(ry mode is).15 F .986(set to)102 674.4 R F0(q)3.486 E F1 .986 +(\(queue only\) if the)3.486 F F2 .987(Queue F)3.487 F(actor)-.75 E F1(\()3.487 +E F0(q)A F1 .987(option\) di)3.487 F .987(vided by the dif)-.25 F .987 +(ference in the current load)-.25 F -2.25 -.2(av e)102 686.4 T 1.269 (rage and the).2 F F0(x)3.769 E F1 1.269(option plus one e)3.769 F 1.269 (xceeds the priority of the message \212 that is, the message is)-.15 F -(queued if)102 533.4 Q(f:)-.25 E F2(pri)269.76 554.63 Q F1(>)3.16 E F0(q)312.48 -547.63 Q F2(LA)294.81 561.63 Q F3(-)2.23 E F0(x)2.2 E F3(+)2.2 E .4 LW 336.29 -552.03 294.23 552.03 DL F1(1)331.29 561.63 Q(The)102 576.13 Q F0(q)3.143 E F1 -.643(option def)3.143 F .642(aults to 600000, so each point of load a)-.1 F --.15(ve)-.2 G .642(rage is w).15 F .642(orth 600000 priority points \(as)-.1 F -(described abo)102 588.13 Q -.15(ve)-.15 G(\).).15 E -.15(Fo)127 604.33 S 2.886 -(rd).15 G .386(rastic cases, the)148.626 604.33 R F0(X)2.887 E F1 .387 -(option de\214nes a load a)2.887 F -.15(ve)-.2 G .387(rage at which).15 F F2 -(sendmail)2.887 E F1 .387(will refuse to accept)2.887 F(netw)102 616.33 Q +(queued if)102 698.4 Q(f:)-.25 E EP +%%Page: 21 16 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-21)452.9 60 Q/F1 10/Times-Italic@0 SF(pri)269.76 99.23 Q/F2 10 +/Times-Roman@0 SF(>)3.16 E F0(q)312.48 92.23 Q F1(LA)294.81 106.23 Q/F3 10 +/Symbol SF(-)2.23 E F0(x)2.2 E F3(+)2.2 E .4 LW 336.29 96.63 294.23 96.63 DL F2 +(1)331.29 106.23 Q(The)102 120.73 Q F0(q)3.142 E F2 .642(option def)3.142 F +.642(aults to 600000, so each point of load a)-.1 F -.15(ve)-.2 G .643 +(rage is w).15 F .643(orth 600000 priority points \(as)-.1 F(described abo)102 +132.73 Q -.15(ve)-.15 G(\).).15 E -.15(Fo)127 148.93 S 2.887(rd).15 G .387 +(rastic cases, the)148.627 148.93 R F0(X)2.887 E F2 .387 +(option de\214nes a load a)2.887 F -.15(ve)-.2 G .387(rage at which).15 F F1 +(sendmail)2.887 E F2 .386(will refuse to accept)2.887 F(netw)102 160.93 Q (ork connections.)-.1 E (Locally generated mail \(including incoming UUCP mail\) is still accepted.)5 E -F0 2.5(4.5. Deli)87 640.33 R -.1(ve)-.1 G(ry Mode).1 E F1 .417 -(There are a number of deli)127 656.53 R -.15(ve)-.25 G .416(ry modes that).15 -F F2(sendmail)2.916 E F1 .416 +F0 2.5(4.5. Deli)87 184.93 R -.1(ve)-.1 G(ry Mode).1 E F2 .416 +(There are a number of deli)127 201.13 R -.15(ve)-.25 G .416(ry modes that).15 +F F1(sendmail)2.916 E F2 .417 (can operate in, set by the \231d\232 con\214gura-)2.916 F(tion option.)102 -668.53 Q(These modes specify ho)5 E 2.5(wq)-.25 G(uickly mail will be deli) -263.96 668.53 Q -.15(ve)-.25 G 2.5(red. Le).15 F -.05(ga)-.15 G 2.5(lm).05 G -(odes are:)418.9 668.53 Q 17.22(id)142 684.73 S(eli)167 684.73 Q -.15(ve)-.25 G -2.5(ri).15 G(nteracti)194.65 684.73 Q -.15(ve)-.25 G(ly \(synchronously\)).15 E -15(bd)142 696.73 S(eli)167 696.73 Q -.15(ve)-.25 G 2.5(ri).15 G 2.5(nb)194.65 -696.73 S(ackground \(asynchronously\))207.15 696.73 Q 15(qq)142 708.73 S -(ueue only \(don')167 708.73 Q 2.5(td)-.18 G(eli)240.42 708.73 Q -.15(ve)-.25 G -(r\)).15 E 1.49(There are tradeof)102 724.93 R 3.99(fs. Mode)-.25 F 1.491 -(\231i\232 passes the maximum amount of information to the sender)3.99 F 3.991 -(,b)-.4 G 1.491(ut is)485.559 724.93 R EP +213.13 Q(These modes specify ho)5 E 2.5(wq)-.25 G(uickly mail will be deli) +263.96 213.13 Q -.15(ve)-.25 G 2.5(red. Le).15 F -.05(ga)-.15 G 2.5(lm).05 G +(odes are:)418.9 213.13 Q 17.22(id)142 229.33 S(eli)167 229.33 Q -.15(ve)-.25 G +2.5(ri).15 G(nteracti)194.65 229.33 Q -.15(ve)-.25 G(ly \(synchronously\)).15 E +15(bd)142 241.33 S(eli)167 241.33 Q -.15(ve)-.25 G 2.5(ri).15 G 2.5(nb)194.65 +241.33 S(ackground \(asynchronously\))207.15 241.33 Q 15(qq)142 253.33 S +(ueue only \(don')167 253.33 Q 2.5(td)-.18 G(eli)240.42 253.33 Q -.15(ve)-.25 G +(r\)).15 E 1.491(There are tradeof)102 269.53 R 3.991(fs. Mode)-.25 F 1.491 +(\231i\232 passes the maximum amount of information to the sender)3.991 F 3.99 +(,b)-.4 G 1.49(ut is)485.56 269.53 R .432(hardly e)102 281.53 R -.15(ve)-.25 G +2.932(rn).15 G(ecessary)155.224 281.53 Q 5.432(.M)-.65 G .433 +(ode \231q\232 puts the minimum load on your machine, b)205.266 281.53 R .433 +(ut means that deli)-.2 F -.15(ve)-.25 G(ry).15 E .437 +(may be delayed for up to the queue interv)102 293.53 R 2.937(al. Mode)-.25 F +.437(\231b\232 is probably a good compromise.)2.937 F(Ho)5.436 E(we)-.25 E -.15 +(ve)-.25 G -.4(r,).15 G .032(this mode can cause lar)102 305.53 R .032 +(ge numbers of processes if you ha)-.18 F .332 -.15(ve a m)-.2 H .032 +(ailer that tak).15 F .032(es a long time to deli)-.1 F -.15(ve)-.25 G(r).15 E +2.5(am)102 317.53 S(essage.)116.72 317.53 Q .338 +(If you run in mode \231q\232 \(queue only\) or \231b\232 \(deli)127 333.73 R +-.15(ve)-.25 G 2.837(ri).15 G 2.837(nb)341.095 333.73 S(ackground\))353.932 +333.73 Q F1(sendmail)2.837 E F2 .337(will not e)2.837 F(xpand)-.15 E 1.313 +(aliases and follo)102 345.73 R 3.813(w.)-.25 G(forw)182.899 345.73 Q 1.313 +(ard \214les upon initial receipt of the mail.)-.1 F 1.313 +(This speeds up the response to)6.313 F(RCPT commands.)102 357.73 Q F0 2.5 +(4.6. Log)87 381.73 R(Le)2.5 E -.1(ve)-.15 G(l).1 E F2 .19(The le)127 397.93 R +-.15(ve)-.25 G 2.69(lo).15 G 2.69(fl)171.97 397.93 S .19(ogging can be set for) +180.77 397.93 R F1(sendmail)2.689 E F2 5.189(.T)C .189(he def)317.996 397.93 R +.189(ault using a standard con\214guration table)-.1 F(is le)102 409.93 Q -.15 +(ve)-.25 G 2.5(l9).15 G 5(.T)137.71 409.93 S(he le)151.32 409.93 Q -.15(ve)-.25 +G(ls are as follo).15 E(ws:)-.25 E 31(0N)102 426.13 S 2.5(ol)145.22 426.13 S +(ogging.)155.5 426.13 Q 31(1S)102 442.33 S(erious system f)143.56 442.33 Q +(ailures and potential security problems.)-.1 E 31(2L)102 458.53 S +(ost communications \(netw)144.11 458.53 Q(ork problems\) and protocol f)-.1 E +(ailures.)-.1 E 31(3O)102 474.73 S(ther serious f)145.22 474.73 Q(ailures.)-.1 +E 31(4M)102 490.93 S(inor f)146.89 490.93 Q(ailures.)-.1 E 31(5M)102 507.13 S +(essage collection statistics.)146.89 507.13 Q 31(6C)102 523.33 S +(reation of error messages, VRFY and EXPN commands.)144.67 523.33 Q 31(7D)102 +539.53 S(eli)145.22 539.53 Q -.15(ve)-.25 G(ry f).15 E +(ailures \(host or user unkno)-.1 E(wn, etc.\).)-.25 E 31(8S)102 555.73 S +(uccessful deli)143.56 555.73 Q -.15(ve)-.25 G(ries.).15 E 31(9M)102 571.93 S +(essages being deferred \(due to a host being do)146.89 571.93 Q(wn, etc.\).) +-.25 E 23.5(10 Database)102 588.13 R -.15(ex)2.5 G(pansion \(alias, forw).15 E +(ard, and userdb lookups\).)-.1 E 23.5(15 Automatic)102 604.33 R +(alias database reb)2.5 E(uilds.)-.2 E 23.5(20 Logs)102 620.53 R .603 +(attempts to run lock)3.102 F .603(ed queue \214les.)-.1 F .603 +(These are not errors, b)5.603 F .603(ut can be useful to note if)-.2 F +(your queue appears to be clogged.)138 632.53 Q 23.5(30 Lost)102 648.73 R +(locks \(only if using lockf instead of \215ock\).)2.5 E(Additionally)102 +664.93 Q 3.684(,v)-.65 G 1.184(alues abo)162.844 664.93 R 1.484 -.15(ve 6)-.15 +H 3.684(4a).15 G 1.183(re reserv)232.466 664.93 R 1.183(ed for e)-.15 F 1.183 +(xtremely v)-.15 F 1.183(erbose deb)-.15 F 1.183(uggging output.)-.2 F 1.183 +(No normal)6.183 F(site w)102 676.93 Q(ould e)-.1 E -.15(ve)-.25 G 2.5(rs).15 G +(et these.)168.99 676.93 Q EP %%Page: 22 17 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-22 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .433(hardly e) -102 96 R -.15(ve)-.25 G 2.933(rn).15 G(ecessary)155.226 96 Q 5.433(.M)-.65 G -.433(ode \231q\232 puts the minimum load on your machine, b)205.269 96 R .432 -(ut means that deli)-.2 F -.15(ve)-.25 G(ry).15 E .437 -(may be delayed for up to the queue interv)102 108 R 2.937(al. Mode)-.25 F .437 -(\231b\232 is probably a good compromise.)2.937 F(Ho)5.437 E(we)-.25 E -.15(ve) --.25 G -.4(r,).15 G .033(this mode can cause lar)102 120 R .032 -(ge numbers of processes if you ha)-.18 F .332 -.15(ve a m)-.2 H .032 -(ailer that tak).15 F .032(es a long time to deli)-.1 F -.15(ve)-.25 G(r).15 E -2.5(am)102 132 S(essage.)116.72 132 Q .337 -(If you run in mode \231q\232 \(queue only\) or \231b\232 \(deli)127 148.2 R --.15(ve)-.25 G 2.838(ri).15 G 2.838(nb)341.09 148.2 S(ackground\))353.928 148.2 -Q/F2 10/Times-Italic@0 SF(sendmail)2.838 E F1 .338(will not e)2.838 F(xpand) --.15 E 1.314(aliases and follo)102 160.2 R 3.813(w.)-.25 G(forw)182.901 160.2 Q -1.313(ard \214les upon initial receipt of the mail.)-.1 F 1.313 -(This speeds up the response to)6.313 F(RCPT commands.)102 172.2 Q F0 2.5 -(4.6. Log)87 196.2 R(Le)2.5 E -.1(ve)-.15 G(l).1 E F1 .189(The le)127 212.4 R --.15(ve)-.25 G 2.689(lo).15 G 2.689(fl)171.968 212.4 S .189 -(ogging can be set for)180.767 212.4 R F2(sendmail)2.689 E F1 5.189(.T)C .189 -(he def)317.991 212.4 R .19(ault using a standard con\214guration table)-.1 F -(is le)102 224.4 Q -.15(ve)-.25 G 2.5(l9).15 G 5(.T)137.71 224.4 S(he le)151.32 -224.4 Q -.15(ve)-.25 G(ls are as follo).15 E(ws:)-.25 E 31(0N)102 240.6 S 2.5 -(ol)145.22 240.6 S(ogging.)155.5 240.6 Q 31(1S)102 256.8 S(erious system f) -143.56 256.8 Q(ailures and potential security problems.)-.1 E 31(2L)102 273 S -(ost communications \(netw)144.11 273 Q(ork problems\) and protocol f)-.1 E -(ailures.)-.1 E 31(3O)102 289.2 S(ther serious f)145.22 289.2 Q(ailures.)-.1 E -31(4M)102 305.4 S(inor f)146.89 305.4 Q(ailures.)-.1 E 31(5M)102 321.6 S -(essage collection statistics.)146.89 321.6 Q 31(6C)102 337.8 S -(reation of error messages, VRFY and EXPN commands.)144.67 337.8 Q 31(7D)102 -354 S(eli)145.22 354 Q -.15(ve)-.25 G(ry f).15 E(ailures \(host or user unkno) --.1 E(wn, etc.\).)-.25 E 31(8S)102 370.2 S(uccessful deli)143.56 370.2 Q -.15 -(ve)-.25 G(ries.).15 E 31(9M)102 386.4 S -(essages being deferred \(due to a host being do)146.89 386.4 Q(wn, etc.\).) --.25 E 23.5(10 Database)102 402.6 R -.15(ex)2.5 G(pansion \(alias, forw).15 E -(ard, and userdb lookups\).)-.1 E 23.5(15 Automatic)102 418.8 R -(alias database reb)2.5 E(uilds.)-.2 E 23.5(20 Logs)102 435 R .603 -(attempts to run lock)3.103 F .603(ed queue \214les.)-.1 F .603 -(These are not errors, b)5.603 F .603(ut can be useful to note if)-.2 F -(your queue appears to be clogged.)138 447 Q 23.5(30 Lost)102 463.2 R -(locks \(only if using lockf instead of \215ock\).)2.5 E(Additionally)102 479.4 -Q 3.683(,v)-.65 G 1.183(alues abo)162.843 479.4 R 1.483 -.15(ve 6)-.15 H 3.683 -(4a).15 G 1.183(re reserv)232.462 479.4 R 1.183(ed for e)-.15 F 1.183 -(xtremely v)-.15 F 1.184(erbose deb)-.15 F 1.184(uggging output.)-.2 F 1.184 -(No normal)6.184 F(site w)102 491.4 Q(ould e)-.1 E -.15(ve)-.25 G 2.5(rs).15 G -(et these.)168.99 491.4 Q F0 2.5(4.7. File)87 515.4 R(Modes)2.5 E F1 .813 -(There are a number of \214les that may ha)127 531.6 R 1.113 -.15(ve a n)-.2 H -.813(umber of modes.).15 F .813(The modes depend on what)5.813 F -(functionality you w)102 543.6 Q(ant and the le)-.1 E -.15(ve)-.25 G 2.5(lo).15 -G 2.5(fs)253.15 543.6 S(ecurity you require.)262.87 543.6 Q F0 2.5(4.7.1. T)102 -567.6 R 2.5(os)-.92 G(uid or not to suid?)146.64 567.6 Q F2(Sendmail)142 583.8 -Q F1 .933(can safely be made setuid to root.)3.433 F .934 -(At the point where it is about to)5.934 F F2 -.2(ex)3.434 G(ec).2 E F1 .934 -(\(2\) a)1.666 F(mailer)117 595.8 Q 2.583(,i)-.4 G 2.583(tc)150.013 595.8 S +(Installation and Operation Guide)2.5 E 2.5(4.7. File)87 96 R(Modes)2.5 E/F1 10 +/Times-Roman@0 SF .813(There are a number of \214les that may ha)127 112.2 R +1.113 -.15(ve a n)-.2 H .813(umber of modes.).15 F .813 +(The modes depend on what)5.813 F(functionality you w)102 124.2 Q +(ant and the le)-.1 E -.15(ve)-.25 G 2.5(lo).15 G 2.5(fs)253.15 124.2 S +(ecurity you require.)262.87 124.2 Q F0 2.5(4.7.1. T)102 148.2 R 2.5(os)-.92 G +(uid or not to suid?)146.64 148.2 Q/F2 10/Times-Italic@0 SF(Sendmail)142 164.4 +Q F1 .934(can safely be made setuid to root.)3.434 F .934 +(At the point where it is about to)5.934 F F2 -.2(ex)3.433 G(ec).2 E F1 .933 +(\(2\) a)1.666 F(mailer)117 176.4 Q 2.582(,i)-.4 G 2.582(tc)150.012 176.4 S .082(hecks to see if the userid is zero; if so, it resets the userid and group\ -id to a def)159.816 595.8 R .082(ault \(set)-.1 F .576(by the)117 607.8 R F0(u) -3.076 E F1(and)3.076 E F0(g)3.076 E F1 3.076(options\). \(This)3.076 F .576 +id to a def)159.814 176.4 R .083(ault \(set)-.1 F .577(by the)117 188.4 R F0(u) +3.077 E F1(and)3.077 E F0(g)3.077 E F1 3.077(options\). \(This)3.077 F .576 (can be o)3.076 F -.15(ve)-.15 G .576(rridden by setting the).15 F F0(S)3.076 E -F1 .577(\215ag to the mailer for mailers)3.077 F 1.532 -(that are trusted and must be called as root.\))117 619.8 R(Ho)6.531 E(we)-.25 -E -.15(ve)-.25 G 2.331 -.4(r, t).15 H 1.531 -(his will cause mail processing to be).4 F(accounted \(using)117 631.8 Q F2(sa) +F1 .576(\215ag to the mailer for mailers)3.076 F 1.531 +(that are trusted and must be called as root.\))117 200.4 R(Ho)6.531 E(we)-.25 +E -.15(ve)-.25 G 2.331 -.4(r, t).15 H 1.532 +(his will cause mail processing to be).4 F(accounted \(using)117 212.4 Q F2(sa) 2.5 E F1(\(8\)\) to root rather than to the user sending the mail.)1.666 E F0 -2.5(4.7.2. Should)102 655.8 R(my alias database be writable?)2.5 E F1 .058 -(At Berk)142 672 R(ele)-.1 E 2.558(yw)-.15 G 2.558(eh)200.186 672 S -2.25 -.2 -(av e)212.184 672 T .058(the alias database \(/etc/aliases*\) mode 644.)2.758 F -.058(While this is not as \215e)5.058 F(x-)-.15 E 1.719 -(ible as if the database were more 666, it a)117 684 R -.2(vo)-.2 G 1.718 +2.5(4.7.2. Should)102 236.4 R(my alias database be writable?)2.5 E F1 .058 +(At Berk)142 252.6 R(ele)-.1 E 2.558(yw)-.15 G 2.558(eh)200.186 252.6 S -2.25 +-.2(av e)212.184 252.6 T .058(the alias database \(/etc/aliases*\) mode 644.) +2.758 F .058(While this is not as \215e)5.058 F(x-)-.15 E 1.718 +(ible as if the database were more 666, it a)117 264.6 R -.2(vo)-.2 G 1.719 (ids potential security problems with a globally).2 F(writable database.)117 -696 Q 1.19(The database that)142 712.2 R F2(sendmail)3.69 E F1 1.191 -(actually used is represented by the tw)3.691 F 3.691<6f8c>-.1 G(les)429.118 -712.2 Q F2(aliases.dir)3.691 E F1(and)3.691 E F2(aliases.pa)117 724.2 Q(g)-.1 E -F1 1.936(\(both in /etc\) \(or)4.436 F F2(aliases.db)4.436 E F1 1.936 -(if you are running with the ne)4.436 F 4.435(wB)-.25 G(erk)435.955 724.2 Q -(ele)-.1 E 4.435(yd)-.15 G(atabase)474.57 724.2 Q EP -%%Page: 23 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-23)452.9 60 Q/F1 10/Times-Roman@0 SF(primiti)117 96 Q -.15(ve)-.25 G -4.855(s\). The).15 F 2.356 -(mode on these \214les should match the mode on /etc/aliases.)4.855 F(If)7.356 -E/F2 10/Times-Italic@0 SF(aliases)4.856 E F1(is)4.856 E .662 -(writable and the DBM \214les \()117 108 R F2(aliases.dir)A F1(and)3.161 E F2 -(aliases.pa)3.161 E(g)-.1 E F1 3.161(\)a)C .661 -(re not, users will be unable to re\215ect)353.843 108 R 1.037 -(their desired changes through to the actual database.)117 120 R(Ho)6.037 E(we) --.25 E -.15(ve)-.25 G 1.837 -.4(r, i).15 H(f).4 E F2(aliases)3.537 E F1 1.038 -(is read-only and the)3.537 F(DBM \214les are writable, a slightly sophisticat\ -ed user can arrange to steal mail an)117 132 Q(yw)-.15 E(ay)-.1 E(.)-.65 E .621 -(If your DBM \214les are not writable by the w)142 148.2 R .62 -(orld or you do not ha)-.1 F .92 -.15(ve a)-.2 H(uto-reb).15 E .62 +276.6 Q 1.191(The database that)142 292.8 R F2(sendmail)3.691 E F1 1.191 +(actually used is represented by the tw)3.691 F 3.69<6f8c>-.1 G(les)429.12 +292.8 Q F2(aliases.dir)3.69 E F1(and)3.69 E F2(aliases.pa)117 304.8 Q(g)-.1 E +F1 .158(\(both in /etc\) \(or)2.658 F F2(aliases.db)2.658 E F1 .159 +(if you are running with the ne)2.659 F 2.659(wB)-.25 G(erk)412.852 304.8 Q +(ele)-.1 E 2.659(yd)-.15 G .159(atabase prim-)449.691 304.8 R(iti)117 316.8 Q +-.15(ve)-.25 G 3.607(s\). The).15 F 1.107 +(mode on these \214les should match the mode on /etc/aliases.)3.607 F(If)6.106 +E F2(aliases)3.606 E F1 1.106(is writable)3.606 F 1.624(and the DBM \214les \() +117 328.8 R F2(aliases.dir)A F1(and)4.124 E F2(aliases.pa)4.124 E(g)-.1 E F1 +4.124(\)a)C 1.624(re not, users will be unable to re\215ect their)324.648 328.8 +R .72(desired changes through to the actual database.)117 340.8 R(Ho)5.719 E +(we)-.25 E -.15(ve)-.25 G 1.519 -.4(r, i).15 H(f).4 E F2(aliases)3.219 E F1 +.719(is read-only and the DBM)3.219 F(\214les are writable, a slightly sophist\ +icated user can arrange to steal mail an)117 352.8 Q(yw)-.15 E(ay)-.1 E(.)-.65 +E .62(If your DBM \214les are not writable by the w)142 369 R .621 +(orld or you do not ha)-.1 F .921 -.15(ve a)-.2 H(uto-reb).15 E .621 (uild enabled)-.2 F .564(\(with the \231D\232 option\), then you must be caref\ -ul to reconstruct the alias database each time you)117 160.2 R(change the te) -117 172.2 Q(xt v)-.15 E(ersion:)-.15 E(ne)157 188.4 Q -.1(wa)-.25 G(liases).1 E -(If this step is ignored or for)117 204.6 Q(gotten an)-.18 E 2.5(yi)-.15 G -(ntended changes will also be ignored or for)273.32 204.6 Q(gotten.)-.18 E F0 -2.5(4.8. Connection)87 228.6 R(Caching)2.5 E F1 .642 -(When processing the queue,)127 244.8 R F2(sendmail)3.142 E F1 .642 +ul to reconstruct the alias database each time you)117 381 R(change the te)117 +393 Q(xt v)-.15 E(ersion:)-.15 E(ne)157 409.2 Q -.1(wa)-.25 G(liases).1 E +(If this step is ignored or for)117 425.4 Q(gotten an)-.18 E 2.5(yi)-.15 G +(ntended changes will also be ignored or for)273.32 425.4 Q(gotten.)-.18 E F0 +2.5(4.8. Connection)87 449.4 R(Caching)2.5 E F1 .642 +(When processing the queue,)127 465.6 R F2(sendmail)3.142 E F1 .642 (will try to k)3.142 F .642(eep the last fe)-.1 F 3.142(wo)-.25 G .642 -(pen connections open to)405.144 244.8 R -.2(avo)102 256.8 S +(pen connections open to)405.144 465.6 R -.2(avo)102 477.6 S (id startup and shutdo).2 E(wn costs.)-.25 E (This only applies to IPC connections.)5 E .286 -(When trying to open a connection the cache is \214rst searched.)127 273 R .287 -(If an open connection is found,)5.286 F .92 -(it is probed to see if it is still acti)102 285 R 1.22 -.15(ve b)-.25 H 3.42 -(ys).15 G .92(ending a)270.892 285 R/F3 9/Times-Roman@0 SF(NOOP)3.42 E F1 3.42 +(When trying to open a connection the cache is \214rst searched.)127 493.8 R +.286(If an open connection is found,)5.286 F .92 +(it is probed to see if it is still acti)102 505.8 R 1.22 -.15(ve b)-.25 H 3.42 +(ys).15 G .92(ending a)270.89 505.8 R/F3 9/Times-Roman@0 SF(NOOP)3.42 E F1 3.42 (command. It)3.42 F .92(is not an error if this f)3.42 F(ails;)-.1 E -(instead, the connection is closed and reopened.)102 297 Q -1 -.8(Tw o)127 -313.2 T .207(parameters control the connection cache.)3.506 F(The)5.207 E F0(k) -2.707 E F1 .207(option de\214nes the number of simultane-)2.707 F 1.82 -(ous open connections that will be permitted.)102 325.2 R 1.819 -(If it is set to zero, connections will be closed as)6.82 F .795 -(quickly as possible.)102 337.2 R .796(The def)5.796 F .796(ault is one.)-.1 F +(instead, the connection is closed and reopened.)102 517.8 Q -1 -.8(Tw o)127 +534 T .207(parameters control the connection cache.)3.507 F(The)5.207 E F0(k) +2.707 E F1 .207(option de\214nes the number of simultane-)2.707 F 1.819 +(ous open connections that will be permitted.)102 546 R 1.82 +(If it is set to zero, connections will be closed as)6.819 F .796 +(quickly as possible.)102 558 R .796(The def)5.796 F .796(ault is one.)-.1 F .796(This should be set as appropriate for your system size; it)5.796 F -(will limit the amount of system resources that)102 349.2 Q F2(sendmail)2.5 E -F1(will use during queue runs.)2.5 E(The)127 365.4 Q F0(K)3.648 E F1 1.148 -(option speci\214es the maximum time that an)3.648 F 3.648(yc)-.15 G 1.148 -(ached connection will be permitted to)347.452 365.4 R 2.895(idle. When)102 -377.4 R .395(the idle time e)2.895 F .395(xceeds this v)-.15 F .396 -(alue the connection is closed.)-.25 F .396(This number should be small)5.396 F -.163(\(under ten minutes\) to pre)102 389.4 R -.15(ve)-.25 G .163 -(nt you from grabbing too man).15 F 2.663(yr)-.15 G .162 -(esources from other hosts.)347.49 389.4 R .162(The def)5.162 F(ault)-.1 E -(is \214v)102 401.4 Q 2.5(em)-.15 G(inutes.)136.3 401.4 Q F0 2.5(4.9. Name)87 -425.4 R(Ser)2.5 E -.1(ve)-.1 G 2.5(rA).1 G(ccess)172.33 425.4 Q F1 .421 -(If your system supports the name serv)127 441.6 R(er)-.15 E 2.921(,t)-.4 G -.421(hen the probability is that)297.147 441.6 R F2(sendmail)2.921 E F1 .422 -(will be using it)2.922 F(re)102 453.6 Q -.05(ga)-.15 G 1.432(rdless of ho).05 -F 3.932(wy)-.25 G 1.432(ou con\214gure)184.436 453.6 R F2(sendmail)3.932 E F1 -6.432(.I)C 3.932(np)288.442 453.6 S(articular)302.374 453.6 Q 3.932(,t)-.4 G -1.431(he system routine)344.506 453.6 R F2 -.1(ge)3.931 G(thostbyname).1 E F1 -1.431(\(3\) is)B .43(used to look up host names, and most v)102 465.6 R .431 -(endor v)-.15 F .431(ersions try some combination of DNS, NIS, and \214le)-.15 -F(lookup in /etc/hosts.)102 477.6 Q(Ho)127 493.8 Q(we)-.25 E -.15(ve)-.25 G -2.12 -.4(r, i).15 H 3.82(fy).4 G 1.32(ou do not ha)183.85 493.8 R 1.62 -.15 +(will limit the amount of system resources that)102 570 Q F2(sendmail)2.5 E F1 +(will use during queue runs.)2.5 E(The)127 586.2 Q F0(K)3.647 E F1 1.148 +(option speci\214es the maximum time that an)3.647 F 3.648(yc)-.15 G 1.148 +(ached connection will be permitted to)347.45 586.2 R 2.896(idle. When)102 +598.2 R .396(the idle time e)2.896 F .396(xceeds this v)-.15 F .396 +(alue the connection is closed.)-.25 F .395(This number should be small)5.395 F +.162(\(under ten minutes\) to pre)102 610.2 R -.15(ve)-.25 G .163 +(nt you from grabbing too man).15 F 2.663(yr)-.15 G .163 +(esources from other hosts.)347.485 610.2 R .163(The def)5.163 F(ault)-.1 E +(is \214v)102 622.2 Q 2.5(em)-.15 G(inutes.)136.3 622.2 Q F0 2.5(4.9. Name)87 +646.2 R(Ser)2.5 E -.1(ve)-.1 G 2.5(rA).1 G(ccess)172.33 646.2 Q F1 .422 +(If your system supports the name serv)127 662.4 R(er)-.15 E 2.921(,t)-.4 G +.421(hen the probability is that)297.151 662.4 R F2(sendmail)2.921 E F1 .421 +(will be using it)2.921 F(re)102 674.4 Q -.05(ga)-.15 G 1.431(rdless of ho).05 +F 3.931(wy)-.25 G 1.431(ou con\214gure)184.433 674.4 R F2(sendmail)3.932 E F1 +6.432(.I)C 3.932(np)288.438 674.4 S(articular)302.37 674.4 Q 3.932(,t)-.4 G +1.432(he system routine)344.502 674.4 R F2 -.1(ge)3.932 G(thostbyname).1 E F1 +1.432(\(3\) is)B .431(used to look up host names, and most v)102 686.4 R .431 +(endor v)-.15 F .43(ersions try some combination of DNS, NIS, and \214le)-.15 F +(lookup in /etc/hosts.)102 698.4 Q EP +%%Page: 23 18 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-23)452.9 60 Q/F1 10/Times-Roman@0 SF(Ho)127 96 Q(we)-.25 E -.15(ve)-.25 +G 2.12 -.4(r, i).15 H 3.82(fy).4 G 1.32(ou do not ha)183.85 96 R 1.62 -.15 (ve a n)-.2 H(ameserv).15 E 1.32 -(er con\214gured at all, such as at a UUCP-only site,)-.15 F F2(sendmail)102 -505.8 Q F1 .14(will get a \231connection refused\232 message when it tries to \ -connect to the name serv)2.64 F .14(er \(either)-.15 F .915 -(indirectly by calling)102 517.8 R F2 -.1(ge)3.415 G(thostbyname).1 E F1 .915 -(or directly by looking up MX records\).)3.415 F .915(If the)5.915 F F0(I)3.415 -E F1 .915(option is set,)3.415 F F2(sendmail)102 529.8 Q F1 .135 +(er con\214gured at all, such as at a UUCP-only site,)-.15 F/F2 10 +/Times-Italic@0 SF(sendmail)102 108 Q F1 .14(will get a \231connection refused\ +\232 message when it tries to connect to the name serv)2.64 F .14(er \(either) +-.15 F .915(indirectly by calling)102 120 R F2 -.1(ge)3.415 G(thostbyname).1 E +F1 .915(or directly by looking up MX records\).)3.415 F .915(If the)5.915 F F0 +(I)3.415 E F1 .915(option is set,)3.415 F F2(sendmail)102 132 Q F1 .135 (will interpret this to mean a temporary f)2.635 F .135 -(ailure and will queue the mail for later processing;)-.1 F .884 -(otherwise, it ignores the name serv)102 541.8 R .884(er data.)-.15 F .884 -(If your name serv)5.884 F .884(er is running properly)-.15 F 3.383(,t)-.65 G -.883(he setting of)452.794 541.8 R 1.164(this option is not rele)102 553.8 R --.25(va)-.25 G 1.164(nt; ho).25 F(we)-.25 E -.15(ve)-.25 G 1.964 -.4(r, i).15 H -3.664(ti).4 G 3.664(si)265.818 553.8 S 1.164 -(mportant that it be set properly to mak)276.152 553.8 R 3.665(ee)-.1 G 1.165 -(rror handling)450.345 553.8 R -.1(wo)102 565.8 S(rk properly).1 E(.)-.65 E -.633(This option also allo)127 582 R .633(ws you to tweak name serv)-.25 F .633 -(er options.)-.15 F .632(The command line tak)5.633 F .632(es a series)-.1 F -.442(of \215ags as documented in)102 594 R F2 -.37(re)2.942 G(solver).37 E F1 +(ailure and will queue the mail for later processing;)-.1 F .883 +(otherwise, it ignores the name serv)102 144 R .884(er data.)-.15 F .884 +(If your name serv)5.884 F .884(er is running properly)-.15 F 3.384(,t)-.65 G +.884(he setting of)452.792 144 R 1.165(this option is not rele)102 156 R -.25 +(va)-.25 G 1.164(nt; ho).25 F(we)-.25 E -.15(ve)-.25 G 1.964 -.4(r, i).15 H +3.664(ti).4 G 3.664(si)265.82 156 S 1.164 +(mportant that it be set properly to mak)276.154 156 R 3.664(ee)-.1 G 1.164 +(rror handling)450.346 156 R -.1(wo)102 168 S(rk properly).1 E(.)-.65 E .632 +(This option also allo)127 184.2 R .633(ws you to tweak name serv)-.25 F .633 +(er options.)-.15 F .633(The command line tak)5.633 F .633(es a series)-.1 F +.442(of \215ags as documented in)102 196.2 R F2 -.37(re)2.942 G(solver).37 E F1 .442(\(3\) \(with the leading \231RES_\232 deleted\).)B .442 -(Each can be preceded by)5.442 F(an optional `+' or `)102 606 Q/F4 10/Symbol SF -(-)A F1 2.5('. F)B(or e)-.15 E(xample, the line)-.15 E(OIT)142 622.2 Q(rue +AA) --.35 E(ONL)-.55 E(Y)-1 E F4(-)2.5 E F1(DNSRCH)A .862(turns on the AA)102 638.4 -R(ONL)-.55 E 3.362(Y\()-1 G .862(accept authoritati)201.658 638.4 R 1.162 -.15 -(ve a)-.25 H .861(nswers only\) and turns of).15 F 3.361(ft)-.25 G .861 -(he DNSRCH \(search the)402.827 638.4 R 2.039(domain path\) options.)102 650.4 -R 2.039(Most resolv)7.039 F 2.039(er libraries def)-.15 F 2.039 -(ault DNSRCH, DEFN)-.1 F 2.039(AMES, and RECURSE)-.35 F .187 -(\215ags on and all others of)102 662.4 R 2.687(f. Note)-.25 F .186 -(the use of the initial `)2.686 F(`T)-.74 E(rue')-.35 E 2.686('\212t)-.74 G -.186(his is for compatibility with pre)365.82 662.4 R(vi-)-.25 E(ous v)102 -674.4 Q(ersions of)-.15 E F2(sendmail)2.5 E F1 2.5(,b)C -(ut is not otherwise necessary)210.81 674.4 Q(.)-.65 E -1.11(Ve)127 690.6 S -2.256(rsion le)1.11 F -.15(ve)-.25 G 4.756(l1c).15 G 2.256 -(on\214gurations turn DNSRCH and DEFN)200.298 690.6 R 2.257(AMES of)-.35 F -4.757(fw)-.25 G 2.257(hen doing deli)424.896 690.6 R -.15(ve)-.25 G(ry).15 E -2.06(lookups, b)102 702.6 R 2.06(ut lea)-.2 F 2.36 -.15(ve t)-.2 H 2.06 +(Each can be preceded by)5.442 F(an optional `+' or `)102 208.2 Q/F3 10/Symbol +SF(-)A F1 2.5('. F)B(or e)-.15 E(xample, the line)-.15 E(OIT)142 224.4 Q +(rue +AA)-.35 E(ONL)-.55 E(Y)-1 E F3(-)2.5 E F1(DNSRCH)A .861(turns on the AA) +102 240.6 R(ONL)-.55 E 3.361(Y\()-1 G .861(accept authoritati)201.654 240.6 R +1.161 -.15(ve a)-.25 H .861(nswers only\) and turns of).15 F 3.362(ft)-.25 G +.862(he DNSRCH \(search the)402.824 240.6 R 2.039(domain path\) options.)102 +252.6 R 2.039(Most resolv)7.039 F 2.039(er libraries def)-.15 F 2.039 +(ault DNSRCH, DEFN)-.1 F 2.039(AMES, and RECURSE)-.35 F .186 +(\215ags on and all others of)102 264.6 R 2.686(f. Note)-.25 F .186 +(the use of the initial `)2.686 F(`T)-.74 E(rue')-.35 E -5.185 2.686('\212 t) +-.74 H .187(his is for compatibility with pre)365.815 264.6 R(vi-)-.25 E(ous v) +102 276.6 Q(ersions of)-.15 E F2(sendmail)2.5 E F1 2.5(,b)C +(ut is not otherwise necessary)210.81 276.6 Q(.)-.65 E -1.11(Ve)127 292.8 S +2.257(rsion le)1.11 F -.15(ve)-.25 G 4.757(l1c).15 G 2.256 +(on\214gurations turn DNSRCH and DEFN)200.301 292.8 R 2.256(AMES of)-.35 F +4.756(fw)-.25 G 2.256(hen doing deli)424.898 292.8 R -.15(ve)-.25 G(ry).15 E +2.06(lookups, b)102 304.8 R 2.06(ut lea)-.2 F 2.36 -.15(ve t)-.2 H 2.06 (hem on e).15 F -.15(ve)-.25 G 2.06(rywhere else.).15 F -1.11(Ve)7.06 G 2.06 (rsion 8 of)1.11 F F2(sendmail)4.56 E F1 2.06(ignores them when doing)4.56 F .313(canoni\214cation lookups \(that is, when using $[ ... $]\), and al)102 -714.6 R -.1(wa)-.1 G .313(ys does the search.).1 F .313(If you don')5.313 F -2.813(tw)-.18 G(ant)491.78 714.6 Q EP -%%Page: 24 19 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-24 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -(to do automatic name e)102 96 Q(xtension, don')-.15 E 2.5(tc)-.18 G -(all $[ ... $].)261.93 96 Q .189(The search rules for $[ ... $] are some)127 -112.2 R .189(what dif)-.25 F .189(ferent than usual.)-.25 F .189 -(If the name \(that is, the `)5.189 F(`...)-.74 E -.74('')-.7 G(\)).74 E .109 -(has at least one dot, it al)102 124.2 R -.1(wa)-.1 G .109 -(ys tries the unmodi\214ed name \214rst.).1 F .11(If that f)5.11 F .11 +316.8 R -.1(wa)-.1 G .313(ys does the search.).1 F .313(If you don')5.313 F +2.812(tw)-.18 G(ant)491.78 316.8 Q(to do automatic name e)102 328.8 Q +(xtension, don')-.15 E 2.5(tc)-.18 G(all $[ ... $].)261.93 328.8 Q .189 +(The search rules for $[ ... $] are some)127 345 R .189(what dif)-.25 F .189 +(ferent than usual.)-.25 F .189(If the name \(that is, the `)5.189 F(`...)-.74 +E -.74('')-.7 G(\)).74 E .11(has at least one dot, it al)102 357 R -.1(wa)-.1 G +.11(ys tries the unmodi\214ed name \214rst.).1 F .109(If that f)5.109 F .109 (ails, it tries the reduced search)-.1 F .124 -(path, and lastly tries the unmodi\214ed name \(b)102 136.2 R .124 -(ut only for names without a dot, since names with a dot)-.2 F(ha)102 148.2 Q -.788 -.15(ve a)-.2 H .488(lready been tried\).).15 F .488(This allo)5.488 F -.489(ws names such as `)-.25 F(`utc.CS')-.74 E 2.989('t)-.74 G 2.989(om)362.805 -148.2 S .489(atch the site in Czechoslo)378.574 148.2 R -.25(va)-.15 G(kia).25 -E 1.588(rather than the site in your local Computer Science department.)102 -160.2 R 1.587(It also prefers A and CN)6.587 F(AME)-.35 E .512(records o)102 -172.2 R -.15(ve)-.15 G 3.012(rM).15 G 3.012(Xr)163.814 172.2 S .512 -(ecords \212 that is, if it \214nds an MX record it mak)177.376 172.2 R .513 -(es note of it, b)-.1 F .513(ut k)-.2 F .513(eeps looking.)-.1 F 1.542(This w) -102 184.2 R(ay)-.1 E 4.042(,i)-.65 G 4.042(fy)149.054 184.2 S 1.541(ou ha) -161.426 184.2 R 1.841 -.15(ve a w)-.2 H 1.541 +(path, and lastly tries the unmodi\214ed name \(b)102 369 R .124 +(ut only for names without a dot, since names with a dot)-.2 F(ha)102 381 Q +.789 -.15(ve a)-.2 H .489(lready been tried\).).15 F .489(This allo)5.489 F +.489(ws names such as `)-.25 F(`utc.CS')-.74 E 2.989('t)-.74 G 2.988(om)362.81 +381 S .488(atch the site in Czechoslo)378.578 381 R -.25(va)-.15 G(kia).25 E +1.587(rather than the site in your local Computer Science department.)102 393 R +1.588(It also prefers A and CN)6.587 F(AME)-.35 E .513(records o)102 405 R -.15 +(ve)-.15 G 3.013(rM).15 G 3.013(Xr)163.816 405 S .513 +(ecords \212 that is, if it \214nds an MX record it mak)177.379 405 R .512 +(es note of it, b)-.1 F .512(ut k)-.2 F .512(eeps looking.)-.1 F 1.541(This w) +102 417 R(ay)-.1 E 4.041(,i)-.65 G 4.041(fy)149.052 417 S 1.541(ou ha)161.423 +417 R 1.841 -.15(ve a w)-.2 H 1.541 (ildcard MX record matching your domain, it will not assume that all).15 F -(names match.)102 196.2 Q F0 2.5(4.10. Mo)87 220.2 R(ving the P)-.1 E(er)-.2 E +(names match.)102 429 Q F0 2.5(4.10. Mo)87 453 R(ving the P)-.1 E(er)-.2 E (-User F)-.37 E(orward Files)-.25 E F1 .772(Some sites mount each user')127 -236.4 R 3.272(sh)-.55 G .772(ome directory from a local disk on their w)256.13 -236.4 R .772(orkstation, so that)-.1 F .576(local access is f)102 248.4 R 3.076 -(ast. Ho)-.1 F(we)-.25 E -.15(ve)-.25 G 1.376 -.4(r, t).15 H .575 -(he result is that .forw).4 F .575(ard \214le lookups are slo)-.1 F 4.375 -.65 -(w. I)-.25 H 3.075(ns).65 G .575(ome cases, mail)439.25 248.4 R .216(can e)102 -260.4 R -.15(ve)-.25 G 2.716(nb).15 G 2.716(ed)144.792 260.4 S(eli)156.948 -260.4 Q -.15(ve)-.25 G .216 +469.2 R 3.272(sh)-.55 G .772(ome directory from a local disk on their w)256.13 +469.2 R .772(orkstation, so that)-.1 F .575(local access is f)102 481.2 R 3.075 +(ast. Ho)-.1 F(we)-.25 E -.15(ve)-.25 G 1.375 -.4(r, t).15 H .575 +(he result is that .forw).4 F .575(ard \214le lookups are slo)-.1 F 4.376 -.65 +(w. I)-.25 H 3.076(ns).65 G .576(ome cases, mail)439.248 481.2 R .216(can e)102 +493.2 R -.15(ve)-.25 G 2.716(nb).15 G 2.716(ed)144.792 493.2 S(eli)156.948 +493.2 Q -.15(ve)-.25 G .216 (red on machines inappropriately because of a \214le serv).15 F .216 (er being do)-.15 F 2.716(wn. The)-.25 F(perfor)2.716 E(-)-.2 E -(mance can be especially bad if you run the automounter)102 272.4 Q(.)-.55 E -(The)127 288.6 Q F0(J)2.5 E F1(option allo)2.5 E(ws you to set a path of forw) +(mance can be especially bad if you run the automounter)102 505.2 Q(.)-.55 E +(The)127 521.4 Q F0(J)2.5 E F1(option allo)2.5 E(ws you to set a path of forw) -.25 E(ard \214les.)-.1 E -.15(Fo)5 G 2.5(re).15 G -(xample, the con\214g \214le line)366.6 288.6 Q(OJ/v)142 304.8 Q(ar/forw)-.25 E -(ard/$u:$z/.forw)-.1 E(ard)-.1 E -.1(wo)102 321 S .208 -(uld \214rst look for a \214le with the same name as the user').1 F 2.707(sl) --.55 G .207(ogin in /v)343.191 321 R(ar/forw)-.25 E .207 -(ard; if that is not found)-.1 F .129 -(\(or is inaccessible\) the \214le \231.forw)102 333 R .129 -(ard\232 in the user')-.1 F 2.629(sh)-.55 G .13(ome directory is searched.) -311.901 333 R 2.63(At)5.13 G .13(ruly perv)435.02 333 R .13(erse site)-.15 F -(could also search by sender by using $r)102 345 Q 2.5(,$)-.4 G(s, or $f.) -269.07 345 Q .69(If you create a directory such as /v)127 361.2 R(ar/forw)-.25 -E .69(ard, it should be mode 1777 \(that is, the stick)-.1 F 3.19(yb)-.15 G(it) -498.44 361.2 Q(should be set\).)102 373.2 Q -(Users should create the \214les mode 644.)5 E F0 2.5(4.11. Fr)87 397.2 R -(ee Space)-.18 E F1 1.122(On systems that ha)127 413.4 R 1.422 -.15(ve t)-.2 H -(he).15 E/F2 10/Times-Italic@0 SF(statfs)3.622 E F1 1.123 +(xample, the con\214g \214le line)366.6 521.4 Q(OJ/v)142 537.6 Q(ar/forw)-.25 E +(ard/$u:$z/.forw)-.1 E(ard)-.1 E -.1(wo)102 553.8 S .207 +(uld \214rst look for a \214le with the same name as the user').1 F 2.708(sl) +-.55 G .208(ogin in /v)343.184 553.8 R(ar/forw)-.25 E .208 +(ard; if that is not found)-.1 F .13 +(\(or is inaccessible\) the \214le \231.forw)102 565.8 R .129 +(ard\232 in the user')-.1 F 2.629(sh)-.55 G .129(ome directory is searched.) +311.907 565.8 R 2.629(At)5.129 G .129(ruly perv)435.022 565.8 R .129(erse site) +-.15 F(could also search by sender by using $r)102 577.8 Q 2.5(,$)-.4 G +(s, or $f.)269.07 577.8 Q .69(If you create a directory such as /v)127 594 R +(ar/forw)-.25 E .69(ard, it should be mode 1777 \(that is, the stick)-.1 F 3.19 +(yb)-.15 G(it)498.44 594 Q(should be set\).)102 606 Q +(Users should create the \214les mode 644.)5 E F0 2.5(4.11. Fr)87 630 R +(ee Space)-.18 E F1 1.123(On systems that ha)127 646.2 R 1.423 -.15(ve t)-.2 H +(he).15 E F2(statfs)3.623 E F1 1.123 (\(2\) system call, you can specify a minimum number of free)B .61 -(blocks on the queue \214lesystem using the)102 425.4 R F0(b)3.11 E F1 3.11 +(blocks on the queue \214lesystem using the)102 658.2 R F0(b)3.11 E F1 3.11 (option. If)3.11 F .61(there are fe)3.11 F .61 -(wer than the indicated number of)-.25 F .406 +(wer than the indicated number of)-.25 F .407 (blocks free on the \214lesystem on which the queue is mounted the SMTP serv) -102 437.4 R .407(er will reject mail with)-.15 F(the 452 error code.)102 449.4 +102 670.2 R .406(er will reject mail with)-.15 F(the 452 error code.)102 682.2 Q(This in)5 E(vites the SMTP client to try ag)-.4 E(ain later)-.05 E(.)-.55 E -(Be)127 465.6 Q -.1(wa)-.25 G .746(re of setting this option too high; it can \ +(Be)127 698.4 Q -.1(wa)-.25 G .746(re of setting this option too high; it can \ cause rejection of email when that mail w).1 F(ould)-.1 E -(be processed without dif)102 477.6 Q(\214culty)-.25 E(.)-.65 E 1.772 -(This option can also specify an adv)127 493.8 R 1.773 -(ertised \231maximum message size\232 for hosts that speak)-.15 F(ESMTP)102 -505.8 Q(.)-1.11 E F0 2.5(4.12. Pri)87 529.8 R -.1(va)-.1 G(cy Flags).1 E F1 -(The)127 546 Q F0(p)3.591 E F1 1.091(option allo)3.591 F 1.091 -(ws you to set certain `)-.25 F(`pri)-.74 E -.25(va)-.25 G -.15(cy).25 G 2.571 --.74('' \215).15 H 3.591(ags. Actually).74 F 3.59(,m)-.65 G(an)409.27 546 Q -3.59(yo)-.15 G 3.59(ft)432.15 546 S 1.09(hem don')441.85 546 R 3.59(tg)-.18 G --2.15 -.25(iv e)492.18 546 T .254(you an)102 558 R 2.754(ye)-.15 G .254 -(xtra pri)141.088 558 R -.25(va)-.25 G -.15(cy).25 G 2.754(,r)-.5 G .254 -(ather just insisting that client SMTP serv)196.666 558 R .254 -(ers use the HELO command before)-.15 F(using certain commands.)102 570 Q .124 -(The option tak)127 586.2 R .124(es a series of \215ag names; the \214nal pri) --.1 F -.25(va)-.25 G .424 -.15(cy i).25 H 2.624(st).15 G .124(he inclusi) -367.708 586.2 R .424 -.15(ve o)-.25 H 2.624(ro).15 G 2.624(ft)434.06 586.2 S -.123(hose \215ags.)442.794 586.2 R -.15(Fo)5.123 G(r).15 E -.15(ex)102 598.2 S -(ample:).15 E(Op needmailhelo, noe)142 614.4 Q(xpn)-.15 E .928(insists that th\ -e HELO or EHLO command be used before a MAIL command is accepted and dis-)102 -630.6 R(ables the EXPN command.)102 642.6 Q .244(The \231restrictmailq\232 opt\ -ion restricts printing the queue to the group that o)127 658.8 R .244 -(wns the queue direc-)-.25 F(tory)102 670.8 Q 5(.I)-.65 G 2.5(ti)128.29 670.8 S -2.5(sa)136.35 670.8 S(bsurd to set this if you don')147.18 670.8 Q 2.5(ta)-.18 -G(lso protect the logs.)266.72 670.8 Q .83(The \231restrictqrun\232 option res\ -tricts people running the queue \(that is, using the)127 687 R F0<ad71>3.33 E -F1(command)3.33 E(line \215ag\) to root and the o)102 699 Q -(wner of the queue directory)-.25 E(.)-.65 E EP -%%Page: 25 20 +(be processed without dif)102 710.4 Q(\214culty)-.25 E(.)-.65 E EP +%%Page: 24 19 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-25)452.9 60 Q 2.5(4.13. Send)87 96 R(to Me T)2.5 E(oo)-.92 E/F1 10 -/Times-Roman@0 SF(Normally)127 112.2 Q(,)-.65 E/F2 10/Times-Italic@0 SF -(sendmail)3.424 E F1 .924(deletes the \(en)3.424 F -.15(ve)-.4 G .923 -(lope\) sender from an).15 F 3.423(yl)-.15 G .923(ist e)375.488 112.2 R 3.423 -(xpansions. F)-.15 F .923(or e)-.15 F .923(xample, if)-.15 F .761(\231matt\232\ +/F0 10/Times-Bold@0 SF 193.36(SMM:08-24 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.773 +(This option can also specify an adv)127 96 R 1.772 +(ertised \231maximum message size\232 for hosts that speak)-.15 F(ESMTP)102 108 +Q(.)-1.11 E F0 2.5(4.12. Pri)87 132 R -.1(va)-.1 G(cy Flags).1 E F1(The)127 +148.2 Q F0(p)3.59 E F1 1.09(option allo)3.59 F 1.091(ws you to set certain `) +-.25 F(`pri)-.74 E -.25(va)-.25 G -.15(cy).25 G 2.571 -.74('' \215).15 H 3.591 +(ags. Actually).74 F 3.591(,m)-.65 G(an)409.266 148.2 Q 3.591(yo)-.15 G 3.591 +(ft)432.147 148.2 S 1.091(hem don')441.848 148.2 R 3.591(tg)-.18 G -2.15 -.25 +(iv e)492.18 148.2 T .254(you an)102 160.2 R 2.754(ye)-.15 G .254(xtra pri) +141.088 160.2 R -.25(va)-.25 G -.15(cy).25 G 2.754(,r)-.5 G .254 +(ather just insisting that client SMTP serv)196.666 160.2 R .254 +(ers use the HELO command before)-.15 F(using certain commands.)102 172.2 Q +.123(The option tak)127 188.4 R .124 +(es a series of \215ag names; the \214nal pri)-.1 F -.25(va)-.25 G .424 -.15 +(cy i).25 H 2.624(st).15 G .124(he inclusi)367.706 188.4 R .424 -.15(ve o)-.25 +H 2.624(ro).15 G 2.624(ft)434.058 188.4 S .124(hose \215ags.)442.792 188.4 R +-.15(Fo)5.124 G(r).15 E -.15(ex)102 200.4 S(ample:).15 E(Op needmailhelo, noe) +142 216.6 Q(xpn)-.15 E .928(insists that the HELO or EHLO command be used befo\ +re a MAIL command is accepted and dis-)102 232.8 R(ables the EXPN command.)102 +244.8 Q .244(The \231restrictmailq\232 option restricts printing the queue to \ +the group that o)127 261 R .245(wns the queue direc-)-.25 F(tory)102 273 Q 5 +(.I)-.65 G 2.5(ti)128.29 273 S 2.5(sa)136.35 273 S +(bsurd to set this if you don')147.18 273 Q 2.5(ta)-.18 G +(lso protect the logs.)266.72 273 Q .83(The \231restrictqrun\232 option restri\ +cts people running the queue \(that is, using the)127 289.2 R F0<ad71>3.33 E F1 +(command)3.33 E(line \215ag\) to root and the o)102 301.2 Q +(wner of the queue directory)-.25 E(.)-.65 E F0 2.5(4.13. Send)87 325.2 R +(to Me T)2.5 E(oo)-.92 E F1(Normally)127 341.4 Q(,)-.65 E/F2 10/Times-Italic@0 +SF(sendmail)3.423 E F1 .923(deletes the \(en)3.423 F -.15(ve)-.4 G .923 +(lope\) sender from an).15 F 3.423(yl)-.15 G .924(ist e)375.484 341.4 R 3.424 +(xpansions. F)-.15 F .924(or e)-.15 F .924(xample, if)-.15 F .761(\231matt\232\ sends to a list that contains \231matt\232 as one of the members he w)102 -124.2 R(on')-.1 E 3.261(tg)-.18 G .761(et a cop)416.705 124.2 R 3.261(yo)-.1 G -3.261(ft)462.488 124.2 S .761(he mes-)471.859 124.2 R 3.067(sage. If)102 136.2 -R(the)3.067 E F0<ad6d>3.067 E F1 .567 -(\(me too\) command line \215ag, or if the)3.067 F F0(m)3.066 E F1 .566 -(option is set in the con\214guration \214le, this)3.066 F(beha)102 148.2 Q -(viour is supressed.)-.2 E(Some sites lik)5 E 2.5(et)-.1 G 2.5(or)265.58 148.2 -S(un the)276.41 148.2 Q/F3 9/Times-Roman@0 SF(SMTP)2.5 E F1(daemon with)2.5 E -F0<ad6d>2.5 E F1(.)A F0 2.5(5. THE)72 172.2 R(WHOLE SCOOP ON THE CONFIGURA)2.5 +353.4 R(on')-.1 E 3.261(tg)-.18 G .761(et a cop)416.705 353.4 R 3.261(yo)-.1 G +3.261(ft)462.488 353.4 S .761(he mes-)471.859 353.4 R 3.066(sage. If)102 365.4 +R(the)3.066 E F0<ad6d>3.066 E F1 .566 +(\(me too\) command line \215ag, or if the)3.066 F F0(m)3.067 E F1 .567 +(option is set in the con\214guration \214le, this)3.067 F(beha)102 377.4 Q +(viour is supressed.)-.2 E(Some sites lik)5 E 2.5(et)-.1 G 2.5(or)265.58 377.4 +S(un the)276.41 377.4 Q/F3 9/Times-Roman@0 SF(SMTP)2.5 E F1(daemon with)2.5 E +F0<ad6d>2.5 E F1(.)A F0 2.5(5. THE)72 401.4 R(WHOLE SCOOP ON THE CONFIGURA)2.5 E(TION FILE)-.95 E F1 .264(This section describes the con\214guration \214le i\ -n detail, including hints on ho)112 188.4 R 2.764(wt)-.25 G 2.764(ow)426.294 -188.4 S .264(rite one of your)441.278 188.4 R -.25(ow)87 200.4 S 2.5(ni).25 G -2.5(fy)109.25 200.4 S(ou ha)120.08 200.4 Q .3 -.15(ve t)-.2 H(o.).15 E .648(Th\ +n detail, including hints on ho)112 417.6 R 2.764(wt)-.25 G 2.763(ow)426.298 +417.6 S .263(rite one of your)441.281 417.6 R -.25(ow)87 429.6 S 2.5(ni).25 G +2.5(fy)109.25 429.6 S(ou ha)120.08 429.6 Q .3 -.15(ve t)-.2 H(o.).15 E .648(Th\ ere is one point that should be made clear immediately: the syntax of the con\ -\214guration \214le is)112 216.6 R 1.076 -(designed to be reasonably easy to parse, since this is done e)87 228.6 R -.15 -(ve)-.25 G 1.077(ry time).15 F F2(sendmail)3.577 E F1 1.077 -(starts up, rather than)3.577 F(easy for a human to read or write.)87 240.6 Q +\214guration \214le is)112 445.8 R 1.077 +(designed to be reasonably easy to parse, since this is done e)87 457.8 R -.15 +(ve)-.25 G 1.076(ry time).15 F F2(sendmail)3.576 E F1 1.076 +(starts up, rather than)3.576 F(easy for a human to read or write.)87 469.8 Q (On the \231future project\232 list is a con\214guration-\214le compiler)5 E(.) --.55 E(An o)112 256.8 Q -.15(ve)-.15 G(rvie).15 E 2.5(wo)-.25 G 2.5(ft)170.88 -256.8 S(he con\214guration \214le is gi)179.49 256.8 Q -.15(ve)-.25 G 2.5<6e8c> -.15 G(rst, follo)301.59 256.8 Q(wed by details of the semantics.)-.25 E F0 2.5 -(5.1. Con\214guration)87 280.8 R(File Lines)2.5 E F1 1.316 -(The con\214guration \214le is or)127 297 R -.05(ga)-.18 G 1.316 -(nized as a series of lines, each of which be).05 F 1.315(gins with a single) --.15 F .741(character de\214ning the semantics for the rest of the line.)102 -309 R .742(Lines be)5.742 F .742(ginning with a space or a tab are)-.15 F 1.149 +-.55 E(An o)112 486 Q -.15(ve)-.15 G(rvie).15 E 2.5(wo)-.25 G 2.5(ft)170.88 486 +S(he con\214guration \214le is gi)179.49 486 Q -.15(ve)-.25 G 2.5<6e8c>.15 G +(rst, follo)301.59 486 Q(wed by details of the semantics.)-.25 E F0 2.5 +(5.1. Con\214guration)87 510 R(File Lines)2.5 E F1 1.315 +(The con\214guration \214le is or)127 526.2 R -.05(ga)-.18 G 1.316 +(nized as a series of lines, each of which be).05 F 1.316(gins with a single) +-.15 F .742(character de\214ning the semantics for the rest of the line.)102 +538.2 R .742(Lines be)5.742 F .741(ginning with a space or a tab are)-.15 F +1.148 (continuation lines \(although the semantics are not well de\214ned in man)102 -321 R 3.648(yp)-.15 G 3.648(laces\). Blank)407.516 321 R 1.148(lines and)3.648 -F(lines be)102 333 Q(ginning with a sharp symbol \(`#'\) are comments.)-.15 E -F0 2.5(5.1.1. R)102 357 R(and S \212 r)2.5 E(ewriting rules)-.18 E F1 .406 -(The core of address parsing are the re)142 373.2 R .406(writing rules.)-.25 F -.407(These are an ordered production sys-)5.407 F(tem.)117 385.2 Q F2(Sendmail) -5.283 E F1 .283(scans through the set of re)2.783 F .282 -(writing rules looking for a match on the left hand side)-.25 F .131 -(\(LHS\) of the rule.)117 397.2 R .131(When a rule matches, the address is rep\ -laced by the right hand side \(RHS\) of)5.131 F(the rule.)117 409.2 Q 1.126 -(There are se)142 425.4 R -.15(ve)-.25 G 1.126(ral sets of re).15 F 1.126 -(writing rules.)-.25 F 1.126(Some of the re)6.126 F 1.125 -(writing sets are used internally)-.25 F .21(and must ha)117 437.4 R .51 -.15 +550.2 R 3.649(yp)-.15 G 3.649(laces\). Blank)407.513 550.2 R 1.149(lines and) +3.649 F(lines be)102 562.2 Q(ginning with a sharp symbol \(`#'\) are comments.) +-.15 E F0 2.5(5.1.1. R)102 586.2 R(and S \212 r)2.5 E(ewriting rules)-.18 E F1 +.407(The core of address parsing are the re)142 602.4 R .406(writing rules.) +-.25 F .406(These are an ordered production sys-)5.406 F(tem.)117 614.4 Q F2 +(Sendmail)5.282 E F1 .282(scans through the set of re)2.782 F .283 +(writing rules looking for a match on the left hand side)-.25 F .132 +(\(LHS\) of the rule.)117 626.4 R .131(When a rule matches, the address is rep\ +laced by the right hand side \(RHS\) of)5.131 F(the rule.)117 638.4 Q 1.125 +(There are se)142 654.6 R -.15(ve)-.25 G 1.125(ral sets of re).15 F 1.126 +(writing rules.)-.25 F 1.126(Some of the re)6.126 F 1.126 +(writing sets are used internally)-.25 F .21(and must ha)117 666.6 R .51 -.15 (ve s)-.2 H .21(peci\214c semantics.).15 F .21(Other re)5.21 F .21 (writing sets do not ha)-.25 F .51 -.15(ve s)-.2 H .21 (peci\214cally assigned seman-).15 F (tics, and may be referenced by the mailer de\214nitions or by other re)117 -449.4 Q(writing sets.)-.25 E(The syntax of these tw)142 465.6 Q 2.5(oc)-.1 G -(ommands are:)244.38 465.6 Q F0(S)157 481.8 Q F2(n)A F1 .278 -(Sets the current ruleset being collected to)117 498 R F2(n)2.778 E F1 5.278 -(.I)C 2.778(fy)302.524 498 S .278(ou be)313.632 498 R .278 -(gin a ruleset more than once it deletes the)-.15 F(old de\214nition.)117 510 Q -F0(R)157 526.2 Q F2(lhs rhs comments)A F1 .303(The \214elds must be separated \ -by at least one tab character; there may be embedded spaces in the)117 542.4 R -2.739(\214elds. The)117 554.4 R F2(lhs)2.739 E F1 .239 -(is a pattern that is applied to the input.)2.739 F .238 -(If it matches, the input is re)5.238 F .238(written to the)-.25 F F2(rhs)117 -566.4 Q F1 5(.T)C(he)143.39 566.4 Q F2(comments)2.5 E F1(are ignored.)2.5 E -2.265(Macro e)142 582.6 R 2.265(xpansions of the form)-.15 F F0($)4.765 E F2(x) -A F1 2.266(are performed when the con\214guration \214le is read.)4.765 F .081 -(Expansions of the form)117 594.6 R F0($&)2.581 E F2(x)A F1 .081 -(are performed at run time using a some)2.581 F .08 -(what less general algorithm.)-.25 F .639 -(This for is intended only for referencing internally de\214ned macros such as) -117 606.6 R F0($h)3.139 E F1 .639(that are changed)3.139 F(at runtime.)117 -618.6 Q F0 2.5(5.1.1.1. The)117 642.6 R(left hand side)2.5 E F1 1.617 -(The left hand side of re)157 658.8 R 1.617(writing rules contains a pattern.) --.25 F 1.617(Normal w)6.617 F 1.617(ords are simply)-.1 F(matched directly)132 -670.8 Q 5(.M)-.65 G(etasyntax is introduced using a dollar sign.)214.67 670.8 Q -(The metasymbols are:)5 E EP -%%Page: 26 21 +678.6 Q(writing sets.)-.25 E(The syntax of these tw)142 694.8 Q 2.5(oc)-.1 G +(ommands are:)244.38 694.8 Q F0(S)157 711 Q F2(n)A EP +%%Page: 25 20 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-26 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E($*)172 96 Q/F1 10/Times-Roman@0 SF -(Match zero or more tok)192.14 96 Q(ens)-.1 E F0($+)172 108 Q F1 -(Match one or more tok)9.44 E(ens)-.1 E F0<24ad>172 120 Q F1(Match e)9.44 E -(xactly one tok)-.15 E(en)-.1 E F0($=)172 132 Q/F2 10/Times-Italic@0 SF(x)A F1 -(Match an)5 E 2.5(yp)-.15 G(hrase in class)241.98 132 Q F2(x)2.5 E F0($~)172 -144 Q F2(x)A F1(Match an)7.37 E 2.5(yw)-.15 G(ord not in class)244.1 144 Q F2 -(x)2.5 E F1 .498(If an)132 160.2 R 2.998(yo)-.15 G 2.998(ft)163.946 160.2 S -.499(hese match, the)173.054 160.2 R 2.999(ya)-.15 G .499 -(re assigned to the symbol)248.271 160.2 R F0($)2.999 E F2(n)A F1 .499 -(for replacement on the right hand)2.999 F(side, where)132 172.2 Q F2(n)2.5 E -F1(is the inde)2.5 E 2.5(xi)-.15 G 2.5(nt)238.78 172.2 S(he LHS.)249.06 172.2 Q --.15(Fo)5 G 2.5(re).15 G(xample, if the LHS:)307.92 172.2 Q($\255:$+)172 188.4 -Q(is applied to the input:)132 204.6 Q(UCB)172 220.8 Q(ARP)-.35 E(A:eric)-.92 E -(the rule will match, and the v)132 237 Q(alues passed to the RHS will be:)-.25 -E 7.5($1 UCB)172 253.2 R(ARP)-.35 E(A)-.92 E 7.5($2 eric)172 265.2 R -(Additionally)157 285.6 Q 3.398(,t)-.65 G .898(he LHS can include)215.588 285.6 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-25)452.9 60 Q/F1 10/Times-Roman@0 SF .277 +(Sets the current ruleset being collected to)117 96 R/F2 10/Times-Italic@0 SF +(n)2.778 E F1 5.278(.I)C 2.778(fy)302.52 96 S .278(ou be)313.628 96 R .278 +(gin a ruleset more than once it deletes the)-.15 F(old de\214nition.)117 108 Q +F0(R)157 124.2 Q F2(lhs rhs comments)A F1 .303(The \214elds must be separated \ +by at least one tab character; there may be embedded spaces in the)117 140.4 R +2.738(\214elds. The)117 152.4 R F2(lhs)2.738 E F1 .238 +(is a pattern that is applied to the input.)2.738 F .239 +(If it matches, the input is re)5.239 F .239(written to the)-.25 F F2(rhs)117 +164.4 Q F1 5(.T)C(he)143.39 164.4 Q F2(comments)2.5 E F1(are ignored.)2.5 E +2.266(Macro e)142 180.6 R 2.266(xpansions of the form)-.15 F F0($)4.766 E F2(x) +A F1 2.265(are performed when the con\214guration \214le is read.)4.765 F .08 +(Expansions of the form)117 192.6 R F0($&)2.58 E F2(x)A F1 .081 +(are performed at run time using a some)2.58 F .081 +(what less general algorithm.)-.25 F .639 +(This for is intended only for referencing internally de\214ned macros such as) +117 204.6 R F0($h)3.138 E F1 .638(that are changed)3.138 F(at runtime.)117 +216.6 Q F0 2.5(5.1.1.1. The)117 240.6 R(left hand side)2.5 E F1 1.617 +(The left hand side of re)157 256.8 R 1.617(writing rules contains a pattern.) +-.25 F 1.617(Normal w)6.617 F 1.617(ords are simply)-.1 F(matched directly)132 +268.8 Q 5(.M)-.65 G(etasyntax is introduced using a dollar sign.)214.67 268.8 Q +(The metasymbols are:)5 E F0($*)172 285 Q F1(Match zero or more tok)192.14 285 +Q(ens)-.1 E F0($+)172 297 Q F1(Match one or more tok)9.44 E(ens)-.1 E F0<24ad> +172 309 Q F1(Match e)9.44 E(xactly one tok)-.15 E(en)-.1 E F0($=)172 321 Q F2 +(x)A F1(Match an)5 E 2.5(yp)-.15 G(hrase in class)241.98 321 Q F2(x)2.5 E F0 +($~)172 333 Q F2(x)A F1(Match an)7.37 E 2.5(yw)-.15 G(ord not in class)244.1 +333 Q F2(x)2.5 E F1 .499(If an)132 349.2 R 2.999(yo)-.15 G 2.999(ft)163.948 +349.2 S .499(hese match, the)173.057 349.2 R 2.999(ya)-.15 G .499 +(re assigned to the symbol)248.274 349.2 R F0($)2.999 E F2(n)A F1 .498 +(for replacement on the right hand)2.999 F(side, where)132 361.2 Q F2(n)2.5 E +F1(is the inde)2.5 E 2.5(xi)-.15 G 2.5(nt)238.78 361.2 S(he LHS.)249.06 361.2 Q +-.15(Fo)5 G 2.5(re).15 G(xample, if the LHS:)307.92 361.2 Q($\255:$+)172 377.4 +Q(is applied to the input:)132 393.6 Q(UCB)172 409.8 Q(ARP)-.35 E(A:eric)-.92 E +(the rule will match, and the v)132 426 Q(alues passed to the RHS will be:)-.25 +E 7.5($1 UCB)172 442.2 R(ARP)-.35 E(A)-.92 E 7.5($2 eric)172 454.2 R +(Additionally)157 474.6 Q 3.398(,t)-.65 G .898(he LHS can include)215.588 474.6 R F0($@)3.398 E F1 .898(to match zero tok)3.398 F 3.398(ens. This)-.1 F(is) -3.398 E F2(not)3.398 E F1 .898(bound to a)3.398 F F0($)132 297.6 Q F2(N)A F1 +3.398 E F2(not)3.398 E F1 .898(bound to a)3.398 F F0($)132 486.6 Q F2(N)A F1 .837(on the RHS, and is normally only used when it stands alone in order to ma\ -tch the null)3.337 F(input.)132 309.6 Q F0 2.5(5.1.1.2. The)117 333.6 R -(right hand side)2.5 E F1 .526(When the left hand side of a re)157 349.8 R .525 -(writing rule matches, the input is deleted and replaced)-.25 F .931 -(by the right hand side.)132 361.8 R -.8(To)5.932 G -.1(ke).8 G .932 +tch the null)3.338 F(input.)132 498.6 Q F0 2.5(5.1.1.2. The)117 522.6 R +(right hand side)2.5 E F1 .525(When the left hand side of a re)157 538.8 R .526 +(writing rule matches, the input is deleted and replaced)-.25 F .932 +(by the right hand side.)132 550.8 R -.8(To)5.932 G -.1(ke).8 G .932 (ns are copied directly from the RHS unless the).1 F 3.432(yb)-.15 G -.15(eg) -457.846 361.8 S .932(in with a).15 F(dollar sign.)132 373.8 Q(Metasymbols are:) -5 E F0($)172 390 Q F2(n)A F1(Substitute inde\214nite tok)222.55 390 Q(en)-.1 E -F2(n)2.5 E F1(from LHS)2.5 E F0($[)172 402 Q F2(name)A F0($])A F1(Canonicalize) -222.55 402 Q F2(name)2.5 E F0($\()172 414 Q F2(map k)A -.3(ey)-.1 G F0($@)2.8 E +457.848 550.8 S .931(in with a).15 F(dollar sign.)132 562.8 Q(Metasymbols are:) +5 E F0($)172 579 Q F2(n)A F1(Substitute inde\214nite tok)222.55 579 Q(en)-.1 E +F2(n)2.5 E F1(from LHS)2.5 E F0($[)172 591 Q F2(name)A F0($])A F1(Canonicalize) +222.55 591 Q F2(name)2.5 E F0($\()172 603 Q F2(map k)A -.3(ey)-.1 G F0($@)2.8 E F2(ar)A(guments)-.37 E F0($:)2.5 E F2(default)A F0($\))2.5 E F1(Generalized k) -222.55 426 Q -.15(ey)-.1 G(ed mapping function).15 E F0($>)172 438 Q F2(n)A F1 -(\231Call\232 ruleset)222.55 438 Q F2(n)2.5 E F0($#)172 450 Q F2(mailer)A F1 -(Resolv)222.55 450 Q 2.5(et)-.15 G(o)259.9 450 Q F2(mailer)2.5 E F0($@)172 462 -Q F2(host)A F1(Specify)222.55 462 Q F2(host)2.5 E F0($:)172 474 Q F2(user)A F1 -(Specify)222.55 474 Q F2(user)2.5 E F1(The)157 494.4 Q F0($)3.013 E F2(n)A F1 -.513(syntax substitutes the corresponding v)3.013 F .513(alue from a)-.25 F F0 -($+)3.013 E F1(,)A F0<24ad>3.013 E F1(,)A F0($*)3.012 E F1(,)A F0($=)3.012 E F1 -3.012(,o)C(r)461.876 494.4 Q F0($~)3.012 E F1(match)3.012 E(on the LHS.)132 -506.4 Q(It may be used an)5 E(ywhere.)-.15 E 2.7(Ah)157 522.6 S .2 -(ost name enclosed between)171.92 522.6 R F0($[)2.7 E F1(and)2.7 E F0($])2.7 E -F1 .2(is look)2.7 F .201(ed up using the)-.1 F F2 -.1(ge)2.701 G(thostent).1 E -F1 .201(\(3\) routines)1.666 F 3.333(and replaced by the canonical name)132 -536.6 R/F3 7/Times-Roman@0 SF(8)291.675 532.6 Q F1 8.333(.F)295.175 536.6 S -3.333(or e)311.418 536.6 R 3.332 -(xample, \231$[csam$]\232 might become \231lbl-)-.15 F 1.923 -(csam.arpa\232 and \231$[[128.32.130.2]$]\232 w)132 548.6 R 1.923 -(ould become \231v)-.1 F(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU.) -.65 E<9a>-.7 E F2(Send-)6.924 E(mail)132 560.6 Q F1 .436(recognizes it')2.936 F -2.936(sn)-.55 G .436(umeric IP address without calling the name serv)218.578 -560.6 R .435(er and replaces it with)-.15 F(it')132 572.6 Q 2.5(sc)-.55 G -(anonical name.)151.17 572.6 Q(The)157 588.8 Q F0($\()2.861 E F1(...)2.861 E F0 -($\))5.361 E F1 .361 -(syntax is a more general form of lookup; it uses a named map instead of)2.861 -F .125(an implicit map.)132 600.8 R .125(If no lookup is found, the indicted) -5.125 F F2(default)2.625 E F1 .124(is inserted; if no def)2.625 F .124 -(ault is speci-)-.1 F(\214ed and no lookup matches, the v)132 612.8 Q -(alue is left unchanged.)-.25 E(The)157 629 Q F0($>)3.571 E F2(n)A F1 1.071 -(syntax causes the remainder of the line to be substituted as usual and then) -3.571 F .572(passed as the ar)132 641 R .572(gument to ruleset)-.18 F F2(n) -3.072 E F1 5.572(.T)C .572(he \214nal v)288.854 641 R .572(alue of ruleset)-.25 -F F2(n)3.072 E F1 .571(then becomes the substitu-)3.072 F(tion for this rule.) -132 653 Q .32 LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 80 678.8 DL -88 678.8 84 678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96 -678.8 DL 104 678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 678.8 DL -116 678.8 112 678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 678.8 -124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 136 678.8 -DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 678.8 DL 156 -678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 678.8 160 678.8 DL 168 678.8 164 -678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 678.8 DL 180 678.8 176 678.8 DL -184 678.8 180 678.8 DL 188 678.8 184 678.8 DL 192 678.8 188 678.8 DL 196 678.8 -192 678.8 DL 200 678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 204 678.8 -DL 212 678.8 208 678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 SF(8)93.6 -689.2 Q/F5 8/Times-Roman@0 SF(This is actually completely equi)3.2 I -.2(va)-.2 -G(lent to $\(host).2 E/F6 8/Times-Italic@0 SF(hostname)2 E F5 2($\). In)B -(particular)2 E 2(,a)-.32 G/F7 8/Times-Bold@0 SF($:)A F5(def)2 E -(ault can be used.)-.08 E EP -%%Page: 27 22 +222.55 615 Q -.15(ey)-.1 G(ed mapping function).15 E F0($>)172 627 Q F2(n)A F1 +(\231Call\232 ruleset)222.55 627 Q F2(n)2.5 E F0($#)172 639 Q F2(mailer)A F1 +(Resolv)222.55 639 Q 2.5(et)-.15 G(o)259.9 639 Q F2(mailer)2.5 E F0($@)172 651 +Q F2(host)A F1(Specify)222.55 651 Q F2(host)2.5 E F0($:)172 663 Q F2(user)A F1 +(Specify)222.55 663 Q F2(user)2.5 E F1(The)157 683.4 Q F0($)3.012 E F2(n)A F1 +.512(syntax substitutes the corresponding v)3.012 F .513(alue from a)-.25 F F0 +($+)3.013 E F1(,)A F0<24ad>3.013 E F1(,)A F0($*)3.013 E F1(,)A F0($=)3.013 E F1 +3.013(,o)C(r)461.874 683.4 Q F0($~)3.013 E F1(match)3.013 E(on the LHS.)132 +695.4 Q(It may be used an)5 E(ywhere.)-.15 E 2.701(Ah)157 711.6 S .201 +(ost name enclosed between)171.921 711.6 R F0($[)2.7 E F1(and)2.7 E F0($])2.7 E +F1 .2(is look)2.7 F .2(ed up using the)-.1 F F2 -.1(ge)2.7 G(thostent).1 E F1 +.2(\(3\) routines)1.666 F EP +%%Page: 26 21 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-27)452.9 60 Q/F1 10/Times-Roman@0 SF(The)157 96 Q F0($#)3.358 E F1 .858 -(syntax should)3.358 F/F2 10/Times-Italic@0 SF(only)3.358 E F1 .858 -(be used in ruleset zero or a subroutine of ruleset zero.)3.358 F(It)5.859 E -1.1(causes e)132 108 R -.25(va)-.25 G 1.1 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-26 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 3.332 +(and replaced by the canonical name)132 98 R/F2 7/Times-Roman@0 SF(8)291.672 94 +Q F1 8.333(.F)295.172 98 S 3.333(or e)311.415 98 R 3.333 +(xample, \231$[csam$]\232 might become \231lbl-)-.15 F 1.924 +(csam.arpa\232 and \231$[[128.32.130.2]$]\232 w)132 110 R 1.923 +(ould become \231v)-.1 F(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU.) +.65 E<9a>-.7 E/F3 10/Times-Italic@0 SF(Send-)6.923 E(mail)132 122 Q F1 .435 +(recognizes it')2.935 F 2.935(sn)-.55 G .436 +(umeric IP address without calling the name serv)218.575 122 R .436 +(er and replaces it with)-.15 F(it')132 134 Q 2.5(sc)-.55 G(anonical name.) +151.17 134 Q(The)157 150.2 Q F0($\()2.862 E F1(...)2.862 E F0($\))5.361 E F1 +.361(syntax is a more general form of lookup; it uses a named map instead of) +2.861 F .027(an implicit map.)132 162.2 R .027 +(If no lookup is found, the indicated)5.027 F F3(default)2.527 E F1 .027 +(is inserted; if no def)2.527 F .027(ault is spec-)-.1 F +(i\214ed and no lookup matches, the v)132 174.2 Q(alue is left unchanged.)-.25 +E(The)157 190.4 Q F0($>)3.572 E F3(n)A F1 1.071 +(syntax causes the remainder of the line to be substituted as usual and then) +3.572 F .571(passed as the ar)132 202.4 R .572(gument to ruleset)-.18 F F3(n) +3.072 E F1 5.572(.T)C .572(he \214nal v)288.852 202.4 R .572(alue of ruleset) +-.25 F F3(n)3.072 E F1 .572(then becomes the substitu-)3.072 F +(tion for this rule.)132 214.4 Q(The)157 230.6 Q F0($#)3.359 E F1 .858 +(syntax should)3.359 F F3(only)3.358 E F1 .858 +(be used in ruleset zero or a subroutine of ruleset zero.)3.358 F(It)5.858 E +1.1(causes e)132 242.6 R -.25(va)-.25 G 1.1 (luation of the ruleset to terminate immediately).25 F 3.6(,a)-.65 G 1.1 -(nd signals to)377.11 108 R F2(sendmail)3.6 E F1 1.1(that the)3.6 F -(address has completely resolv)132 120 Q 2.5(ed. The)-.15 F -(complete syntax is:)2.5 E F0($#)172 136.2 Q F2(mailer)A F0($@)2.5 E F2(host)A -F0($:)2.5 E F2(user)A F1 .394(This speci\214es the {mailer)132 152.4 R 2.894 -(,h)-.4 G .394(ost, user} 3-tuple necessary to direct the mailer)245.466 152.4 -R 5.394(.I)-.55 G 2.894(ft)447.548 152.4 S .394(he mailer is)456.552 152.4 R -.135(local the host part may be omitted)132 166.4 R/F3 7/Times-Roman@0 SF(9) -268.91 162.4 Q F1 5.135(.T)272.41 166.4 S(he)286.155 166.4 Q F2(mailer)2.635 E -F1 .136(must be a single w)2.636 F .136(ord, b)-.1 F .136(ut the)-.2 F F2(host) -2.636 E F1(and)2.636 E F2(user)2.636 E F1 .252(may be multi-part.)132 178.4 R -.252(If the)5.252 F F2(mailer)2.752 E F1 .252(is the b)2.752 F .252 -(uiltin IPC mailer)-.2 F 2.752(,t)-.4 G(he)369.722 178.4 Q F2(host)2.752 E F1 -.251(may be a colon-separated)2.752 F 2.439 -(list of hosts that are searched in order for the \214rst w)132 190.4 R 2.439 -(orking address \(e)-.1 F 2.439(xactly lik)-.15 F 4.939(eM)-.1 G(X)496.78 190.4 -Q(records\).)132 202.4 Q 3.795(AR)157 218.6 S 1.295 -(HS may also be preceded by a)174.685 218.6 R F0($@)3.795 E F1 1.295(or a)3.795 -F F0($:)3.795 E F1 1.294(to control e)3.795 F -.25(va)-.25 G 3.794(luation. A) -.25 F F0($@)3.794 E F1(pre\214x)3.794 E .61 -(causes the ruleset to return with the remainder of the RHS as the v)132 230.6 -R 3.111(alue. A)-.25 F F0($:)3.111 E F1 .611(pre\214x causes)3.111 F .432 -(the rule to terminate immediately)132 242.6 R 2.931(,b)-.65 G .431 -(ut the ruleset to continue; this can be used to a)276.629 242.6 R -.2(vo)-.2 G -.431(id con-).2 F(tinued application of a rule.)132 254.6 Q -(The pre\214x is stripped before continuing.)5 E(The)157 270.8 Q F0($@)2.5 E F1 +(nd signals to)377.11 242.6 R F3(sendmail)3.6 E F1 1.1(that the)3.6 F +(address has completely resolv)132 254.6 Q 2.5(ed. The)-.15 F +(complete syntax is:)2.5 E F0($#)172 270.8 Q F3(mailer)A F0($@)2.5 E F3(host)A +F0($:)2.5 E F3(user)A F1 .394(This speci\214es the {mailer)132 287 R 2.894(,h) +-.4 G .394(ost, user} 3-tuple necessary to direct the mailer)245.466 287 R +5.394(.I)-.55 G 2.894(ft)447.548 287 S .394(he mailer is)456.552 287 R .136 +(local the host part may be omitted)132 301 R F2(9)268.916 297 Q F1 5.136(.T) +272.416 301 S(he)286.162 301 Q F3(mailer)2.636 E F1 .135(must be a single w) +2.636 F .135(ord, b)-.1 F .135(ut the)-.2 F F3(host)2.635 E F1(and)2.635 E F3 +(user)2.635 E F1 .251(may be multi-part.)132 313 R .252(If the)5.252 F F3 +(mailer)2.752 E F1 .252(is the b)2.752 F .252(uiltin IPC mailer)-.2 F 2.752(,t) +-.4 G(he)369.72 313 Q F3(host)2.752 E F1 .252(may be a colon-separated)2.752 F +2.439(list of hosts that are searched in order for the \214rst w)132 325 R +2.438(orking address \(e)-.1 F 2.438(xactly lik)-.15 F 4.938(eM)-.1 G(X)496.78 +325 Q 5.185(records\). The)132 337 R F3(user)5.185 E F1 2.685(is later re)5.185 +F 2.685(written by the mailer)-.25 F 2.685(-speci\214c en)-.2 F -.15(ve)-.4 G +2.685(lope re).15 F 2.685(writing set and)-.25 F(assigned to the)132 349 Q F0 +($u)2.5 E F1(macro.)2.5 E(Normally)157 365.2 Q 3.648(,ar)-.65 G 1.148 +(uleset that matches is retried, that is, the ruleset loops until it f)212.246 +365.2 R 3.648(ails. A)-.1 F .178(RHS may also be preceded by a)132 377.2 R F0 +($@)2.678 E F1 .178(or a)2.678 F F0($:)2.678 E F1 .179(to change this beha) +2.678 F(vior)-.2 E 5.179(.A)-.55 G F0($@)420.013 377.2 Q F1 .179 +(pre\214x causes the)2.679 F .592 +(ruleset to return with the remainder of the RHS as the v)132 389.2 R 3.092 +(alue. A)-.25 F F0($:)3.091 E F1 .591(pre\214x causes the rule to)3.091 F .175 +(terminate immediately)132 401.2 R 2.675(,b)-.65 G .175 +(ut the ruleset to continue; this can be used to a)231.77 401.2 R -.2(vo)-.2 G +.175(id continued appli-).2 F(cation of a rule.)132 413.2 Q +(The pre\214x is stripped before continuing.)5 E(The)157 429.4 Q F0($@)2.5 E F1 (and)2.5 E F0($:)2.5 E F1(pre\214x)2.5 E(es may precede a)-.15 E F0($>)2.5 E F1 -(spec; for e)2.5 E(xample:)-.15 E 20.19(R$+ $:)172 287 R($>7 $1)2.5 E .256 -(matches an)132 303.2 R .256(ything, passes that to ruleset se)-.15 F -.15(ve) +(spec; for e)2.5 E(xample:)-.15 E 20.19(R$+ $:)172 445.6 R($>7 $1)2.5 E .256 +(matches an)132 461.8 R .256(ything, passes that to ruleset se)-.15 F -.15(ve) -.25 G .256(n, and continues; the).15 F F0($:)2.756 E F1 .256 (is necessary to a)2.756 F -.2(vo)-.2 G .256(id an).2 F(in\214nite loop.)132 -315.2 Q .051(Substitution occurs in the order described, that is, parameters f\ -rom the LHS are substi-)157 331.4 R .556(tuted, hostnames are canonicalized, \ -\231subroutines\232 are called, and \214nally)132 343.4 R F0($#)3.056 E F1(,)A -F0($@)3.056 E F1 3.056(,a)C(nd)467.346 343.4 Q F0($:)3.057 E F1(are)3.057 E -(processed.)132 355.4 Q F0 2.5(5.1.1.3. Semantics)117 379.4 R(of r)2.5 E -(ewriting rule sets)-.18 E F1 2.922(There are \214v)157 395.6 R 5.422(er)-.15 G --.25(ew)226.976 395.6 S 2.922(riting sets that ha).25 F 3.222 -.15(ve s)-.2 H -2.922(peci\214c semantics.).15 F 2.921(These are related as)7.921 F -(depicted by \214gure 2.)132 407.6 Q .4 LW 77 441.2 72 441.2 DL 79 441.2 74 -441.2 DL 84 441.2 79 441.2 DL 89 441.2 84 441.2 DL 94 441.2 89 441.2 DL 99 -441.2 94 441.2 DL 104 441.2 99 441.2 DL 109 441.2 104 441.2 DL 114 441.2 109 -441.2 DL 119 441.2 114 441.2 DL 124 441.2 119 441.2 DL 129 441.2 124 441.2 DL -134 441.2 129 441.2 DL 139 441.2 134 441.2 DL 144 441.2 139 441.2 DL 149 441.2 -144 441.2 DL 154 441.2 149 441.2 DL 159 441.2 154 441.2 DL 164 441.2 159 441.2 -DL 169 441.2 164 441.2 DL 174 441.2 169 441.2 DL 179 441.2 174 441.2 DL 184 -441.2 179 441.2 DL 189 441.2 184 441.2 DL 194 441.2 189 441.2 DL 199 441.2 194 -441.2 DL 204 441.2 199 441.2 DL 209 441.2 204 441.2 DL 214 441.2 209 441.2 DL -219 441.2 214 441.2 DL 224 441.2 219 441.2 DL 229 441.2 224 441.2 DL 234 441.2 -229 441.2 DL 239 441.2 234 441.2 DL 244 441.2 239 441.2 DL 249 441.2 244 441.2 -DL 254 441.2 249 441.2 DL 259 441.2 254 441.2 DL 264 441.2 259 441.2 DL 269 -441.2 264 441.2 DL 274 441.2 269 441.2 DL 279 441.2 274 441.2 DL 284 441.2 279 -441.2 DL 289 441.2 284 441.2 DL 294 441.2 289 441.2 DL 299 441.2 294 441.2 DL -304 441.2 299 441.2 DL 309 441.2 304 441.2 DL 314 441.2 309 441.2 DL 319 441.2 -314 441.2 DL 324 441.2 319 441.2 DL 329 441.2 324 441.2 DL 334 441.2 329 441.2 -DL 339 441.2 334 441.2 DL 344 441.2 339 441.2 DL 349 441.2 344 441.2 DL 354 -441.2 349 441.2 DL 359 441.2 354 441.2 DL 364 441.2 359 441.2 DL 369 441.2 364 -441.2 DL 374 441.2 369 441.2 DL 379 441.2 374 441.2 DL 384 441.2 379 441.2 DL -389 441.2 384 441.2 DL 394 441.2 389 441.2 DL 399 441.2 394 441.2 DL 404 441.2 -399 441.2 DL 409 441.2 404 441.2 DL 414 441.2 409 441.2 DL 419 441.2 414 441.2 -DL 424 441.2 419 441.2 DL 429 441.2 424 441.2 DL 434 441.2 429 441.2 DL 439 -441.2 434 441.2 DL 444 441.2 439 441.2 DL 449 441.2 444 441.2 DL 454 441.2 449 -441.2 DL 459 441.2 454 441.2 DL 464 441.2 459 441.2 DL 469 441.2 464 441.2 DL -474 441.2 469 441.2 DL 479 441.2 474 441.2 DL 484 441.2 479 441.2 DL 489 441.2 -484 441.2 DL 494 441.2 489 441.2 DL 499 441.2 494 441.2 DL 504 441.2 499 441.2 -DL(addr)91.915 535.6 Q 133.2 533.6 111.6 533.6 DL 133.2 533.6 126 535.4 DL -133.2 533.6 126 531.8 DL(3)141.5 535.6 Q 133.2 522.8 133.2 544.4 DL 154.8 522.8 -133.2 522.8 DL 154.8 544.4 154.8 522.8 DL 133.2 544.4 154.8 544.4 DL 176.4 -533.6 154.8 533.6 DL 176.4 533.6 169.2 535.4 DL 176.4 533.6 169.2 531.8 DL(D) -183.59 535.6 Q 176.4 522.8 176.4 544.4 DL 198 522.8 176.4 522.8 DL 198 544.4 -198 522.8 DL 176.4 544.4 198 544.4 DL 219.6 533.6 198 533.6 DL 277.2 515.6 -255.6 515.6 DL 277.2 515.6 270 517.4 DL 277.2 515.6 270 513.8 DL(1)285.5 517.6 -Q 277.2 504.8 277.2 526.4 DL 298.8 504.8 277.2 504.8 DL 298.8 526.4 298.8 504.8 -DL 277.2 526.4 298.8 526.4 DL 320.4 515.6 298.8 515.6 DL 320.4 515.6 313.2 -517.4 DL 320.4 515.6 313.2 513.8 DL(S)328.42 517.6 Q 320.4 504.8 320.4 526.4 DL -342 504.8 320.4 504.8 DL 342 526.4 342 504.8 DL 320.4 526.4 342 526.4 DL 363.6 -515.6 342 515.6 DL 277.2 551.6 255.6 551.6 DL 277.2 551.6 270 553.4 DL 277.2 -551.6 270 549.8 DL(2)285.5 553.6 Q 277.2 540.8 277.2 562.4 DL 298.8 540.8 277.2 -540.8 DL 298.8 562.4 298.8 540.8 DL 277.2 562.4 298.8 562.4 DL 320.4 551.6 -298.8 551.6 DL 320.4 551.6 313.2 553.4 DL 320.4 551.6 313.2 549.8 DL(R)327.865 -553.6 Q 320.4 540.8 320.4 562.4 DL 342 540.8 320.4 540.8 DL 342 562.4 342 540.8 -DL 320.4 562.4 342 562.4 DL 363.6 551.6 342 551.6 DL 421.2 533.6 399.6 533.6 DL -421.2 533.6 414 535.4 DL 421.2 533.6 414 531.8 DL(4)429.5 535.6 Q 421.2 522.8 -421.2 544.4 DL 442.8 522.8 421.2 522.8 DL 442.8 544.4 442.8 522.8 DL 421.2 -544.4 442.8 544.4 DL 464.4 533.6 442.8 533.6 DL 464.4 533.6 457.2 535.4 DL -464.4 533.6 457.2 531.8 DL(msg)466.865 535.6 Q 255.6 515.6 219.6 533.6 DL 255.6 -551.6 219.6 533.6 DL 399.6 533.6 363.6 515.6 DL 399.6 533.6 363.6 551.6 DL -208.8 479.6 187.2 479.6 DL 208.8 479.6 201.6 481.4 DL 208.8 479.6 201.6 477.8 -DL(0)217.1 481.6 Q 208.8 468.8 208.8 490.4 DL 230.4 468.8 208.8 468.8 DL 230.4 -490.4 230.4 468.8 DL 208.8 490.4 230.4 490.4 DL 252 479.6 230.4 479.6 DL 252 -479.6 244.8 481.4 DL 252 479.6 244.8 477.8 DL(resolv)265.69 481.6 Q(ed address) --.15 E 187.2 479.6 162 533.6 DL(Figure 2 \212 Re)216.045 581.6 Q -(writing set semantics)-.25 E 2.5(D\212s)209.35 593.6 S(ender domain addition) -235.46 593.6 Q 2.5(S\212m)209.35 605.6 S(ailer)237.69 605.6 Q -(-speci\214c sender re)-.2 E(writing)-.25 E 2.5(R\212m)209.35 617.6 S(ailer) -238.8 617.6 Q(-speci\214c recipient re)-.2 E(writing)-.25 E 77 629.6 72 629.6 -DL 79 629.6 74 629.6 DL 84 629.6 79 629.6 DL 89 629.6 84 629.6 DL 94 629.6 89 -629.6 DL 99 629.6 94 629.6 DL 104 629.6 99 629.6 DL 109 629.6 104 629.6 DL 114 -629.6 109 629.6 DL 119 629.6 114 629.6 DL 124 629.6 119 629.6 DL 129 629.6 124 -629.6 DL 134 629.6 129 629.6 DL 139 629.6 134 629.6 DL 144 629.6 139 629.6 DL -149 629.6 144 629.6 DL 154 629.6 149 629.6 DL 159 629.6 154 629.6 DL 164 629.6 -159 629.6 DL 169 629.6 164 629.6 DL 174 629.6 169 629.6 DL 179 629.6 174 629.6 -DL 184 629.6 179 629.6 DL 189 629.6 184 629.6 DL 194 629.6 189 629.6 DL 199 -629.6 194 629.6 DL 204 629.6 199 629.6 DL 209 629.6 204 629.6 DL 214 629.6 209 -629.6 DL 219 629.6 214 629.6 DL 224 629.6 219 629.6 DL 229 629.6 224 629.6 DL -234 629.6 229 629.6 DL 239 629.6 234 629.6 DL 244 629.6 239 629.6 DL 249 629.6 -244 629.6 DL 254 629.6 249 629.6 DL 259 629.6 254 629.6 DL 264 629.6 259 629.6 -DL 269 629.6 264 629.6 DL 274 629.6 269 629.6 DL 279 629.6 274 629.6 DL 284 -629.6 279 629.6 DL 289 629.6 284 629.6 DL 294 629.6 289 629.6 DL 299 629.6 294 -629.6 DL 304 629.6 299 629.6 DL 309 629.6 304 629.6 DL 314 629.6 309 629.6 DL -319 629.6 314 629.6 DL 324 629.6 319 629.6 DL 329 629.6 324 629.6 DL 334 629.6 -329 629.6 DL 339 629.6 334 629.6 DL 344 629.6 339 629.6 DL 349 629.6 344 629.6 -DL 354 629.6 349 629.6 DL 359 629.6 354 629.6 DL 364 629.6 359 629.6 DL 369 -629.6 364 629.6 DL 374 629.6 369 629.6 DL 379 629.6 374 629.6 DL 384 629.6 379 -629.6 DL 389 629.6 384 629.6 DL 394 629.6 389 629.6 DL 399 629.6 394 629.6 DL -404 629.6 399 629.6 DL 409 629.6 404 629.6 DL 414 629.6 409 629.6 DL 419 629.6 -414 629.6 DL 424 629.6 419 629.6 DL 429 629.6 424 629.6 DL 434 629.6 429 629.6 -DL 439 629.6 434 629.6 DL 444 629.6 439 629.6 DL 449 629.6 444 629.6 DL 454 -629.6 449 629.6 DL 459 629.6 454 629.6 DL 464 629.6 459 629.6 DL 469 629.6 464 -629.6 DL 474 629.6 469 629.6 DL 479 629.6 474 629.6 DL 484 629.6 479 629.6 DL -489 629.6 484 629.6 DL 494 629.6 489 629.6 DL 499 629.6 494 629.6 DL 504 629.6 -499 629.6 DL .32 LW 76 663.2 72 663.2 DL 80 663.2 76 663.2 DL 84 663.2 80 663.2 -DL 88 663.2 84 663.2 DL 92 663.2 88 663.2 DL 96 663.2 92 663.2 DL 100 663.2 96 -663.2 DL 104 663.2 100 663.2 DL 108 663.2 104 663.2 DL 112 663.2 108 663.2 DL -116 663.2 112 663.2 DL 120 663.2 116 663.2 DL 124 663.2 120 663.2 DL 128 663.2 -124 663.2 DL 132 663.2 128 663.2 DL 136 663.2 132 663.2 DL 140 663.2 136 663.2 -DL 144 663.2 140 663.2 DL 148 663.2 144 663.2 DL 152 663.2 148 663.2 DL 156 -663.2 152 663.2 DL 160 663.2 156 663.2 DL 164 663.2 160 663.2 DL 168 663.2 164 -663.2 DL 172 663.2 168 663.2 DL 176 663.2 172 663.2 DL 180 663.2 176 663.2 DL -184 663.2 180 663.2 DL 188 663.2 184 663.2 DL 192 663.2 188 663.2 DL 196 663.2 -192 663.2 DL 200 663.2 196 663.2 DL 204 663.2 200 663.2 DL 208 663.2 204 663.2 -DL 212 663.2 208 663.2 DL 216 663.2 212 663.2 DL/F4 5/Times-Roman@0 SF(9)93.6 -673.6 Q/F5 8/Times-Roman@0 SF -.88(Yo)3.2 K 2.208(um).88 G .208(ay w)117.428 -676.8 R .208(ant to use it for special \231per user\232 e)-.08 F 2.208 -(xtensions. F)-.12 F .208(or e)-.12 F .208 +473.8 Q .051(Substitution occurs in the order described, that is, parameters f\ +rom the LHS are substi-)157 490 R .556(tuted, hostnames are canonicalized, \ +\231subroutines\232 are called, and \214nally)132 502 R F0($#)3.056 E F1(,)A F0 +($@)3.056 E F1 3.056(,a)C(nd)467.348 502 Q F0($:)3.056 E F1(are)3.056 E +(processed.)132 514 Q F0 2.5(5.1.1.3. Semantics)117 538 R(of r)2.5 E +(ewriting rule sets)-.18 E F1 2.921(There are \214v)157 554.2 R 5.421(er)-.15 G +-.25(ew)226.973 554.2 S 2.922(riting sets that ha).25 F 3.222 -.15(ve s)-.2 H +2.922(peci\214c semantics.).15 F 2.922(These are related as)7.922 F +(depicted by \214gure 2.)132 566.2 Q 1.092 +(Ruleset three should turn the address into \231canonical form.)157 582.4 R +6.091<9a54>-.7 G 1.091(his form should ha)416.917 582.4 R -.15(ve)-.2 G +(the basic syntax:)132 594.4 Q(local-part@host-domain-spec)172 610.6 Q 1.295 +(If no \231@\232 sign is speci\214ed, then the host-domain-spec)132 626.8 R F3 +(may)3.796 E F1 1.296(be appended from the sender)3.796 F 1.284 +(address \(if the)132 638.8 R F0(C)3.784 E F1 1.284 +(\215ag is set in the mailer de\214nition corresponding to the)3.784 F F3 +(sending)3.784 E F1(mailer\).)3.784 E(Ruleset three is applied by)132 650.8 Q +F3(sendmail)2.5 E F1(before doing an)2.5 E(ything with an)-.15 E 2.5(ya)-.15 G +(ddress.)411.39 650.8 Q .32 LW 76 665.2 72 665.2 DL 80 665.2 76 665.2 DL 84 +665.2 80 665.2 DL 88 665.2 84 665.2 DL 92 665.2 88 665.2 DL 96 665.2 92 665.2 +DL 100 665.2 96 665.2 DL 104 665.2 100 665.2 DL 108 665.2 104 665.2 DL 112 +665.2 108 665.2 DL 116 665.2 112 665.2 DL 120 665.2 116 665.2 DL 124 665.2 120 +665.2 DL 128 665.2 124 665.2 DL 132 665.2 128 665.2 DL 136 665.2 132 665.2 DL +140 665.2 136 665.2 DL 144 665.2 140 665.2 DL 148 665.2 144 665.2 DL 152 665.2 +148 665.2 DL 156 665.2 152 665.2 DL 160 665.2 156 665.2 DL 164 665.2 160 665.2 +DL 168 665.2 164 665.2 DL 172 665.2 168 665.2 DL 176 665.2 172 665.2 DL 180 +665.2 176 665.2 DL 184 665.2 180 665.2 DL 188 665.2 184 665.2 DL 192 665.2 188 +665.2 DL 196 665.2 192 665.2 DL 200 665.2 196 665.2 DL 204 665.2 200 665.2 DL +208 665.2 204 665.2 DL 212 665.2 208 665.2 DL 216 665.2 212 665.2 DL/F4 5 +/Times-Roman@0 SF(8)93.6 675.6 Q/F5 8/Times-Roman@0 SF +(This is actually completely equi)3.2 I -.2(va)-.2 G(lent to $\(host).2 E/F6 8 +/Times-Italic@0 SF(hostname)2 E F5 2($\). In)B(particular)2 E 2(,a)-.32 G/F7 8 +/Times-Bold@0 SF($:)A F5(def)2 E(ault can be used.)-.08 E F4(9)93.6 689.2 Q F5 +-.88(Yo)3.2 K 2.207(um).88 G .207(ay w)117.427 692.4 R .208 +(ant to use it for special \231per user\232 e)-.08 F 2.208(xtensions. F)-.12 F +.208(or e)-.12 F .208 (xample, at CMU you can send email to \231jgm+foo\232; the part af-)-.12 F(ter\ the plus sign is not part of the user name, and is passed to the local mailer\ - for local use.)72 686.4 Q EP -%%Page: 28 23 + for local use.)72 702 Q EP +%%Page: 27 22 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-28 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.091 -(Ruleset three should turn the address into \231canonical form.)157 96 R 6.092 -<9a54>-.7 G 1.092(his form should ha)416.914 96 R -.15(ve)-.2 G -(the basic syntax:)132 108 Q(local-part@host-domain-spec)172 124.2 Q 1.296 -(If no \231@\232 sign is speci\214ed, then the host-domain-spec)132 140.4 R/F2 -10/Times-Italic@0 SF(may)3.796 E F1 1.295(be appended from the sender)3.796 F -1.284(address \(if the)132 152.4 R F0(C)3.784 E F1 1.284 -(\215ag is set in the mailer de\214nition corresponding to the)3.784 F F2 -(sending)3.784 E F1(mailer\).)3.784 E(Ruleset three is applied by)132 164.4 Q -F2(sendmail)2.5 E F1(before doing an)2.5 E(ything with an)-.15 E 2.5(ya)-.15 G -(ddress.)411.39 164.4 Q .506(Ruleset zero is applied after ruleset three to ad\ -dresses that are going to actually spec-)157 180.6 R .295(ify recipients.)132 -192.6 R .295(It must resolv)5.295 F 2.795(et)-.15 G 2.795(oa)258.035 192.6 S F2 -({mailer).001 E 2.796(,h)-1.11 G .296(ost, user})312.362 192.6 R F1 2.796 -(triple. The)2.796 F F2(mailer)2.796 E F1 .296(must be de\214ned in)2.796 F -.561(the mailer de\214nitions from the con\214guration \214le.)132 204.6 R(The) -5.561 E F2(host)3.061 E F1 .56(is de\214ned into the)3.061 F F0($h)3.06 E F1 -.56(macro for)3.06 F(use in the ar)132 216.6 Q(gv e)-.18 E -(xpansion of the speci\214ed mailer)-.15 E(.)-.55 E 1.356(Rulesets one and tw) -157 232.8 R 3.856(oa)-.1 G 1.357 -(re applied to all sender and recipient addresses respecti)254.534 232.8 R -.15 -(ve)-.25 G(ly).15 E(.)-.65 E(The)132 244.8 Q 2.5(ya)-.15 G -(re applied before an)159.34 244.8 Q 2.5(ys)-.15 G -(peci\214cation in the mailer de\214nition.)250.27 244.8 Q(The)5 E 2.5(ym)-.15 -G(ust ne)429 244.8 Q -.15(ve)-.25 G 2.5(rr).15 G(esolv)470.81 244.8 Q(e.)-.15 E -.266(Ruleset four is applied to all addresses in the message.)157 261 R .265 -(It is typically used to translate)5.265 F(internal to e)132 273 Q -(xternal form.)-.15 E F0 2.5(5.1.1.4. IPC)117 297 R(mailers)2.5 E F1 .332 -(Some special processing occurs if the ruleset zero resolv)157 313.2 R .333 -(es to an IPC mailer \(that is, a)-.15 F .242 -(mailer that has \231[IPC]\232 listed as the P)132 325.2 R .241(ath in the)-.15 -F F0(M)2.741 E F1 .241(con\214guration line.)2.741 F .241(The host name passed) -5.241 F .884(after \231$@\232 has MX e)132 337.2 R .885 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-27)452.9 60 Q .4 LW 77 108 72 108 DL 79 108 74 108 DL 84 108 79 108 DL +89 108 84 108 DL 94 108 89 108 DL 99 108 94 108 DL 104 108 99 108 DL 109 108 +104 108 DL 114 108 109 108 DL 119 108 114 108 DL 124 108 119 108 DL 129 108 124 +108 DL 134 108 129 108 DL 139 108 134 108 DL 144 108 139 108 DL 149 108 144 108 +DL 154 108 149 108 DL 159 108 154 108 DL 164 108 159 108 DL 169 108 164 108 DL +174 108 169 108 DL 179 108 174 108 DL 184 108 179 108 DL 189 108 184 108 DL 194 +108 189 108 DL 199 108 194 108 DL 204 108 199 108 DL 209 108 204 108 DL 214 108 +209 108 DL 219 108 214 108 DL 224 108 219 108 DL 229 108 224 108 DL 234 108 229 +108 DL 239 108 234 108 DL 244 108 239 108 DL 249 108 244 108 DL 254 108 249 108 +DL 259 108 254 108 DL 264 108 259 108 DL 269 108 264 108 DL 274 108 269 108 DL +279 108 274 108 DL 284 108 279 108 DL 289 108 284 108 DL 294 108 289 108 DL 299 +108 294 108 DL 304 108 299 108 DL 309 108 304 108 DL 314 108 309 108 DL 319 108 +314 108 DL 324 108 319 108 DL 329 108 324 108 DL 334 108 329 108 DL 339 108 334 +108 DL 344 108 339 108 DL 349 108 344 108 DL 354 108 349 108 DL 359 108 354 108 +DL 364 108 359 108 DL 369 108 364 108 DL 374 108 369 108 DL 379 108 374 108 DL +384 108 379 108 DL 389 108 384 108 DL 394 108 389 108 DL 399 108 394 108 DL 404 +108 399 108 DL 409 108 404 108 DL 414 108 409 108 DL 419 108 414 108 DL 424 108 +419 108 DL 429 108 424 108 DL 434 108 429 108 DL 439 108 434 108 DL 444 108 439 +108 DL 449 108 444 108 DL 454 108 449 108 DL 459 108 454 108 DL 464 108 459 108 +DL 469 108 464 108 DL 474 108 469 108 DL 479 108 474 108 DL 484 108 479 108 DL +489 108 484 108 DL 494 108 489 108 DL 499 108 494 108 DL 504 108 499 108 DL/F1 +10/Times-Roman@0 SF(addr)91.915 202.4 Q 133.2 200.4 111.6 200.4 DL 133.2 200.4 +126 202.2 DL 133.2 200.4 126 198.6 DL(3)141.5 202.4 Q 133.2 189.6 133.2 211.2 +DL 154.8 189.6 133.2 189.6 DL 154.8 211.2 154.8 189.6 DL 133.2 211.2 154.8 +211.2 DL 176.4 200.4 154.8 200.4 DL 176.4 200.4 169.2 202.2 DL 176.4 200.4 +169.2 198.6 DL(D)183.59 202.4 Q 176.4 189.6 176.4 211.2 DL 198 189.6 176.4 +189.6 DL 198 211.2 198 189.6 DL 176.4 211.2 198 211.2 DL 219.6 200.4 198 200.4 +DL 277.2 182.4 255.6 182.4 DL 277.2 182.4 270 184.2 DL 277.2 182.4 270 180.6 DL +(1)285.5 184.4 Q 277.2 171.6 277.2 193.2 DL 298.8 171.6 277.2 171.6 DL 298.8 +193.2 298.8 171.6 DL 277.2 193.2 298.8 193.2 DL 320.4 182.4 298.8 182.4 DL +320.4 182.4 313.2 184.2 DL 320.4 182.4 313.2 180.6 DL(S)328.42 184.4 Q 320.4 +171.6 320.4 193.2 DL 342 171.6 320.4 171.6 DL 342 193.2 342 171.6 DL 320.4 +193.2 342 193.2 DL 363.6 182.4 342 182.4 DL 277.2 218.4 255.6 218.4 DL 277.2 +218.4 270 220.2 DL 277.2 218.4 270 216.6 DL(2)285.5 220.4 Q 277.2 207.6 277.2 +229.2 DL 298.8 207.6 277.2 207.6 DL 298.8 229.2 298.8 207.6 DL 277.2 229.2 +298.8 229.2 DL 320.4 218.4 298.8 218.4 DL 320.4 218.4 313.2 220.2 DL 320.4 +218.4 313.2 216.6 DL(R)327.865 220.4 Q 320.4 207.6 320.4 229.2 DL 342 207.6 +320.4 207.6 DL 342 229.2 342 207.6 DL 320.4 229.2 342 229.2 DL 363.6 218.4 342 +218.4 DL 421.2 200.4 399.6 200.4 DL 421.2 200.4 414 202.2 DL 421.2 200.4 414 +198.6 DL(4)429.5 202.4 Q 421.2 189.6 421.2 211.2 DL 442.8 189.6 421.2 189.6 DL +442.8 211.2 442.8 189.6 DL 421.2 211.2 442.8 211.2 DL 464.4 200.4 442.8 200.4 +DL 464.4 200.4 457.2 202.2 DL 464.4 200.4 457.2 198.6 DL(msg)466.865 202.4 Q +255.6 182.4 219.6 200.4 DL 255.6 218.4 219.6 200.4 DL 399.6 200.4 363.6 182.4 +DL 399.6 200.4 363.6 218.4 DL 208.8 146.4 187.2 146.4 DL 208.8 146.4 201.6 +148.2 DL 208.8 146.4 201.6 144.6 DL(0)217.1 148.4 Q 208.8 135.6 208.8 157.2 DL +230.4 135.6 208.8 135.6 DL 230.4 157.2 230.4 135.6 DL 208.8 157.2 230.4 157.2 +DL 252 146.4 230.4 146.4 DL 252 146.4 244.8 148.2 DL 252 146.4 244.8 144.6 DL +(resolv)265.69 148.4 Q(ed address)-.15 E 187.2 146.4 162 200.4 DL +(Figure 2 \212 Re)216.045 248.4 Q(writing set semantics)-.25 E 2.5(D\212s) +209.35 260.4 S(ender domain addition)235.46 260.4 Q 2.5(S\212m)209.35 272.4 S +(ailer)237.69 272.4 Q(-speci\214c sender re)-.2 E(writing)-.25 E 2.5(R\212m) +209.35 284.4 S(ailer)238.8 284.4 Q(-speci\214c recipient re)-.2 E(writing)-.25 +E 77 296.4 72 296.4 DL 79 296.4 74 296.4 DL 84 296.4 79 296.4 DL 89 296.4 84 +296.4 DL 94 296.4 89 296.4 DL 99 296.4 94 296.4 DL 104 296.4 99 296.4 DL 109 +296.4 104 296.4 DL 114 296.4 109 296.4 DL 119 296.4 114 296.4 DL 124 296.4 119 +296.4 DL 129 296.4 124 296.4 DL 134 296.4 129 296.4 DL 139 296.4 134 296.4 DL +144 296.4 139 296.4 DL 149 296.4 144 296.4 DL 154 296.4 149 296.4 DL 159 296.4 +154 296.4 DL 164 296.4 159 296.4 DL 169 296.4 164 296.4 DL 174 296.4 169 296.4 +DL 179 296.4 174 296.4 DL 184 296.4 179 296.4 DL 189 296.4 184 296.4 DL 194 +296.4 189 296.4 DL 199 296.4 194 296.4 DL 204 296.4 199 296.4 DL 209 296.4 204 +296.4 DL 214 296.4 209 296.4 DL 219 296.4 214 296.4 DL 224 296.4 219 296.4 DL +229 296.4 224 296.4 DL 234 296.4 229 296.4 DL 239 296.4 234 296.4 DL 244 296.4 +239 296.4 DL 249 296.4 244 296.4 DL 254 296.4 249 296.4 DL 259 296.4 254 296.4 +DL 264 296.4 259 296.4 DL 269 296.4 264 296.4 DL 274 296.4 269 296.4 DL 279 +296.4 274 296.4 DL 284 296.4 279 296.4 DL 289 296.4 284 296.4 DL 294 296.4 289 +296.4 DL 299 296.4 294 296.4 DL 304 296.4 299 296.4 DL 309 296.4 304 296.4 DL +314 296.4 309 296.4 DL 319 296.4 314 296.4 DL 324 296.4 319 296.4 DL 329 296.4 +324 296.4 DL 334 296.4 329 296.4 DL 339 296.4 334 296.4 DL 344 296.4 339 296.4 +DL 349 296.4 344 296.4 DL 354 296.4 349 296.4 DL 359 296.4 354 296.4 DL 364 +296.4 359 296.4 DL 369 296.4 364 296.4 DL 374 296.4 369 296.4 DL 379 296.4 374 +296.4 DL 384 296.4 379 296.4 DL 389 296.4 384 296.4 DL 394 296.4 389 296.4 DL +399 296.4 394 296.4 DL 404 296.4 399 296.4 DL 409 296.4 404 296.4 DL 414 296.4 +409 296.4 DL 419 296.4 414 296.4 DL 424 296.4 419 296.4 DL 429 296.4 424 296.4 +DL 434 296.4 429 296.4 DL 439 296.4 434 296.4 DL 444 296.4 439 296.4 DL 449 +296.4 444 296.4 DL 454 296.4 449 296.4 DL 459 296.4 454 296.4 DL 464 296.4 459 +296.4 DL 469 296.4 464 296.4 DL 474 296.4 469 296.4 DL 479 296.4 474 296.4 DL +484 296.4 479 296.4 DL 489 296.4 484 296.4 DL 494 296.4 489 296.4 DL 499 296.4 +494 296.4 DL 504 296.4 499 296.4 DL .506(Ruleset zero is applied after ruleset\ + three to addresses that are going to actually spec-)157 332.4 R .296 +(ify recipients.)132 344.4 R .296(It must resolv)5.296 F 2.796(et)-.15 G 2.796 +(oa)258.04 344.4 S/F2 10/Times-Italic@0 SF({mailer)A 2.796(,h)-1.11 G .296 +(ost, user})312.368 344.4 R F1 2.795(triple. The)2.796 F F2(mailer)2.795 E F1 +.295(must be de\214ned in)2.795 F .56 +(the mailer de\214nitions from the con\214guration \214le.)132 356.4 R(The) +5.561 E F2(host)3.061 E F1 .561(is de\214ned into the)3.061 F F0($h)3.061 E F1 +.561(macro for)3.061 F(use in the ar)132 368.4 Q(gv e)-.18 E +(xpansion of the speci\214ed mailer)-.15 E(.)-.55 E 1.357(Rulesets one and tw) +157 384.6 R 3.857(oa)-.1 G 1.357 +(re applied to all sender and recipient addresses respecti)254.538 384.6 R -.15 +(ve)-.25 G(ly).15 E(.)-.65 E(The)132 396.6 Q 2.5(ya)-.15 G +(re applied before an)159.34 396.6 Q 2.5(ys)-.15 G +(peci\214cation in the mailer de\214nition.)250.27 396.6 Q(The)5 E 2.5(ym)-.15 +G(ust ne)429 396.6 Q -.15(ve)-.25 G 2.5(rr).15 G(esolv)470.81 396.6 Q(e.)-.15 E +.265(Ruleset four is applied to all addresses in the message.)157 412.8 R .266 +(It is typically used to translate)5.265 F(internal to e)132 424.8 Q +(xternal form.)-.15 E F0 2.5(5.1.1.4. IPC)117 448.8 R(mailers)2.5 E F1 .333 +(Some special processing occurs if the ruleset zero resolv)157 465 R .332 +(es to an IPC mailer \(that is, a)-.15 F .241 +(mailer that has \231[IPC]\232 listed as the P)132 477 R .241(ath in the)-.15 F +F0(M)2.741 E F1 .241(con\214guration line.)2.741 F .242(The host name passed) +5.242 F .885(after \231$@\232 has MX e)132 489 R .885 (xpansion performed; this looks the name up in DNS to \214nd alternate)-.15 F -(deli)132 349.2 Q -.15(ve)-.25 G(ry sites.).15 E(The host name can also be pro) -157 365.4 Q(vided as a dotted quad in square brack)-.15 E(ets; for e)-.1 E -(xample:)-.15 E([128.32.149.78])172 381.6 Q(This causes direct con)132 397.8 Q +(deli)132 501 Q -.15(ve)-.25 G(ry sites.).15 E(The host name can also be pro) +157 517.2 Q(vided as a dotted quad in square brack)-.15 E(ets; for e)-.1 E +(xample:)-.15 E([128.32.149.78])172 533.4 Q(This causes direct con)132 549.6 Q -.15(ve)-.4 G(rsion of the numeric v).15 E(alue to a TCP/IP host address.)-.25 E .894(The host name passed in after the \231$@\232 may also be a colon-separa\ -ted list of hosts.)157 414 R .629(Each is separately MX e)132 426 R .629 -(xpanded and the results are concatenated to mak)-.15 F 3.13(e\()-.1 G .63 -(essentially\) one)440.88 426 R .379(long MX list.)132 438 R .378 -(The intent here is to create \231f)5.379 F(ak)-.1 E .378 -(e\232 MX records that are not published in DNS)-.1 F(for pri)132 450 Q -.25 +ted list of hosts.)157 565.8 R .63(Each is separately MX e)132 577.8 R .629 +(xpanded and the results are concatenated to mak)-.15 F 3.129(e\()-.1 G .629 +(essentially\) one)440.881 577.8 R .378(long MX list.)132 589.8 R .378 +(The intent here is to create \231f)5.378 F(ak)-.1 E .378 +(e\232 MX records that are not published in DNS)-.1 F(for pri)132 601.8 Q -.25 (va)-.25 G(te internal netw).25 E(orks.)-.1 E .17 -(As a \214nal special case, the host name can be passed in as a te)157 466.2 R -.17(xt string in square brack-)-.15 F(ets:)132 478.2 Q([ucb)172 494.4 Q -.25 -(va)-.15 G(x.berk).25 E(ele)-.1 E -.65(y.)-.15 G(edu]).65 E 1.245(This form a) -132 510.6 R -.2(vo)-.2 G 1.245(ids the MX mapping.).2 F F0(N.B.:)6.244 E F1 -1.244(This is intended only for situations where you)3.744 F(ha)132 522.6 Q -.814 -.15(ve a n)-.2 H(etw).15 E .514(ork \214re)-.1 F -.1(wa)-.25 G .514 +(As a \214nal special case, the host name can be passed in as a te)157 618 R +.17(xt string in square brack-)-.15 F(ets:)132 630 Q([ucb)172 646.2 Q -.25(va) +-.15 G(x.berk).25 E(ele)-.1 E -.65(y.)-.15 G(edu]).65 E 1.244(This form a)132 +662.4 R -.2(vo)-.2 G 1.244(ids the MX mapping.).2 F F0(N.B.:)6.244 E F1 1.245 +(This is intended only for situations where you)3.744 F(ha)132 674.4 Q .814 +-.15(ve a n)-.2 H(etw).15 E .514(ork \214re)-.1 F -.1(wa)-.25 G .514 (ll, so that your MX record points to a g).1 F(ate)-.05 E -.1(wa)-.25 G 3.014 -(ym).1 G .514(achine; this machine)420.762 522.6 R 1.604 -(could then do direct deli)132 534.6 R -.15(ve)-.25 G 1.604 -(ry to machines within your local domain.).15 F 1.603(Use of this feature)6.603 +(ym).1 G .514(achine; this machine)420.762 674.4 R 1.603 +(could then do direct deli)132 686.4 R -.15(ve)-.25 G 1.604 +(ry to machines within your local domain.).15 F 1.604(Use of this feature)6.604 F(directly violates RFC 1123 section 5.3.5: it should not be used lightly)132 -546.6 Q(.)-.65 E F0 2.5(5.1.2. D)102 570.6 R 2.5<8a64>2.5 G(e\214ne macr)157.28 -570.6 Q(o)-.18 E F1 .546(Macros are named with a single character)142 586.8 R -5.546(.T)-.55 G .547(hese may be selected from the entire ASCII)325.492 586.8 R -.892(set, b)117 598.8 R .892(ut user)-.2 F .892 -(-de\214ned macros should be selected from the set of upper case letters only) --.2 F 5.892(.L)-.65 G -.25(ow)484.26 598.8 S(er).25 E -(case letters and special symbols are used internally)117 610.8 Q(.)-.65 E -(The syntax for macro de\214nitions is:)142 627 Q F0(D)157 643.2 Q F2 1.666(xv) -C(al)-1.666 E F1(where)117 659.4 Q F2(x)2.5 E F1(is the name of the macro and) -2.5 E F2(val)2.5 E F1(is the v)2.5 E(alue it should ha)-.25 E -.15(ve)-.2 G(.) -.15 E 1.085(Macros are interpolated using the construct)142 675.6 R F0($)3.585 -E F2(x)A F1 3.585(,w)C(here)346.775 675.6 Q F2(x)3.585 E F1 1.085 -(is the name of the macro to be)3.585 F 3.45(interpolated. This)117 687.6 R .95 -(interpolation is done when the con\214guration \214le is read, e)3.45 F .95 -(xcept in)-.15 F F0(M)3.45 E F1(lines.)3.45 E(The special construct)117 699.6 Q -F0($&)2.5 E F2(x)A F1(can be used in)2.5 E F0(R)2.5 E F1 -(lines to get deferred interpolation.)2.5 E EP -%%Page: 29 24 +698.4 Q(.)-.65 E EP +%%Page: 28 23 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-29)452.9 60 Q/F1 10/Times-Roman@0 SF -(Conditionals can be speci\214ed using the syntax:)142 96 Q($?x te)157 112.2 Q -(xt1 $| te)-.15 E(xt2 $.)-.15 E .245(This interpolates)117 128.4 R/F2 10 -/Times-Italic@0 SF(te)2.745 E(xt1)-.2 E F1 .245(if the macro)2.745 F F0($x) -2.745 E F1 .245(is set, and)2.745 F F2(te)2.745 E(xt2)-.2 E F1 2.745 -(otherwise. The)2.745 F .246(\231else\232 \()2.746 F F0($|)A F1 2.746(\)c)C -.246(lause may be)451.298 128.4 R(omitted.)117 140.4 Q(Lo)142 156.6 Q .262 -(wer case macro names are reserv)-.25 F .262(ed to ha)-.15 F .561 -.15(ve s)-.2 -H .261(pecial semantics, used to pass information).15 F 1.162(in or out of)117 -168.6 R F2(sendmail)3.663 E F1 3.663(,a)C 1.163 -(nd special characters are reserv)215.583 168.6 R 1.163(ed to pro)-.15 F 1.163 -(vide conditionals, etc.)-.15 F(Upper)6.163 E(case names \(that is,)117 180.6 Q -F0($A)2.5 E F1(through)2.5 E F0($Z)2.5 E F1 2.5(\)a)C(re speci\214cally reserv) -267.53 180.6 Q(ed for con\214guration \214le authors.)-.15 E .053(The follo)142 -196.8 R .053(wing macros are de\214ned and/or used internally by)-.25 F F2 -(sendmail)2.552 E F1 .052(for interpolation into)2.552 F(ar)117 208.8 Q(gv') --.18 E 5.178(sf)-.55 G 2.678(or mailers or for other conte)149.768 208.8 R -5.179(xts. The)-.15 F 2.679(ones mark)5.179 F 2.679 -(ed \207 are information passed into)-.1 F(sendmail)117 222.8 Q/F3 7 -/Times-Roman@0 SF(10)153.11 218.8 Q F1 4.232(,t)160.11 222.8 S 1.732 -(he ones mark)169.622 222.8 R 1.732 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-28 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E 2.5(5.1.2. D)102 96 R 2.5<8a64>2.5 G +(e\214ne macr)157.28 96 Q(o)-.18 E/F1 10/Times-Roman@0 SF .547 +(Macros are named with a single character)142 112.2 R 5.546(.T)-.55 G .546 +(hese may be selected from the entire ASCII)325.498 112.2 R .892(set, b)117 +124.2 R .892(ut user)-.2 F .892 +(-de\214ned macros should be selected from the set of upper case letters only) +-.2 F 5.892(.L)-.65 G -.25(ow)484.26 124.2 S(er).25 E +(case letters and special symbols are used internally)117 136.2 Q(.)-.65 E +(The syntax for macro de\214nitions is:)142 152.4 Q F0(D)157 168.6 Q/F2 10 +/Times-Italic@0 SF 1.666(xv)C(al)-1.666 E F1(where)117 184.8 Q F2(x)2.5 E F1 +(is the name of the macro and)2.5 E F2(val)2.5 E F1(is the v)2.5 E +(alue it should ha)-.25 E -.15(ve)-.2 G(.).15 E 1.085 +(Macros are interpolated using the construct)142 201 R F0($)3.585 E F2(x)A F1 +3.585(,w)C(here)346.775 201 Q F2(x)3.585 E F1 1.085 +(is the name of the macro to be)3.585 F 3.45(interpolated. This)117 213 R .95 +(interpolation is done when the con\214guration \214le is read, e)3.45 F .95 +(xcept in)-.15 F F0(M)3.45 E F1(lines.)3.45 E(The special construct)117 225 Q +F0($&)2.5 E F2(x)A F1(can be used in)2.5 E F0(R)2.5 E F1 +(lines to get deferred interpolation.)2.5 E +(Conditionals can be speci\214ed using the syntax:)142 241.2 Q($?x te)157 257.4 +Q(xt1 $| te)-.15 E(xt2 $.)-.15 E .246(This interpolates)117 273.6 R F2(te)2.746 +E(xt1)-.2 E F1 .246(if the macro)2.746 F F0($x)2.745 E F1 .245(is set, and) +2.745 F F2(te)2.745 E(xt2)-.2 E F1 2.745(otherwise. The)2.745 F .245 +(\231else\232 \()2.745 F F0($|)A F1 2.745(\)c)C .245(lause may be)451.3 273.6 R +(omitted.)117 285.6 Q(Lo)142 301.8 Q .261(wer case macro names are reserv)-.25 +F .261(ed to ha)-.15 F .562 -.15(ve s)-.2 H .262 +(pecial semantics, used to pass information).15 F 1.163(in or out of)117 313.8 +R F2(sendmail)3.663 E F1 3.663(,a)C 1.163(nd special characters are reserv) +215.585 313.8 R 1.163(ed to pro)-.15 F 1.163(vide conditionals, etc.)-.15 F +(Upper)6.162 E(case names \(that is,)117 325.8 Q F0($A)2.5 E F1(through)2.5 E +F0($Z)2.5 E F1 2.5(\)a)C(re speci\214cally reserv)267.53 325.8 Q +(ed for con\214guration \214le authors.)-.15 E .052(The follo)142 342 R .052 +(wing macros are de\214ned and/or used internally by)-.25 F F2(sendmail)2.553 E +F1 .053(for interpolation into)2.553 F(ar)117 354 Q(gv')-.18 E 5.179(sf)-.55 G +2.679(or mailers or for other conte)149.769 354 R 5.179(xts. The)-.15 F 2.678 +(ones mark)5.179 F 2.678(ed \207 are information passed into)-.1 F(sendmail)117 +368 Q/F3 7/Times-Roman@0 SF(10)153.11 364 Q F1 4.232(,t)160.11 368 S 1.732 +(he ones mark)169.622 368 R 1.732 (ed \210 are information passed both in and out of sendmail, and the)-.1 F -(unmark)117 234.8 Q 2.177(ed macros are passed out of sendmail b)-.1 F 2.177 -(ut are not otherwise used internally)-.2 F 7.177(.T)-.65 G(hese)486.23 234.8 Q -(macros are:)117 246.8 Q($a)117 263 Q F0(The origination date in RFC 822 f)142 -263 Q(ormat.)-.25 E F1($b)117 279.2 Q F0(The curr)142 279.2 Q -(ent date in RFC 822 f)-.18 E(ormat.)-.25 E F1($c)117 295.4 Q F0 -(The hop count.)142 295.4 Q F1($d)117 311.6 Q F0(The curr)142 311.6 Q -(ent date in UNIX \(ctime\) f)-.18 E(ormat.)-.25 E F1($e\207)117 327.8 Q F0 -1.342(The SMTP entry message.)142 327.8 R F1 1.341 -(This is printed out when SMTP starts up.)6.342 F 1.341(The \214rst w)6.341 F -(ord)-.1 E .428(must be the)142 339.8 R F0($j)2.928 E F1 .429 -(macro as speci\214ed by RFC821.)2.928 F(Def)5.429 E .429 +(unmark)117 380 Q 2.177(ed macros are passed out of sendmail b)-.1 F 2.177 +(ut are not otherwise used internally)-.2 F 7.176(.T)-.65 G(hese)486.23 380 Q +(macros are:)117 392 Q($a)117 408.2 Q F0(The origination date in RFC 822 f)142 +408.2 Q(ormat.)-.25 E F1($b)117 424.4 Q F0(The curr)142 424.4 Q +(ent date in RFC 822 f)-.18 E(ormat.)-.25 E F1($c)117 440.6 Q F0 +(The hop count.)142 440.6 Q F1($d)117 456.8 Q F0(The curr)142 456.8 Q +(ent date in UNIX \(ctime\) f)-.18 E(ormat.)-.25 E F1($e\207)117 473 Q F0 1.341 +(The SMTP entry message.)142 473 R F1 1.341 +(This is printed out when SMTP starts up.)6.341 F 1.342(The \214rst w)6.342 F +(ord)-.1 E .429(must be the)142 485 R F0($j)2.929 E F1 .429 +(macro as speci\214ed by RFC821.)2.929 F(Def)5.429 E .428 (aults to \231$j Sendmail $v ready at $b\232.)-.1 F 2.313 -(Commonly rede\214ned to include the con\214guration v)142 351.8 R 2.313 -(ersion number)-.15 F 4.813(,e)-.4 G 2.313(.g., \231$j Sendmail)431.874 351.8 R -($v/$Z ready at $b\232)142 363.8 Q($f)117 380 Q F0(The sender \(fr)142 380 Q -(om\) addr)-.18 E(ess.)-.18 E F1($g)117 396.2 Q F0(The sender addr)142 396.2 Q -(ess r)-.18 E(elati)-.18 E .2 -.1(ve t)-.1 H 2.5(ot).1 G(he r)275.59 396.2 Q -(ecipient.)-.18 E F1($h)117 412.4 Q F0(The r)142 412.4 Q(ecipient host.)-.18 E -F1($i)117 428.6 Q F0(The queue id.)142 428.6 Q F1($j\210)117 444.8 Q F0 .557 -(The \231of\214cial\232 domain name f)142 444.8 R .557(or this site.)-.25 F F1 -.557(This is fully quali\214ed if the full quali\214cation)5.557 F .137 -(can be found.)142 456.8 R(It)5.137 E F2(must)2.637 E F1 .136 -(be rede\214ned to be the fully quali\214ed domain name if your system is)2.637 -F(not con\214gured so that information can \214nd it automatically)142 468.8 Q -(.)-.65 E($k)117 485 Q F0(The UUCP node name \(fr)142 485 Q -(om the uname system call\).)-.18 E F1($l\207)117 501.2 Q F0 .972(The f)142 -501.2 R .972(ormat of the UNIX fr)-.25 F .972(om line.)-.18 F F1 .972 +(Commonly rede\214ned to include the con\214guration v)142 497 R 2.313 +(ersion number)-.15 F 4.813(,e)-.4 G 2.313(.g., \231$j Sendmail)431.874 497 R +($v/$Z ready at $b\232)142 509 Q($f)117 525.2 Q F0(The sender \(fr)142 525.2 Q +(om\) addr)-.18 E(ess.)-.18 E F1($g)117 541.4 Q F0(The sender addr)142 541.4 Q +(ess r)-.18 E(elati)-.18 E .2 -.1(ve t)-.1 H 2.5(ot).1 G(he r)275.59 541.4 Q +(ecipient.)-.18 E F1($h)117 557.6 Q F0(The r)142 557.6 Q(ecipient host.)-.18 E +F1($i)117 573.8 Q F0(The queue id.)142 573.8 Q F1($j\210)117 590 Q F0 .558 +(The \231of\214cial\232 domain name f)142 590 R .557(or this site.)-.25 F F1 +.557(This is fully quali\214ed if the full quali\214cation)5.557 F .136 +(can be found.)142 602 R(It)5.136 E F2(must)2.636 E F1 .137 +(be rede\214ned to be the fully quali\214ed domain name if your system is)2.636 +F(not con\214gured so that information can \214nd it automatically)142 614 Q(.) +-.65 E($k)117 630.2 Q F0(The UUCP node name \(fr)142 630.2 Q +(om the uname system call\).)-.18 E F1($l\207)117 646.4 Q F0 .973(The f)142 +646.4 R .972(ormat of the UNIX fr)-.25 F .972(om line.)-.18 F F1 .972 (Unless you ha)5.972 F 1.272 -.15(ve c)-.2 H .972(hanged the UNIX mailbox for) -.15 F(-)-.2 E(mat, you should not change the def)142 513.2 Q -(ault, which is \231From $g)-.1 E($d\232.)5 E($m)117 529.4 Q F0 .84 -(The domain part of the)142 529.4 R F2 -.1(ge)3.339 G(thostname).1 E F0 -.18 -(re)3.339 G(tur).18 E 3.339(nv)-.15 G(alue.)337.055 529.4 Q F1 .839 -(Under normal circumstances,)5.839 F F0($j)3.339 E F1(is)3.339 E(equi)142 541.4 -Q -.25(va)-.25 G(lent to).25 E F0($w)2.5 E(.$m)-.7 E F1(.)A($n\207)117 557.6 Q -F0(The name of the daemon \(f)142 557.6 Q(or err)-.25 E(or messages\).)-.18 E -F1(Def)5 E(aults to \231MAILER-D)-.1 E(AEMON\232.)-.4 E($o\207)117 573.8 Q F0 -.335(The set of)142 573.8 R F1 .335 -(operators" A list of characters which will be considered tok)2.835 F .336 -(ens and which will)-.1 F .422(separate tok)142 585.8 R .422 -(ens when doing parsing.)-.1 F -.15(Fo)5.422 G 2.921(re).15 G .421 -(xample, if \231@\232 were in the)315.211 585.8 R F0($o)2.921 E F1 .421 -(macro, then the)2.921 F .995(input \231a@b\232 w)142 597.8 R .995 -(ould be scanned as three tok)-.1 F .995(ens: \231a,)-.1 F 3.495<9a99>-.7 G(@,) -364.765 597.8 Q 3.495<9a61>-.7 G .995(nd \231b)388.15 597.8 R 4.895 -.7 -(.\232 D)-.4 H(ef).7 E .995(aults to \231.:@[]\232,)-.1 F .926(which is the mi\ -nimum set necessary to do RFC 822 parsing; a richer set of operators is)142 -609.8 R(\231.:%@!/[]\232, which adds support for UUCP)142 621.8 Q 2.5(,t)-1.11 -G(he %-hack, and X.400 addresses.)319.24 621.8 Q($p)117 638 Q F0(Sendmail')142 -638 Q 2.5(sp)-.37 G -.18(ro)196.92 638 S(cess id.).18 E F1($q\207)117 654.2 Q -F0 2.357(Default f)142 654.2 R 2.357(ormat of sender addr)-.25 F(ess.)-.18 E F1 -(The)7.357 E F0($q)4.857 E F1 2.358(macro speci\214es ho)4.858 F 4.858(wa)-.25 -G 4.858(na)432.624 654.2 S 2.358(ddress should)446.922 654.2 R .626 -(appear in a message when it is def)142 666.2 R 3.126(aulted. Def)-.1 F .626 -(aults to \231<$g>\232.)-.1 F .625(It is commonly rede\214ned)5.625 F .182 -(to be \231$?x$x <$g>$|$g$.)142 678.2 R 5.182<9a6f>-.7 G 2.682<7299>255.848 -678.2 S .182($g$?x \($x\)$.)266.3 678.2 R .183 -(\232, corresponding to the follo)-.7 F .183(wing tw)-.25 F 2.683(of)-.1 G -(ormats:)474 678.2 Q .32 LW 76 687.8 72 687.8 DL 80 687.8 76 687.8 DL 84 687.8 -80 687.8 DL 88 687.8 84 687.8 DL 92 687.8 88 687.8 DL 96 687.8 92 687.8 DL 100 -687.8 96 687.8 DL 104 687.8 100 687.8 DL 108 687.8 104 687.8 DL 112 687.8 108 -687.8 DL 116 687.8 112 687.8 DL 120 687.8 116 687.8 DL 124 687.8 120 687.8 DL -128 687.8 124 687.8 DL 132 687.8 128 687.8 DL 136 687.8 132 687.8 DL 140 687.8 -136 687.8 DL 144 687.8 140 687.8 DL 148 687.8 144 687.8 DL 152 687.8 148 687.8 -DL 156 687.8 152 687.8 DL 160 687.8 156 687.8 DL 164 687.8 160 687.8 DL 168 -687.8 164 687.8 DL 172 687.8 168 687.8 DL 176 687.8 172 687.8 DL 180 687.8 176 -687.8 DL 184 687.8 180 687.8 DL 188 687.8 184 687.8 DL 192 687.8 188 687.8 DL -196 687.8 192 687.8 DL 200 687.8 196 687.8 DL 204 687.8 200 687.8 DL 208 687.8 -204 687.8 DL 212 687.8 208 687.8 DL 216 687.8 212 687.8 DL/F4 5/Times-Roman@0 -SF(10)93.6 698.2 Q/F5 8/Times-Roman@0 SF(As of v)3.2 I -(ersion 8.6, all of these macros ha)-.12 E .24 -.12(ve r)-.16 H(easonable def) -.12 E 2(aults. Pre)-.08 F(vious v)-.2 E(ersions required that the)-.12 E 2(yb) --.12 G 2(ed)424.728 701.4 S(e\214ned.)434.28 701.4 Q EP -%%Page: 30 25 +.15 F(-)-.2 E(mat, you should not change the def)142 658.4 Q +(ault, which is \231From $g)-.1 E($d\232.)5 E .32 LW 76 678.8 72 678.8 DL 80 +678.8 76 678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 678.8 DL 92 678.8 88 678.8 +DL 96 678.8 92 678.8 DL 100 678.8 96 678.8 DL 104 678.8 100 678.8 DL 108 678.8 +104 678.8 DL 112 678.8 108 678.8 DL 116 678.8 112 678.8 DL 120 678.8 116 678.8 +DL 124 678.8 120 678.8 DL 128 678.8 124 678.8 DL 132 678.8 128 678.8 DL 136 +678.8 132 678.8 DL 140 678.8 136 678.8 DL 144 678.8 140 678.8 DL 148 678.8 144 +678.8 DL 152 678.8 148 678.8 DL 156 678.8 152 678.8 DL 160 678.8 156 678.8 DL +164 678.8 160 678.8 DL 168 678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 678.8 +172 678.8 DL 180 678.8 176 678.8 DL 184 678.8 180 678.8 DL 188 678.8 184 678.8 +DL 192 678.8 188 678.8 DL 196 678.8 192 678.8 DL 200 678.8 196 678.8 DL 204 +678.8 200 678.8 DL 208 678.8 204 678.8 DL 212 678.8 208 678.8 DL 216 678.8 212 +678.8 DL/F4 5/Times-Roman@0 SF(10)93.6 689.2 Q/F5 8/Times-Roman@0 SF(As of v) +3.2 I(ersion 8.6, all of these macros ha)-.12 E .24 -.12(ve r)-.16 H +(easonable def).12 E 2(aults. Pre)-.08 F(vious v)-.2 E +(ersions required that the)-.12 E 2(yb)-.12 G 2(ed)424.728 692.4 S(e\214ned.) +434.28 692.4 Q EP +%%Page: 29 24 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-30 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -(Eric Allman <eric@CS.Berk)182 96 Q(ele)-.1 E -.65(y.)-.15 G(EDU>).65 E -(eric@CS.Berk)182 108 Q(ele)-.1 E -.65(y.)-.15 G(EDU \(Eric Allman\)).65 E/F2 -10/Times-Italic@0 SF(Sendmail)142 124.2 Q F1(properly quotes names that ha)2.5 -E .3 -.15(ve s)-.2 H(pecial characters if the \214rst form is used.).15 E($r) -117 140.4 Q F0(Pr)142 140.4 Q(otocol used to r)-.18 E(ecei)-.18 E .2 -.1(ve t) --.1 H(he message.).1 E F1($s)117 156.6 Q F0(Sender')142 156.6 Q 2.5(sh)-.37 G -(ost name.)186.91 156.6 Q F1($t)117 172.8 Q F0 2.5(An)142 172.8 S(umeric r) -157.28 172.8 Q(epr)-.18 E(esentation of the curr)-.18 E(ent time.)-.18 E F1($u) -117 189 Q F0(The r)142 189 Q(ecipient user)-.18 E(.)-1 E F1($v)117 205.2 Q F0 -(The v)142 205.2 Q(ersion number of)-.1 E F2(sendmail)2.5 E F0(.)A F1($w\210) -117 221.4 Q F0(The hostname of this site.)7.78 E F1(The)142 237.6 Q F0($w)2.5 E -F1(macro is set to the root name of this host \(b)2.5 E(ut see belo)-.2 E 2.5 -(wf)-.25 G(or ca)403.46 237.6 Q -.15(ve)-.2 G(ats\).).15 E($x)117 253.8 Q F0 -(The full name of the sender)142 253.8 Q(.)-1 E F1($z)117 270 Q F0 -(The home dir)142 270 Q(ectory of the r)-.18 E(ecipient.)-.18 E F1($_)117 286.2 -Q F0(The v)142 286.2 Q(alidated sender addr)-.1 E(ess.)-.18 E F1 .918 -(There are three types of dates that can be used.)142 302.4 R(The)5.918 E F0 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-29)452.9 60 Q/F1 10/Times-Roman@0 SF($m)117 96 Q F0 .839 +(The domain part of the)142 96 R/F2 10/Times-Italic@0 SF -.1(ge)3.339 G +(thostname).1 E F0 -.18(re)3.339 G(tur).18 E 3.339(nv)-.15 G(alue.)337.053 96 Q +F1 .839(Under normal circumstances,)5.839 F F0($j)3.34 E F1(is)3.34 E(equi)142 +108 Q -.25(va)-.25 G(lent to).25 E F0($w)2.5 E(.$m)-.7 E F1(.)A($n\207)117 +124.2 Q F0(The name of the daemon \(f)142 124.2 Q(or err)-.25 E(or messages\).) +-.18 E F1(Def)5 E(aults to \231MAILER-D)-.1 E(AEMON\232.)-.4 E($o\207)117 140.4 +Q F0 2.031(The set of \231operators\232 in addr)142 140.4 R(esses.)-.18 E F1 +4.531(Al)7.031 G 2.031(ist of characters which will be considered)325.747 140.4 +R(tok)142 152.4 Q .537(ens and which will separate tok)-.1 F .537 +(ens when doing parsing.)-.1 F -.15(Fo)5.537 G 3.037(re).15 G .537 +(xample, if \231@\232 were in)408.5 152.4 R(the)142 164.4 Q F0($o)2.899 E F1 +.398(macro, then the input \231a@b\232 w)2.899 F .398 +(ould be scanned as three tok)-.1 F .398(ens: \231a,)-.1 F 2.898<9a99>-.7 G(@,) +453.034 164.4 Q 2.898<9a61>-.7 G .398(nd \231b)475.822 164.4 R -.7<2e9a>-.4 G +(Def)142 176.4 Q .436(aults to \231.:@[]\232, which is the minimum set necessa\ +ry to do RFC 822 parsing; a richer)-.1 F 1.716 +(set of operators is \231.:%@!/[]\232, which adds support for UUCP)142 188.4 R +4.215(,t)-1.11 G 1.715(he %-hack, and X.400)409.715 188.4 R(addresses.)142 +200.4 Q($p)117 216.6 Q F0(Sendmail')142 216.6 Q 2.5(sp)-.37 G -.18(ro)196.92 +216.6 S(cess id.).18 E F1($q\207)117 232.8 Q F0 2.357(Default f)142 232.8 R +2.357(ormat of sender addr)-.25 F(ess.)-.18 E F1(The)7.357 E F0($q)4.857 E F1 +2.358(macro speci\214es ho)4.858 F 4.858(wa)-.25 G 4.858(na)432.624 232.8 S +2.358(ddress should)446.922 232.8 R .626(appear in a message when it is def)142 +244.8 R 3.126(aulted. Def)-.1 F .626(aults to \231<$g>\232.)-.1 F .625 +(It is commonly rede\214ned)5.625 F .182(to be \231$?x$x <$g>$|$g$.)142 256.8 R +5.182<9a6f>-.7 G 2.682<7299>255.848 256.8 S .182($g$?x \($x\)$.)266.3 256.8 R +.183(\232, corresponding to the follo)-.7 F .183(wing tw)-.25 F 2.683(of)-.1 G +(ormats:)474 256.8 Q(Eric Allman <eric@CS.Berk)182 273 Q(ele)-.1 E -.65(y.)-.15 +G(EDU>).65 E(eric@CS.Berk)182 285 Q(ele)-.1 E -.65(y.)-.15 G +(EDU \(Eric Allman\)).65 E F2(Sendmail)142 301.2 Q F1 +(properly quotes names that ha)2.5 E .3 -.15(ve s)-.2 H +(pecial characters if the \214rst form is used.).15 E($r)117 317.4 Q F0(Pr)142 +317.4 Q(otocol used to r)-.18 E(ecei)-.18 E .2 -.1(ve t)-.1 H(he message.).1 E +F1($s)117 333.6 Q F0(Sender')142 333.6 Q 2.5(sh)-.37 G(ost name.)186.91 333.6 Q +F1($t)117 349.8 Q F0 2.5(An)142 349.8 S(umeric r)157.28 349.8 Q(epr)-.18 E +(esentation of the curr)-.18 E(ent time.)-.18 E F1($u)117 366 Q F0(The r)142 +366 Q(ecipient user)-.18 E(.)-1 E F1($v)117 382.2 Q F0(The v)142 382.2 Q +(ersion number of)-.1 E F2(sendmail)2.5 E F0(.)A F1($w\210)117 398.4 Q F0 +(The hostname of this site.)7.78 E F1(The)142 414.6 Q F0($w)2.5 E F1 +(macro is set to the root name of this host \(b)2.5 E(ut see belo)-.2 E 2.5(wf) +-.25 G(or ca)403.46 414.6 Q -.15(ve)-.2 G(ats\).).15 E($x)117 430.8 Q F0 +(The full name of the sender)142 430.8 Q(.)-1 E F1($z)117 447 Q F0 +(The home dir)142 447 Q(ectory of the r)-.18 E(ecipient.)-.18 E F1($_)117 463.2 +Q F0(The v)142 463.2 Q(alidated sender addr)-.1 E(ess.)-.18 E F1 .918 +(There are three types of dates that can be used.)142 479.4 R(The)5.918 E F0 ($a)3.418 E F1(and)3.418 E F0($b)3.418 E F1 .917(macros are in RFC 822)3.418 F -(format;)117 314.4 Q F0($a)3.046 E F1 .546(is the time as e)3.046 F .547 +(format;)117 491.4 Q F0($a)3.046 E F1 .546(is the time as e)3.046 F .547 (xtracted from the \231Date:\232 line of the message \(if there w)-.15 F .547 -(as one\), and)-.1 F F0($b)117 326.4 Q F1 .145 +(as one\), and)-.1 F F0($b)117 503.4 Q F1 .145 (is the current date and time \(used for postmarks\).)2.645 F .145 -(If no \231Date:\232 line is found in the incoming)5.145 F(message,)117 338.4 Q +(If no \231Date:\232 line is found in the incoming)5.145 F(message,)117 515.4 Q F0($a)2.546 E F1 .046(is set to the current time also.)2.546 F(The)5.046 E F0 ($d)2.546 E F1 .046(macro is equi)2.546 F -.25(va)-.25 G .047(lent to the).25 F -F0($b)2.547 E F1 .047(macro in UNIX)2.547 F(\(ctime\) format.)117 350.4 Q .607 -(The macros)142 366.6 R F0($w)3.107 E F1(,)A F0($j)3.107 E F1 3.107(,a)C(nd) -228.848 366.6 Q F0($m)3.107 E F1 .607(are set to the identity of this host.) +F0($b)2.547 E F1 .047(macro in UNIX)2.547 F(\(ctime\) format.)117 527.4 Q .607 +(The macros)142 543.6 R F0($w)3.107 E F1(,)A F0($j)3.107 E F1 3.107(,a)C(nd) +228.848 543.6 Q F0($m)3.107 E F1 .607(are set to the identity of this host.) 3.107 F F2(Sendmail)5.606 E F1 .606(tries to \214nd the)3.106 F .025(fully qua\ -li\214ed name of the host if at all possible; it does this by calling)117 378.6 +li\214ed name of the host if at all possible; it does this by calling)117 555.6 R F2 -.1(ge)2.525 G(thostname).1 E F1 .025(\(2\) to get the)B 1.512 -(current hostname and then passing that to)117 390.6 R F2 -.1(ge)4.012 G +(current hostname and then passing that to)117 567.6 R F2 -.1(ge)4.012 G (thostbyname).1 E F1 1.511(\(3\) which is supposed to return the)B .184 -(canonical v)117 404.6 R .184(ersion of that host name.)-.15 F/F3 7 -/Times-Roman@0 SF(11)262.19 400.6 Q F1 .184(Assuming this is successful,) -271.874 404.6 R F0($j)2.684 E F1 .185(is set to the fully quali\214ed)2.685 F -1.464(name and)117 416.6 R F0($m)3.964 E F1 1.464 +(canonical v)117 581.6 R .184(ersion of that host name.)-.15 F/F3 7 +/Times-Roman@0 SF(11)262.19 577.6 Q F1 .184(Assuming this is successful,) +271.874 581.6 R F0($j)2.684 E F1 .185(is set to the fully quali\214ed)2.685 F +1.464(name and)117 593.6 R F0($m)3.964 E F1 1.464 (is set to the domain part of the name \(e)3.964 F -.15(ve)-.25 G 1.464 (rything after the \214rst dot\).).15 F(The)6.463 E F0($w)3.963 E F1 .166 -(macro is set to the \214rst w)117 428.6 R .166(ord \(e)-.1 F -.15(ve)-.25 G +(macro is set to the \214rst w)117 605.6 R .166(ord \(e)-.1 F -.15(ve)-.25 G .166(rything before the \214rst dot\) if you ha).15 F .466 -.15(ve a l)-.2 H --2.15 -.25(ev e).15 H 2.666(l5o).25 G 2.666(rh)452.018 428.6 S .166(igher con-) -463.014 428.6 R .184(\214guration \214le; otherwise, it is set to the same v) -117 440.6 R .183(alue as)-.25 F F0($j)2.683 E F1 5.183(.I)C 2.683(ft)355.325 -440.6 S .183(he canoni\214cation is not successful,)364.118 440.6 R -(it is imperati)117 454.6 Q .3 -.15(ve t)-.25 H(hat the con\214g \214le set).15 -E F0($j)2.5 E F1(to the fully quali\214ed domain name)2.5 E F3(12)416.59 450.6 -Q F1(.)423.59 454.6 Q(The)142 470.8 Q F0($f)3.114 E F1 .614(macro is the id of\ +-2.15 -.25(ev e).15 H 2.666(l5o).25 G 2.666(rh)452.018 605.6 S .166(igher con-) +463.014 605.6 R .184(\214guration \214le; otherwise, it is set to the same v) +117 617.6 R .183(alue as)-.25 F F0($j)2.683 E F1 5.183(.I)C 2.683(ft)355.325 +617.6 S .183(he canoni\214cation is not successful,)364.118 617.6 R +(it is imperati)117 631.6 Q .3 -.15(ve t)-.25 H(hat the con\214g \214le set).15 +E F0($j)2.5 E F1(to the fully quali\214ed domain name)2.5 E F3(12)416.59 627.6 +Q F1(.)423.59 631.6 Q(The)142 647.8 Q F0($f)3.114 E F1 .614(macro is the id of\ the sender as originally determined; when mailing to a speci\214c)3.114 F .602 -(host the)117 482.8 R F0($g)3.102 E F1 .602 +(host the)117 659.8 R F0($g)3.102 E F1 .602 (macro is set to the address of the sender)3.102 F F2 -.37(re)3.101 G .601 (lative to the r).37 F(ecipient.)-.37 E F1 -.15(Fo)5.601 G 3.101(re).15 G .601 -(xample, if I)456.418 482.8 R 1.65(send to \231bollard@matisse.CS.Berk)117 -494.8 R(ele)-.1 E -.65(y.)-.15 G 1.65(EDU\232 from the machine \231v).65 F -(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU\232).65 E(the)117 506.8 Q -F0($f)2.5 E F1(macro will be \231eric\232 and the)2.5 E F0($g)2.5 E F1 +(xample, if I)456.418 659.8 R .32 LW 76 669.4 72 669.4 DL 80 669.4 76 669.4 DL +84 669.4 80 669.4 DL 88 669.4 84 669.4 DL 92 669.4 88 669.4 DL 96 669.4 92 +669.4 DL 100 669.4 96 669.4 DL 104 669.4 100 669.4 DL 108 669.4 104 669.4 DL +112 669.4 108 669.4 DL 116 669.4 112 669.4 DL 120 669.4 116 669.4 DL 124 669.4 +120 669.4 DL 128 669.4 124 669.4 DL 132 669.4 128 669.4 DL 136 669.4 132 669.4 +DL 140 669.4 136 669.4 DL 144 669.4 140 669.4 DL 148 669.4 144 669.4 DL 152 +669.4 148 669.4 DL 156 669.4 152 669.4 DL 160 669.4 156 669.4 DL 164 669.4 160 +669.4 DL 168 669.4 164 669.4 DL 172 669.4 168 669.4 DL 176 669.4 172 669.4 DL +180 669.4 176 669.4 DL 184 669.4 180 669.4 DL 188 669.4 184 669.4 DL 192 669.4 +188 669.4 DL 196 669.4 192 669.4 DL 200 669.4 196 669.4 DL 204 669.4 200 669.4 +DL 208 669.4 204 669.4 DL 212 669.4 208 669.4 DL 216 669.4 212 669.4 DL/F4 5 +/Times-Roman@0 SF(11)93.6 679.8 Q/F5 8/Times-Roman@0 SF -.12(Fo)3.2 K 2(re).12 +G(xample, on some systems)115.024 683 Q/F6 8/Times-Italic@0 SF -.08(ge)2 G +(thostname).08 E F5(might return \231foo\232 which w)2 E +(ould be mapped to \231foo.bar)-.08 E(.com\232 by)-.44 E F6 -.08(ge)2 G +(thostbyname).08 E F5(.)A F4(12)93.6 693.4 Q F5(Older v)3.2 I +(ersions of sendmail didn')-.12 E 2(tp)-.144 G(re-de\214ne)211.88 696.6 Q/F7 8 +/Times-Bold@0 SF($j)2 E F5(at all, so up until 8.6, con\214g \214les)2 E F6 +(always)2 E F5(had to de\214ne)2 E F7($j)2 E F5(.)A EP +%%Page: 30 25 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 193.36(SMM:08-30 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.65 +(send to \231bollard@matisse.CS.Berk)117 96 R(ele)-.1 E -.65(y.)-.15 G 1.65 +(EDU\232 from the machine \231v).65 F(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.) +-.15 G(EDU\232).65 E(the)117 108 Q F0($f)2.5 E F1 +(macro will be \231eric\232 and the)2.5 E F0($g)2.5 E F1 (macro will be \231eric@v)2.5 E(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G -(EDU.).65 E<9a>-.7 E(The)142 523 Q F0($x)3.838 E F1 1.338 +(EDU.).65 E<9a>-.7 E(The)142 124.2 Q F0($x)3.838 E F1 1.338 (macro is set to the full name of the sender)3.838 F 6.337(.T)-.55 G 1.337 -(his can be determined in se)369.135 523 R -.15(ve)-.25 G(ral).15 E -.1(wa)117 -535 S 2.952(ys. It).1 F .453(can be passed as \215ag to)2.953 F F2(sendmail) -2.953 E F1 5.453(.T)C .453(he second choice is the v)303.446 535 R .453 -(alue of the \231Full-name:\232)-.25 F .513(line in the header if it e)117 547 -R .512 +(his can be determined in se)369.135 124.2 R -.15(ve)-.25 G(ral).15 E -.1(wa) +117 136.2 S 2.952(ys. It).1 F .453(can be passed as \215ag to)2.953 F/F2 10 +/Times-Italic@0 SF(sendmail)2.953 E F1 5.453(.T)C .453 +(he second choice is the v)303.446 136.2 R .453(alue of the \231Full-name:\232) +-.25 F .513(line in the header if it e)117 148.2 R .512 (xists, and the third choice is the comment \214eld of a \231From:\232 line.) --.15 F .512(If all)5.512 F 1.148(of these f)117 559 R 1.148 +-.15 F .512(If all)5.512 F 1.148(of these f)117 160.2 R 1.148 (ail, and if the message is being originated locally)-.1 F 3.648(,t)-.65 G -1.149(he full name is look)369.678 559 R 1.149(ed up in the)-.1 F F2 -(/etc/passwd)117 571 Q F1(\214le.)2.5 E .439(When sending, the)142 587.2 R F0 -($h)2.939 E F1(,)A F0($u)2.939 E F1 2.938(,a)C(nd)256.964 587.2 Q F0($z)2.938 E +1.149(he full name is look)369.678 160.2 R 1.149(ed up in the)-.1 F F2 +(/etc/passwd)117 172.2 Q F1(\214le.)2.5 E .439(When sending, the)142 188.4 R F0 +($h)2.939 E F1(,)A F0($u)2.939 E F1 2.938(,a)C(nd)256.964 188.4 Q F0($z)2.938 E F1 .438(macros get set to the host, user)2.938 F 2.938(,a)-.4 G .438 -(nd home directory \(if)417.426 587.2 R 1.454(local\) of the recipient.)117 -599.2 R 1.454(The \214rst tw)6.454 F 3.954(oa)-.1 G 1.454(re set from the) -278.438 599.2 R F0($@)3.955 E F1(and)3.955 E F0($:)3.955 E F1 1.455 -(part of the re)3.955 F 1.455(writing rules,)-.25 F(respecti)117 611.2 Q -.15 -(ve)-.25 G(ly).15 E(.)-.65 E(The)142 627.4 Q F0($p)2.806 E F1(and)2.806 E F0 +(nd home directory \(if)417.426 188.4 R 1.454(local\) of the recipient.)117 +200.4 R 1.454(The \214rst tw)6.454 F 3.954(oa)-.1 G 1.454(re set from the) +278.438 200.4 R F0($@)3.955 E F1(and)3.955 E F0($:)3.955 E F1 1.455 +(part of the re)3.955 F 1.455(writing rules,)-.25 F(respecti)117 212.4 Q -.15 +(ve)-.25 G(ly).15 E(.)-.65 E(The)142 228.6 Q F0($p)2.806 E F1(and)2.806 E F0 ($t)2.806 E F1 .306(macros are used to create unique strings \(e.g., for the \ -\231Message-Id:\232 \214eld\).)2.806 F(The)117 639.4 Q F0($i)2.537 E F1 .037(m\ +\231Message-Id:\232 \214eld\).)2.806 F(The)117 240.6 Q F0($i)2.537 E F1 .037(m\ acro is set to the queue id on this host; if put into the timestamp line it ca\ -n be e)2.537 F(xtremely)-.15 E .407(useful for tracking messages.)117 651.4 R +n be e)2.537 F(xtremely)-.15 E .407(useful for tracking messages.)117 252.6 R (The)5.407 E F0($v)2.907 E F1 .407(macro is set to be the v)2.907 F .407 (ersion number of)-.15 F F2(sendmail)2.907 E F1 2.907(;t)C .407(his is)482.753 -651.4 R(normally put in timestamps and has been pro)117 663.4 Q -.15(ve)-.15 G -2.5(ne).15 G(xtremely useful for deb)317.64 663.4 Q(ugging.)-.2 E .32 LW 76 673 -72 673 DL 80 673 76 673 DL 84 673 80 673 DL 88 673 84 673 DL 92 673 88 673 DL -96 673 92 673 DL 100 673 96 673 DL 104 673 100 673 DL 108 673 104 673 DL 112 -673 108 673 DL 116 673 112 673 DL 120 673 116 673 DL 124 673 120 673 DL 128 673 -124 673 DL 132 673 128 673 DL 136 673 132 673 DL 140 673 136 673 DL 144 673 140 -673 DL 148 673 144 673 DL 152 673 148 673 DL 156 673 152 673 DL 160 673 156 673 -DL 164 673 160 673 DL 168 673 164 673 DL 172 673 168 673 DL 176 673 172 673 DL -180 673 176 673 DL 184 673 180 673 DL 188 673 184 673 DL 192 673 188 673 DL 196 -673 192 673 DL 200 673 196 673 DL 204 673 200 673 DL 208 673 204 673 DL 212 673 -208 673 DL 216 673 212 673 DL/F4 5/Times-Roman@0 SF(11)93.6 683.4 Q/F5 8 -/Times-Roman@0 SF -.12(Fo)3.2 K 2(re).12 G(xample, on some systems)115.024 -686.6 Q/F6 8/Times-Italic@0 SF -.08(ge)2 G(thostname).08 E F5 -(might return \231foo\232 which w)2 E(ould be mapped to \231foo.bar)-.08 E -(.com\232 by)-.44 E F6 -.08(ge)2 G(thostbyname).08 E F5(.)A F4(12)93.6 697 Q F5 -(Older v)3.2 I(ersions of sendmail didn')-.12 E 2(tp)-.144 G(re-de\214ne)211.88 -700.2 Q/F7 8/Times-Bold@0 SF($j)2 E F5 -(at all, so up until 8.6, con\214g \214les)2 E F6(always)2 E F5 -(had to de\214ne)2 E F7($j)2 E F5(.)A EP -%%Page: 31 26 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-31)452.9 60 Q/F1 10/Times-Roman@0 SF(The)142 96 Q F0($c)2.714 E F1 .214 -(\214eld is set to the \231hop count,)2.714 F 2.714<9a69>-.7 G .215 -(.e., the number of times this message has been pro-)297.656 96 R 3.184 -(cessed. This)117 108 R .684(can be determined by the)3.184 F F0<ad68>3.184 E -F1 .683(\215ag on the command line or by counting the times-)3.184 F -(tamps in the message.)117 120 Q(The)142 136.2 Q F0($r)3.426 E F1(and)3.426 E -F0($s)3.426 E F1 .926 -(\214elds are set to the protocol used to communicate with)3.426 F/F2 10 -/Times-Italic@0 SF(sendmail)3.427 E F1 .927(and the)3.427 F(sending hostname.) -117 148.2 Q(The)142 164.4 Q F0($_)2.72 E F1 .22(is set to a v)2.72 F .22 -(alidated sender host name.)-.25 F .22 -(If the sender is running an RFC 1413 com-)5.22 F(pliant IDENT serv)117 176.4 Q -(er)-.15 E 2.5(,i)-.4 G 2.5(tw)206.43 176.4 S -(ill include the user name on that host.)218.93 176.4 Q F0 2.5(5.1.3. C)102 -200.4 R(and F \212 de\214ne classes)2.5 E F1 .197 +252.6 R(normally put in timestamps and has been pro)117 264.6 Q -.15(ve)-.15 G +2.5(ne).15 G(xtremely useful for deb)317.64 264.6 Q(ugging.)-.2 E(The)142 280.8 +Q F0($c)2.714 E F1 .214(\214eld is set to the \231hop count,)2.714 F 2.714 +<9a69>-.7 G .215(.e., the number of times this message has been pro-)297.656 +280.8 R 3.184(cessed. This)117 292.8 R .684(can be determined by the)3.184 F F0 +<ad68>3.184 E F1 .683(\215ag on the command line or by counting the times-) +3.184 F(tamps in the message.)117 304.8 Q(The)142 321 Q F0($r)3.426 E F1(and) +3.426 E F0($s)3.426 E F1 .926 +(\214elds are set to the protocol used to communicate with)3.426 F F2(sendmail) +3.427 E F1 .927(and the)3.427 F(sending hostname.)117 333 Q(The)142 349.2 Q F0 +($_)2.72 E F1 .22(is set to a v)2.72 F .22(alidated sender host name.)-.25 F +.22(If the sender is running an RFC 1413 com-)5.22 F(pliant IDENT serv)117 +361.2 Q(er)-.15 E 2.5(,i)-.4 G 2.5(tw)206.43 361.2 S +(ill include the user name on that host.)218.93 361.2 Q F0 2.5(5.1.3. C)102 +385.2 R(and F \212 de\214ne classes)2.5 E F1 .197 (Classes of phrases may be de\214ned to match on the left hand side of re)142 -216.6 R .197(writing rules, where)-.25 F 2.791<6199>117 228.6 S .291 +401.4 R .197(writing rules, where)-.25 F 2.791<6199>117 413.4 S .291 (phrase\232 is a sequence of characters that do not contain space characters.) -128.671 228.6 R -.15(Fo)5.29 G 2.79(re).15 G .29(xample a class)445.1 228.6 R +128.671 413.4 R -.15(Fo)5.29 G 2.79(re).15 G .29(xample a class)445.1 413.4 R .356(of all local names for this site might be created so that attempts to sen\ -d to oneself can be elimi-)117 240.6 R 2.89(nated. These)117 252.6 R .39(can e\ +d to oneself can be elimi-)117 425.4 R 2.89(nated. These)117 437.4 R .39(can e\ ither be de\214ned directly in the con\214guration \214le or read in from anot\ -her \214le.)2.89 F .796(Classes may be gi)117 264.6 R -.15(ve)-.25 G 3.296(nn) -.15 G .796(ames from the set of upper case letters.)213.664 264.6 R(Lo)5.796 E -.797(wer case letters and special)-.25 F(characters are reserv)117 276.6 Q -(ed for system use.)-.15 E(The syntax is:)142 292.8 Q F0(C)157 309 Q F2 1.666 -(cp)C(hr)-1.666 E(ase1 phr)-.15 E(ase2...)-.15 E F0(F)157 321 Q F2 1.666<638c>C -(le)-1.666 E F1 1.115(The \214rst form de\214nes the class)117 337.2 R F2(c) -3.615 E F1 1.115(to match an)3.615 F 3.614(yo)-.15 G 3.614(ft)319.638 337.2 S -1.114(he named w)329.362 337.2 R 3.614(ords. It)-.1 F 1.114 -(is permissible to split)3.614 F(them among multiple lines; for e)117 349.2 Q -(xample, the tw)-.15 E 2.5(of)-.1 G(orms:)317.57 349.2 Q(CHmonet ucbmonet)157 -365.4 Q(and)117 381.6 Q(CHmonet)157 397.8 Q(CHucbmonet)157 409.8 Q(are equi)117 -426 Q -.25(va)-.25 G 2.5(lent. The).25 F +her \214le.)2.89 F .796(Classes may be gi)117 449.4 R -.15(ve)-.25 G 3.296(nn) +.15 G .796(ames from the set of upper case letters.)213.664 449.4 R(Lo)5.796 E +.797(wer case letters and special)-.25 F(characters are reserv)117 461.4 Q +(ed for system use.)-.15 E(The syntax is:)142 477.6 Q F0(C)157 493.8 Q F2 1.666 +(cp)C(hr)-1.666 E(ase1 phr)-.15 E(ase2...)-.15 E F0(F)157 505.8 Q F2 1.666 +<638c>C(le)-1.666 E F1 1.115(The \214rst form de\214nes the class)117 522 R F2 +(c)3.615 E F1 1.115(to match an)3.615 F 3.614(yo)-.15 G 3.614(ft)319.638 522 S +1.114(he named w)329.362 522 R 3.614(ords. It)-.1 F 1.114 +(is permissible to split)3.614 F(them among multiple lines; for e)117 534 Q +(xample, the tw)-.15 E 2.5(of)-.1 G(orms:)317.57 534 Q(CHmonet ucbmonet)157 +550.2 Q(and)117 566.4 Q(CHmonet)157 582.6 Q(CHucbmonet)157 594.6 Q(are equi)117 +610.8 Q -.25(va)-.25 G 2.5(lent. The).25 F (second form reads the elements of the class)2.5 E F2(c)2.5 E F1 -(from the named)2.5 E F2(\214le)2.5 E F1(.)A(The)142 442.2 Q F0($~)3.112 E F1 +(from the named)2.5 E F2(\214le)2.5 E F1(.)A(The)142 627 Q F0($~)3.112 E F1 .613(\(match entries not in class\) only matches a single w)3.112 F .613 (ord; multi-w)-.1 F .613(ord entries in the)-.1 F -(class are ignored in this conte)117 454.2 Q(xt.)-.15 E .384(The class)142 -470.4 R F0($=w)2.884 E F1 .384 -(is set to be the set of all names this host is kno)2.884 F .384(wn by)-.25 F -5.384(.T)-.65 G .383(his can be used to)431.368 470.4 R(match local hostnames.) -117 482.4 Q(The class)142 498.6 Q F0($=k)2.5 E F1(is set to be the same as)2.5 -E F0($k)2.5 E F1 2.5(,t)C(hat is, the UUCP node name.)312.69 498.6 Q F0 2.5 -(5.1.4. M)102 522.6 R 2.5<8a64>2.5 G(e\214ne mailer)159.5 522.6 Q F1 -(Programs and interf)142 538.8 Q(aces to mailers are de\214ned in this line.) --.1 E(The format is:)5 E F0(M)157 555 Q F2(name)A F1 2.5(,{)C F2(\214eld)197.9 -555 Q F1(=)A F2(value)A F1(}*)1.666 E(where)117 571.2 Q F2(name)3.244 E F1 .744 -(is the name of the mailer \(used internally only\) and the \231\214eld=name\ -\232 pairs de\214ne)3.244 F(attrib)117 583.2 Q(utes of the mailer)-.2 E 5(.F) --.55 G(ields are:)220.13 583.2 Q -.15(Pa)157 599.4 S 51.87(th The).15 F -(pathname of the mailer)2.5 E 47.83(Flags Special)157 611.4 R -(\215ags for this mailer)2.5 E 41.73(Sender A)157 623.4 R(re)2.5 E -(writing set for sender addresses)-.25 E 31.17(Recipient A)157 635.4 R(re)2.5 E -(writing set for recipient addresses)-.25 E(Ar)157 647.4 Q 49.13(gv An)-.18 F -(ar)2.5 E(gument v)-.18 E(ector to pass to this mailer)-.15 E 55.61(Eol The)157 -659.4 R(end-of-line string for this mailer)2.5 E 35.62(Maxsize The)157 671.4 R -(maximum message length to this mailer)2.5 E 32.27(Linelimit The)157 683.4 R -(maximum line length in the message body)2.5 E 31.18(Directory The)157 695.4 R --.1(wo)2.5 G(rking directory for the mailer).1 E -(Only the \214rst character of the \214eld name is check)117 711.6 Q(ed.)-.1 E -EP -%%Page: 32 27 +(class are ignored in this conte)117 639 Q(xt.)-.15 E .384(The class)142 655.2 +R F0($=w)2.884 E F1 .384(is set to be the set of all names this host is kno) +2.884 F .384(wn by)-.25 F 5.384(.T)-.65 G .383(his can be used to)431.368 655.2 +R(match local hostnames.)117 667.2 Q(The class)142 683.4 Q F0($=k)2.5 E F1 +(is set to be the same as)2.5 E F0($k)2.5 E F1 2.5(,t)C +(hat is, the UUCP node name.)312.69 683.4 Q(The class)142 699.6 Q F0($=m)2.5 E +F1(is set to the set of domains by which this host is kno)2.5 E +(wn, initially just)-.25 E F0($m)2.5 E F1(.)A EP +%%Page: 31 26 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-32 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.144(The follo) -142 96 R 1.144(wing \215ags may be set in the mailer description.)-.25 F(An) -6.144 E 3.644(yo)-.15 G 1.144(ther \215ags may be used)409.994 96 R(freely to \ -conditionally assign headers to messages destined for particular mailers.)117 -108 Q 15.56(aR)117 124.2 S(un Extended SMTP \(ESMTP\) protocol \(de\214ned in \ -RFCs 1425, 1426, and 1427\).)143.67 124.2 Q 15(bF)117 140.4 S .674 -(orce a blank line on the end of a message.)142.41 140.4 R .674 +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-31)452.9 60 Q/F1 10/Times-Italic@0 SF(Sendmail)142 96 Q/F2 10 +/Times-Roman@0 SF .542(can be compiled to allo)3.042 F 3.042(wa)-.25 G F1 +(scanf)A F2 .542(\(3\) string on the)B F0(F)3.042 E F2 3.043(line. This)3.043 F +.543(lets you do sim-)3.043 F .52(plistic parsing of te)117 108 R .52 +(xt \214les.)-.15 F -.15(Fo)5.52 G 3.02(re).15 G .519 +(xample, to read all the user names in your system)251.89 108 R F1(/etc/passwd) +3.019 E F2(\214le into a class, use)117 120 Q(FL/etc/passwd %[^:])157 136.2 Q +(which reads e)117 152.4 Q -.15(ve)-.25 G(ry line up to the \214rst colon.).15 +E F0 2.5(5.1.4. M)102 176.4 R 2.5<8a64>2.5 G(e\214ne mailer)159.5 176.4 Q F2 +(Programs and interf)142 192.6 Q(aces to mailers are de\214ned in this line.) +-.1 E(The format is:)5 E F0(M)157 208.8 Q F1(name)A F2 2.5(,{)C F1(\214eld) +197.9 208.8 Q F2(=)A F1(value)A F2(}*)1.666 E(where)117 225 Q F1(name)3.244 E +F2 .744(is the name of the mailer \(used internally only\) and the \231\214eld\ +=name\232 pairs de\214ne)3.244 F(attrib)117 237 Q(utes of the mailer)-.2 E 5 +(.F)-.55 G(ields are:)220.13 237 Q -.15(Pa)157 253.2 S 51.87(th The).15 F +(pathname of the mailer)2.5 E 47.83(Flags Special)157 265.2 R +(\215ags for this mailer)2.5 E 41.73(Sender A)157 277.2 R(re)2.5 E +(writing set for sender addresses)-.25 E 31.17(Recipient A)157 289.2 R(re)2.5 E +(writing set for recipient addresses)-.25 E(Ar)157 301.2 Q 49.13(gv An)-.18 F +(ar)2.5 E(gument v)-.18 E(ector to pass to this mailer)-.15 E 55.61(Eol The)157 +313.2 R(end-of-line string for this mailer)2.5 E 35.62(Maxsize The)157 325.2 R +(maximum message length to this mailer)2.5 E 32.27(Linelimit The)157 337.2 R +(maximum line length in the message body)2.5 E 31.18(Directory The)157 349.2 R +-.1(wo)2.5 G(rking directory for the mailer).1 E +(Only the \214rst character of the \214eld name is check)117 365.4 Q(ed.)-.1 E +1.144(The follo)142 381.6 R 1.144 +(wing \215ags may be set in the mailer description.)-.25 F(An)6.144 E 3.644(yo) +-.15 G 1.144(ther \215ags may be used)409.994 381.6 R(freely to conditionally \ +assign headers to messages destined for particular mailers.)117 393.6 Q 15.56 +(aR)117 409.8 S(un Extended SMTP \(ESMTP\) protocol \(de\214ned in RFCs 1425, \ +1426, and 1427\).)143.67 409.8 Q 15(bF)117 426 S .674 +(orce a blank line on the end of a message.)142.41 426 R .674 (This is intended to w)5.674 F .675(ork around some stupid)-.1 F -.15(ve)137 -152.4 S .852(rsions of /bin/mail that require a blank line, b).15 F .851 +438 S .852(rsions of /bin/mail that require a blank line, b).15 F .851 (ut do not pro)-.2 F .851(vide it themselv)-.15 F 3.351(es. It)-.15 F -.1(wo) -3.351 G(uld).1 E(not normally be used on netw)137 164.4 Q(ork mail.)-.1 E 15.56 -(cD)117 180.6 S 4.165(on)144.22 180.6 S 1.665 -(ot include comments in addresses.)158.385 180.6 R 1.665 +3.351 G(uld).1 E(not normally be used on netw)137 450 Q(ork mail.)-.1 E 15.56 +(cD)117 466.2 S 4.165(on)144.22 466.2 S 1.665 +(ot include comments in addresses.)158.385 466.2 R 1.665 (This should only be used if you ha)6.665 F 1.966 -.15(ve t)-.2 H 4.166(ow).15 -G(ork)490.67 180.6 Q(around a remote mailer that gets confused by comments.)137 -192.6 Q 13.33(CI)117 208.8 S 3.06(fm)140.33 208.8 S .56(ail is)154.5 208.8 R/F2 -10/Times-Italic@0 SF -.37(re)3.06 G(ceived).37 E F1 .56 -(from a mailer with this \215ag set, an)3.06 F 3.06(ya)-.15 G .56 -(ddresses in the header that do not)367.33 208.8 R(ha)137 220.8 Q .33 -.15 -(ve a)-.2 H 2.53(na).15 G 2.53(ts)174.47 220.8 S .03 -(ign \(\231@\232\) after being re)183.67 220.8 R .031 +G(ork)490.67 466.2 Q(around a remote mailer that gets confused by comments.)137 +478.2 Q 13.33(CI)117 494.4 S 3.06(fm)140.33 494.4 S .56(ail is)154.5 494.4 R F1 +-.37(re)3.06 G(ceived).37 E F2 .56(from a mailer with this \215ag set, an)3.06 +F 3.06(ya)-.15 G .56(ddresses in the header that do not)367.33 494.4 R(ha)137 +506.4 Q .33 -.15(ve a)-.2 H 2.53(na).15 G 2.53(ts)174.47 506.4 S .03 +(ign \(\231@\232\) after being re)183.67 506.4 R .031 (written by ruleset three will ha)-.25 F .331 -.15(ve t)-.2 H .031 -(he \231@domain\232 clause).15 F(from the sender tack)137 232.8 Q(ed on.)-.1 E +(he \231@domain\232 clause).15 F(from the sender tack)137 518.4 Q(ed on.)-.1 E (This allo)5 E(ws mail with headers of the form:)-.25 E(From: usera@hosta)177 -249 Q -.8(To)177 261 S 2.5(:u).8 G(serb@hostb, userc)197.59 261 Q(to be re)137 -277.2 Q(written as:)-.25 E(From: usera@hosta)177 293.4 Q -.8(To)177 305.4 S 2.5 -(:u).8 G(serb@hostb, userc@hosta)197.59 305.4 Q(automatically)137 321.6 Q(.) --.65 E 12.78(DT)117 337.8 S(his mailer w)143.11 337.8 Q -(ants a \231Date:\232 header line.)-.1 E 15.56(eT)117 354 S .563 -(his mailer is e)143.11 354 R(xpensi)-.15 E .862 -.15(ve t)-.25 H 3.062(oc).15 -G .562(onnect to, so try to a)253.972 354 R -.2(vo)-.2 G .562 -(id connecting normally; an).2 F 3.062(yn)-.15 G(ecessary)470.13 354 Q -(connection will occur during a queue run.)137 366 Q 13.89(EE)117 382.2 S -(scape lines be)143.11 382.2 Q +534.6 Q -.8(To)177 546.6 S 2.5(:u).8 G(serb@hostb, userc)197.59 546.6 Q +(to be re)137 562.8 Q(written as:)-.25 E(From: usera@hosta)177 579 Q -.8(To)177 +591 S 2.5(:u).8 G(serb@hostb, userc@hosta)197.59 591 Q(automatically)137 607.2 +Q(.)-.65 E 12.78(DT)117 623.4 S(his mailer w)143.11 623.4 Q +(ants a \231Date:\232 header line.)-.1 E 15.56(eT)117 639.6 S .563 +(his mailer is e)143.11 639.6 R(xpensi)-.15 E .862 -.15(ve t)-.25 H 3.062(oc) +.15 G .562(onnect to, so try to a)253.972 639.6 R -.2(vo)-.2 G .562 +(id connecting normally; an).2 F 3.062(yn)-.15 G(ecessary)470.13 639.6 Q +(connection will occur during a queue run.)137 651.6 Q 13.89(EE)117 667.8 S +(scape lines be)143.11 667.8 Q (ginning with \231From\232 in the message with a `>' sign.)-.15 E 16.67(fT)117 -398.4 S .968(he mailer w)143.11 398.4 R .968(ants a)-.1 F F0<ad66>3.469 E F2 -(fr)3.469 E(om)-.45 E F1 .969(\215ag, b)3.469 F .969(ut only if this is a netw) --.2 F .969(ork forw)-.1 F .969(ard operation \(i.e., the)-.1 F(mailer will gi) -137 410.4 Q .3 -.15(ve a)-.25 H 2.5(ne).15 G(rror if the e)218.81 410.4 Q -.15 -(xe)-.15 G(cuting user does not ha).15 E .3 -.15(ve s)-.2 H -(pecial permissions\).).15 E 14.44(FT)117 426.6 S(his mailer w)143.11 426.6 Q -(ants a \231From:\232 header line.)-.1 E 15(gN)117 442.8 S(ormally)144.22 442.8 -Q(,)-.65 E F2(sendmail)3.53 E F1 1.029 +684 S .968(he mailer w)143.11 684 R .968(ants a)-.1 F F0<ad66>3.469 E F1(fr) +3.469 E(om)-.45 E F2 .969(\215ag, b)3.469 F .969(ut only if this is a netw)-.2 +F .969(ork forw)-.1 F .969(ard operation \(i.e., the)-.1 F(mailer will gi)137 +696 Q .3 -.15(ve a)-.25 H 2.5(ne).15 G(rror if the e)218.81 696 Q -.15(xe)-.15 +G(cuting user does not ha).15 E .3 -.15(ve s)-.2 H(pecial permissions\).).15 E +14.44(FT)117 712.2 S(his mailer w)143.11 712.2 Q +(ants a \231From:\232 header line.)-.1 E EP +%%Page: 32 27 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 193.36(SMM:08-32 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 15(gN)117 96 S +(ormally)144.22 96 Q(,)-.65 E/F2 10/Times-Italic@0 SF(sendmail)3.53 E F1 1.029 (sends internally generated email \(e.g., error messages\) using the null)3.529 -F 1.766(return address)137 456.8 R/F3 7/Times-Roman@0 SF(13)195.136 452.8 Q F1 -1.766(as required by RFC 1123.)206.402 456.8 R(Ho)6.766 E(we)-.25 E -.15(ve) --.25 G 2.566 -.4(r, s).15 H 1.766(ome mailers don').4 F 4.266(ta)-.18 G 1.767 -(ccept a null)454.366 456.8 R .922(return address.)137 468.8 R .922 -(If necessary)5.922 F 3.422(,y)-.65 G .922(ou can set the)261.938 468.8 R F0(g) -3.422 E F1 .922(\215ag to pre)3.422 F -.15(ve)-.25 G(nt).15 E F2(sendmail)3.422 -E F1 .922(from obe)3.422 F .922(ying the)-.15 F .212 -(standards; error messages will be sent as from the MAILER-D)137 480.8 R .212 -(AEMON \(actually)-.4 F 2.712(,t)-.65 G .212(he v)470.438 480.8 R(alue)-.25 E -(of the)137 492.8 Q F0($n)2.5 E F1(macro\).)2.5 E 15(hU)117 509 S -(pper case should be preserv)144.22 509 Q(ed in host names for this mailer)-.15 -E(.)-.55 E 16.67(IT)117 525.2 S .093 -(his mailer will be speaking SMTP to another)143.11 525.2 R F2(sendmail)2.593 E -F1 2.592<8a61>2.592 G 2.592(ss)381.248 525.2 S .092 -(uch it can use special proto-)391.62 525.2 R .318(col features.)137 537.2 R +F 1.766(return address)137 110 R/F3 7/Times-Roman@0 SF(13)195.136 106 Q F1 +1.766(as required by RFC 1123.)206.402 110 R(Ho)6.766 E(we)-.25 E -.15(ve)-.25 +G 2.566 -.4(r, s).15 H 1.766(ome mailers don').4 F 4.266(ta)-.18 G 1.767 +(ccept a null)454.366 110 R .922(return address.)137 122 R .922(If necessary) +5.922 F 3.422(,y)-.65 G .922(ou can set the)261.938 122 R F0(g)3.422 E F1 .922 +(\215ag to pre)3.422 F -.15(ve)-.25 G(nt).15 E F2(sendmail)3.422 E F1 .922 +(from obe)3.422 F .922(ying the)-.15 F .212 +(standards; error messages will be sent as from the MAILER-D)137 134 R .212 +(AEMON \(actually)-.4 F 2.712(,t)-.65 G .212(he v)470.438 134 R(alue)-.25 E +(of the)137 146 Q F0($n)2.5 E F1(macro\).)2.5 E 15(hU)117 162.2 S +(pper case should be preserv)144.22 162.2 Q(ed in host names for this mailer) +-.15 E(.)-.55 E 16.67(IT)117 178.4 S .093 +(his mailer will be speaking SMTP to another)143.11 178.4 R F2(sendmail)2.593 E +F1 2.592<8a61>2.592 G 2.592(ss)381.248 178.4 S .092 +(uch it can use special proto-)391.62 178.4 R .318(col features.)137 190.4 R .319(This option is not required \(i.e., if this option is omitted the transmi\ -ssion will)5.318 F(still operate successfully)137 549.2 Q 2.5(,a)-.65 G -(lthough perhaps not as ef)244.11 549.2 Q(\214ciently as possible\).)-.25 E -17.22(lT)117 565.4 S(his mailer is local \(i.e., \214nal deli)143.11 565.4 Q --.15(ve)-.25 G(ry will be performed\).).15 E 13.89(LL)117 581.6 S .69 -(imit the line lengths as speci\214ed in RFC821.)143.11 581.6 R .69 -(This deprecated option should be replaced)5.69 F(by the)137 593.6 Q F0(L=)2.5 +ssion will)5.318 F(still operate successfully)137 202.4 Q 2.5(,a)-.65 G +(lthough perhaps not as ef)244.11 202.4 Q(\214ciently as possible\).)-.25 E +17.22(lT)117 218.6 S(his mailer is local \(i.e., \214nal deli)143.11 218.6 Q +-.15(ve)-.25 G(ry will be performed\).).15 E 13.89(LL)117 234.8 S .69 +(imit the line lengths as speci\214ed in RFC821.)143.11 234.8 R .69 +(This deprecated option should be replaced)5.69 F(by the)137 246.8 Q F0(L=)2.5 E F1(mail declaration.)2.5 E -.15(Fo)5 G 2.5(rh).15 G(istoric reasons, the) -272.54 593.6 Q F0(L)2.5 E F1(\215ag also sets the)2.5 E F0(7)2.5 E F1(\215ag.) -2.5 E 12.22(mT)117 609.8 S 1.273 +272.54 246.8 Q F0(L)2.5 E F1(\215ag also sets the)2.5 E F0(7)2.5 E F1(\215ag.) +2.5 E 12.22(mT)117 263 S 1.273 (his mailer can send to multiple users on the same host in one transaction.) -143.11 609.8 R 1.274(When a)6.273 F F0($u)3.774 E F1 .622(macro occurs in the) -137 621.8 R F2(ar)3.122 E(gv)-.37 E F1 .621 +143.11 263 R 1.274(When a)6.273 F F0($u)3.774 E F1 .622(macro occurs in the)137 +275 R F2(ar)3.122 E(gv)-.37 E F1 .621 (part of the mailer de\214nition, that \214eld will be repeated as neces-)3.121 -F(sary for all qualifying users.)137 633.8 Q 11.11(MT)117 650 S(his mailer w) -143.11 650 Q(ants a \231Message-Id:\232 header line.)-.1 E 15(nD)117 666.2 S -2.5(on)144.22 666.2 S +F(sary for all qualifying users.)137 287 Q 11.11(MT)117 303.2 S(his mailer w) +143.11 303.2 Q(ants a \231Message-Id:\232 header line.)-.1 E 15(nD)117 319.4 S +2.5(on)144.22 319.4 S (ot insert a UNIX-style \231From\232 line on the front of the message.)156.72 -666.2 Q .32 LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 80 678.8 DL -88 678.8 84 678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96 -678.8 DL 104 678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 678.8 DL -116 678.8 112 678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 678.8 -124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 136 678.8 -DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 678.8 DL 156 -678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 678.8 160 678.8 DL 168 678.8 164 -678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 678.8 DL 180 678.8 176 678.8 DL -184 678.8 180 678.8 DL 188 678.8 184 678.8 DL 192 678.8 188 678.8 DL 196 678.8 -192 678.8 DL 200 678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 204 678.8 -DL 212 678.8 208 678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 SF(13)93.6 -689.2 Q/F5 8/Times-Roman@0 SF(Actually)3.2 I 2(,t)-.52 G -(his only applies to SMTP)131.856 692.4 Q 2(,w)-.888 G(hich uses the `)222.088 -692.4 Q(`MAIL FR)-.592 E(OM:<>')-.32 E 2('c)-.592 G(ommand.)336.48 692.4 Q EP -%%Page: 33 28 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-33)452.9 60 Q/F1 10/Times-Roman@0 SF 15(pU)117 96 S .701 -(se the route-addr style re)144.22 96 R -.15(ve)-.25 G .702 -(rse-path in the SMTP \231MAIL FR).15 F .702(OM:\232 command rather than)-.4 F -.421 +319.4 Q 15(pU)117 335.6 S .701(se the route-addr style re)144.22 335.6 R -.15 +(ve)-.25 G .702(rse-path in the SMTP \231MAIL FR).15 F .702 +(OM:\232 command rather than)-.4 F .421 (just the return address; although this is required in RFC821 section 3.1, man) -137 108 R 2.921(yh)-.15 G .421(osts do not)459.818 108 R(process re)137 120 Q --.15(ve)-.25 G(rse-paths properly).15 E 5(.R)-.65 G -2.15 -.25(ev e)272.3 120 T -(rse-paths are of).25 E(\214cially discouraged by RFC 1123.)-.25 E 14.44(PT)117 -136.2 S(his mailer w)143.11 136.2 Q(ants a \231Return-P)-.1 E(ath:\232 line.) --.15 E 16.67(rS)117 152.4 S(ame as)142.56 152.4 Q F0(f)2.5 E F1 2.5(,b)C -(ut sends a)185.68 152.4 Q F0<ad72>2.5 E F1(\215ag.)2.5 E 16.11(sS)117 168.6 S -(trip quote characters of)142.56 168.6 Q 2.5(fo)-.25 G 2.5(ft)245.61 168.6 S -(he address before calling the mailer)254.22 168.6 Q(.)-.55 E 14.44(SD)117 -184.8 S(on')144.22 184.8 Q 3.442(tr)-.18 G .942 -(eset the userid before calling the mailer)166.922 184.8 R 5.943(.T)-.55 G .943 -(his w)344.319 184.8 R .943(ould be used in a secure en)-.1 F(viron-)-.4 E .491 -(ment where)137 196.8 R/F2 10/Times-Italic@0 SF(sendmail)2.991 E F1 .491 -(ran as root.)2.991 F .491(This could be used to a)5.491 F -.2(vo)-.2 G .49 -(id for).2 F .49(ged addresses.)-.18 F .49(This \215ag)5.49 F -(is suppressed if gi)137 208.8 Q -.15(ve)-.25 G 2.5(nf).15 G -(rom an \231unsafe\232 en)228.81 208.8 Q(vironment \(e.g, a user')-.4 E 2.5(sm) --.55 G(ail.cf \214le\).)410.31 208.8 Q 15(uU)117 225 S -(pper case should be preserv)144.22 225 Q(ed in user names for this mailer)-.15 -E(.)-.55 E 12.78(UT)117 241.2 S 2.996(his mailer w)143.11 241.2 R 2.996 +137 347.6 R 2.921(yh)-.15 G .421(osts do not)459.818 347.6 R(process re)137 +359.6 Q -.15(ve)-.25 G(rse-paths properly).15 E 5(.R)-.65 G -2.15 -.25(ev e) +272.3 359.6 T(rse-paths are of).25 E(\214cially discouraged by RFC 1123.)-.25 E +14.44(PT)117 375.8 S(his mailer w)143.11 375.8 Q(ants a \231Return-P)-.1 E +(ath:\232 line.)-.15 E 16.67(rS)117 392 S(ame as)142.56 392 Q F0(f)2.5 E F1 2.5 +(,b)C(ut sends a)185.68 392 Q F0<ad72>2.5 E F1(\215ag.)2.5 E 16.11(sS)117 408.2 +S(trip quote characters of)142.56 408.2 Q 2.5(fo)-.25 G 2.5(ft)245.61 408.2 S +(he address before calling the mailer)254.22 408.2 Q(.)-.55 E 14.44(SD)117 +424.4 S(on')144.22 424.4 Q 3.442(tr)-.18 G .942 +(eset the userid before calling the mailer)166.922 424.4 R 5.943(.T)-.55 G .943 +(his w)344.319 424.4 R .943(ould be used in a secure en)-.1 F(viron-)-.4 E .491 +(ment where)137 436.4 R F2(sendmail)2.991 E F1 .491(ran as root.)2.991 F .491 +(This could be used to a)5.491 F -.2(vo)-.2 G .49(id for).2 F .49 +(ged addresses.)-.18 F .49(This \215ag)5.49 F(is suppressed if gi)137 448.4 Q +-.15(ve)-.25 G 2.5(nf).15 G(rom an \231unsafe\232 en)228.81 448.4 Q +(vironment \(e.g, a user')-.4 E 2.5(sm)-.55 G(ail.cf \214le\).)410.31 448.4 Q +15(uU)117 464.6 S(pper case should be preserv)144.22 464.6 Q +(ed in user names for this mailer)-.15 E(.)-.55 E 12.78(UT)117 480.8 S 2.996 +(his mailer w)143.11 480.8 R 2.996 (ants Unix-style \231From\232 lines with the ugly UUCP-style \231remote from) --.1 F(<host>\232 on the end.)137 253.2 Q 15(xT)117 269.4 S(his mailer w)143.11 -269.4 Q(ants a \231Full-Name:\232 header line.)-.1 E 12.78(XT)117 285.6 S 1.22 -(his mailer w)143.11 285.6 R 1.22 +-.1 F(<host>\232 on the end.)137 492.8 Q 15(xT)117 509 S(his mailer w)143.11 +509 Q(ants a \231Full-Name:\232 header line.)-.1 E 12.78(XT)117 525.2 S 1.22 +(his mailer w)143.11 525.2 R 1.22 (ant to use the hidden dot algorithm as speci\214ed in RFC821; basically)-.1 F -3.72(,a)-.65 G -.15(ny)494.15 285.6 S .224(line be)137 297.6 R .224 +3.72(,a)-.65 G -.15(ny)494.15 525.2 S .224(line be)137 537.2 R .224 (ginning with a dot will ha)-.15 F .525 -.15(ve a)-.2 H 2.725(ne).15 G .225 -(xtra dot prepended \(to be stripped at the other end\).)296.465 297.6 R .525(\ +(xtra dot prepended \(to be stripped at the other end\).)296.465 537.2 R .525(\ This insures that lines in the message containing a dot will not terminate the\ - message pre-)137 309.6 R(maturely)137 321.6 Q(.)-.65 E 15(7S)117 337.8 S .152 -(trip all output to se)142.56 337.8 R -.15(ve)-.25 G 2.652(nb).15 G 2.652 -(its. This)240.42 337.8 R .152(is the def)2.652 F .152(ault if the)-.1 F F0(L) + message pre-)137 549.2 R(maturely)137 561.2 Q(.)-.65 E 15(7S)117 577.4 S .152 +(trip all output to se)142.56 577.4 R -.15(ve)-.25 G 2.652(nb).15 G 2.652 +(its. This)240.42 577.4 R .152(is the def)2.652 F .152(ault if the)-.1 F F0(L) 2.652 E F1 .152(\215ag is set.)2.652 F .152(Note that setting this is)5.152 F -.079(not suf)137 349.8 R .079 +.079(not suf)137 589.4 R .079 (\214cient to get full eight bit data passed through)-.25 F F2(sendmail)2.579 E -F1 5.079(.I)C 2.579(ft)398.439 349.8 S(he)407.128 349.8 Q F0(7)2.579 E F1 .079 -(option is set, this is)2.579 F(essentially al)137 361.8 Q -.1(wa)-.1 G +F1 5.079(.I)C 2.579(ft)398.439 589.4 S(he)407.128 589.4 Q F0(7)2.579 E F1 .079 +(option is set, this is)2.579 F(essentially al)137 601.4 Q -.1(wa)-.1 G (ys set, since the eighth bit w).1 E(as stripped on input.)-.1 E 2.122(The mai\ ler with the special name \231error\232 can be used to generate a user error) -142 378 R 7.122(.T)-.55 G(he)494.56 378 Q .247 -(\(optional\) host \214eld is an e)117 390 R .247 +142 617.6 R 7.122(.T)-.55 G(he)494.56 617.6 Q .247 +(\(optional\) host \214eld is an e)117 629.6 R .247 (xit status to be returned, and the user \214eld is a message to be printed.) --.15 F .336(The e)117 402 R .336(xit status may be numeric or one of the v)-.15 -F .337(alues USA)-.25 F .337(GE, NOUSER, NOHOST)-.4 F 2.837(,U)-.74 G -.35(NA) -465.4 402 S -1.35(VA)-1 G(IL-)1.35 E .828(ABLE, SOFTW)117 414 R .828 +-.15 F .336(The e)117 641.6 R .336(xit status may be numeric or one of the v) +-.15 F .337(alues USA)-.25 F .337(GE, NOUSER, NOHOST)-.4 F 2.837(,U)-.74 G -.35 +(NA)465.4 641.6 S -1.35(VA)-1 G(IL-)1.35 E .828(ABLE, SOFTW)117 653.6 R .828 (ARE, TEMPF)-1.2 F .828(AIL, PR)-.74 F -1.88 -.4(OT O)-.4 H .828 -(COL, or CONFIG to return the corresponding EX_).4 F -.15(ex)117 426 S -(it code.).15 E -.15(Fo)5 G 2.5(re).15 G(xample, the entry:)181.26 426 Q -($#error $@ NOHOST $: Host unkno)157 442.2 Q(wn in this domain)-.25 E .261(on \ -the RHS of a rule will cause the speci\214ed error to be generated and the \ -\231Host unkno)117 458.4 R .262(wn\232 e)-.25 F(xit)-.15 E -(status to be returned if the LHS matches.)117 470.4 Q -(This mailer is only functional in ruleset zero.)5 E 1.564 -(The mailer named \231local\232)142 486.6 R F2(must)4.064 E F1 1.564 -(be de\214ned in e)4.064 F -.15(ve)-.25 G 1.563(ry con\214guration \214le.).15 -F 1.563(This is used to)6.563 F(deli)117 498.6 Q -.15(ve)-.25 G 4.038(rl).15 G -1.538(ocal mail, and is treated specially in se)151.188 498.6 R -.15(ve)-.25 G -1.539(ral w).15 F 4.039(ays. Additionally)-.1 F 4.039(,t)-.65 G 1.539 -(hree other mailers)428.722 498.6 R 1.367(named \231prog\232, \231*\214le*\232\ -, and \231*include*\232 may be de\214ned to tune the deli)117 510.6 R -.15(ve) +(COL, or CONFIG to return the corresponding EX_).4 F -.15(ex)117 665.6 S +(it code.).15 E -.15(Fo)5 G 2.5(re).15 G(xample, the entry:)181.26 665.6 Q .32 +LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 +678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96 678.8 DL 104 +678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 678.8 DL 116 678.8 112 +678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 678.8 124 678.8 DL +132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 136 678.8 DL 144 678.8 +140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 678.8 DL 156 678.8 152 678.8 +DL 160 678.8 156 678.8 DL 164 678.8 160 678.8 DL 168 678.8 164 678.8 DL 172 +678.8 168 678.8 DL 176 678.8 172 678.8 DL 180 678.8 176 678.8 DL 184 678.8 180 +678.8 DL 188 678.8 184 678.8 DL 192 678.8 188 678.8 DL 196 678.8 192 678.8 DL +200 678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 204 678.8 DL 212 678.8 +208 678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 SF(13)93.6 689.2 Q/F5 8 +/Times-Roman@0 SF(Actually)3.2 I 2(,t)-.52 G(his only applies to SMTP)131.856 +692.4 Q 2(,w)-.888 G(hich uses the `)222.088 692.4 Q(`MAIL FR)-.592 E(OM:<>') +-.32 E 2('c)-.592 G(ommand.)336.48 692.4 Q EP +%%Page: 33 28 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-33)452.9 60 Q/F1 10/Times-Roman@0 SF($#error $@ NOHOST $: Host unkno) +157 96 Q(wn in this domain)-.25 E .261(on the RHS of a rule will cause the spe\ +ci\214ed error to be generated and the \231Host unkno)117 112.2 R .262 +(wn\232 e)-.25 F(xit)-.15 E(status to be returned if the LHS matches.)117 124.2 +Q(This mailer is only functional in ruleset zero.)5 E 1.564 +(The mailer named \231local\232)142 140.4 R/F2 10/Times-Italic@0 SF(must)4.064 +E F1 1.564(be de\214ned in e)4.064 F -.15(ve)-.25 G 1.563 +(ry con\214guration \214le.).15 F 1.563(This is used to)6.563 F(deli)117 152.4 +Q -.15(ve)-.25 G 4.038(rl).15 G 1.538 +(ocal mail, and is treated specially in se)151.188 152.4 R -.15(ve)-.25 G 1.539 +(ral w).15 F 4.039(ays. Additionally)-.1 F 4.039(,t)-.65 G 1.539 +(hree other mailers)428.722 152.4 R 1.367(named \231prog\232, \231*\214le*\232\ +, and \231*include*\232 may be de\214ned to tune the deli)117 164.4 R -.15(ve) -.25 G 1.367(ry of messages to).15 F -(programs, \214les, and :include: lists respecti)117 522.6 Q -.15(ve)-.25 G(ly) -.15 E 5(.T)-.65 G(he)315.38 522.6 Q 2.5(yd)-.15 G(ef)337.17 522.6 Q(ault to:) --.1 E(Mprog, P=/bin/sh, F=lsD, A=sh \255c $u)157 538.8 Q(M*\214le*, P=/de)157 -550.8 Q(v/null, F=lsDFMPEu, A=FILE)-.25 E(M*include*, P=/de)157 562.8 Q -(v/null, F=su, A=INCLUDE)-.25 E 1.263(The Sender and Recipient re)142 583.2 R +(programs, \214les, and :include: lists respecti)117 176.4 Q -.15(ve)-.25 G(ly) +.15 E 5(.T)-.65 G(he)315.38 176.4 Q 2.5(yd)-.15 G(ef)337.17 176.4 Q(ault to:) +-.1 E(Mprog, P=/bin/sh, F=lsD, A=sh \255c $u)157 192.6 Q(M*\214le*, P=/de)157 +204.6 Q(v/null, F=lsDFMPEu, A=FILE)-.25 E(M*include*, P=/de)157 216.6 Q +(v/null, F=su, A=INCLUDE)-.25 E 1.263(The Sender and Recipient re)142 237 R 1.263(writing sets may either be a simple inte)-.25 F 1.264(ger or may be tw) --.15 F(o)-.1 E(inte)117 595.2 Q .047 +-.15 F(o)-.1 E(inte)117 249 Q .047 (gers separated by a slash; if so, the \214rst re)-.15 F .046 (writing set is applied to en)-.25 F -.15(ve)-.4 G .046(lope addresses and the) -.15 F(second is applied to headers.)117 607.2 Q 1.258 +.15 F(second is applied to headers.)117 261 Q 1.258 (The Directory is actually a colon-separated path of directories to try)142 -623.4 R 6.259(.F)-.65 G 1.259(or e)439.702 623.4 R 1.259(xample, the)-.15 F -.144(de\214nition \231D=$z:/\232 \214rst tries to e)117 635.4 R -.15(xe)-.15 G +277.2 R 6.259(.F)-.65 G 1.259(or e)439.702 277.2 R 1.259(xample, the)-.15 F +.144(de\214nition \231D=$z:/\232 \214rst tries to e)117 289.2 R -.15(xe)-.15 G .143(cute in the recipient').15 F 2.643(sh)-.55 G .143 -(ome directory; if that is not a)353.332 635.4 R -.25(va)-.2 G(ilable,).25 E -.78(it tries to e)117 647.4 R -.15(xe)-.15 G .78 +(ome directory; if that is not a)353.332 289.2 R -.25(va)-.2 G(ilable,).25 E +.78(it tries to e)117 301.2 R -.15(xe)-.15 G .78 (cute in the root of the \214lesystem.).15 F .781 -(This is intended to be used only on the \231prog\232)5.781 F(mailer)117 659.4 -Q 2.899(,s)-.4 G .398(ince some shells \(such as)151.439 659.4 R F2(csh)2.898 E -F1 2.898(\)r)C .398(efuse to e)279.358 659.4 R -.15(xe)-.15 G .398(cute if the) -.15 F 2.898(yc)-.15 G .398(annot read the home directory)380.588 659.4 R(.)-.65 +(This is intended to be used only on the \231prog\232)5.781 F(mailer)117 313.2 +Q 2.899(,s)-.4 G .398(ince some shells \(such as)151.439 313.2 R F2(csh)2.898 E +F1 2.898(\)r)C .398(efuse to e)279.358 313.2 R -.15(xe)-.15 G .398(cute if the) +.15 F 2.898(yc)-.15 G .398(annot read the home directory)380.588 313.2 R(.)-.65 E .416(Since the queue directory is not normally readable by normal users)117 -671.4 R F2(csh)2.916 E F1 .416(scripts as recipients can)2.916 F -.1(fa)117 -683.4 S(il.).1 E EP -%%Page: 34 29 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-34 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E 2.5(5.1.5. H)102 96 R 2.5<8a64>2.5 G -(e\214ne header)157.84 96 Q/F1 10/Times-Roman@0 SF .198 -(The format of the header lines that)142 112.2 R/F2 10/Times-Italic@0 SF +325.2 R F2(csh)2.916 E F1 .416(scripts as recipients can)2.916 F -.1(fa)117 +337.2 S(il.).1 E F0 2.5(5.1.5. H)102 361.2 R 2.5<8a64>2.5 G(e\214ne header) +157.84 361.2 Q F1 .198(The format of the header lines that)142 377.4 R F2 (sendmail)2.698 E F1 .198(inserts into the message are de\214ned by the)2.698 F -F0(H)2.698 E F1 2.5(line. The)117 124.2 R(syntax of this line is:)2.5 E F0(H) -157 140.4 Q F1([)A F0(?)A F2(m\215a)A(gs)-.1 E F0(?)A F1(])A F2(hname)A F0(:)A +F0(H)2.698 E F1 2.5(line. The)117 389.4 R(syntax of this line is:)2.5 E F0(H) +157 405.6 Q F1([)A F0(?)A F2(m\215a)A(gs)-.1 E F0(?)A F1(])A F2(hname)A F0(:)A F2(htemplate)2.5 E F1 .691(Continuation lines in this spec are re\215ected dir\ -ectly into the outgoing message.)117 156.6 R(The)5.691 E F2(htemplate)3.191 E -F1 1.567(is macro e)117 168.6 R 1.567 +ectly into the outgoing message.)117 421.8 R(The)5.691 E F2(htemplate)3.191 E +F1 1.567(is macro e)117 433.8 R 1.567 (xpanded before insertion into the message.)-.15 F 1.567(If the)6.567 F F2 (m\215a)4.067 E(gs)-.1 E F1 1.567(\(surrounded by question)4.067 F .219(marks\ \) are speci\214ed, at least one of the speci\214ed \215ags must be stated in \ -the mailer de\214nition for)117 180.6 R .094 -(this header to be automatically output.)117 192.6 R .093 +the mailer de\214nition for)117 445.8 R .094 +(this header to be automatically output.)117 457.8 R .093 (If one of these headers is in the input it is re\215ected to the)5.093 F -(output re)117 204.6 Q -.05(ga)-.15 G(rdless of these \215ags.).05 E -(Some headers ha)142 220.8 Q .3 -.15(ve s)-.2 H +(output re)117 469.8 Q -.05(ga)-.15 G(rdless of these \215ags.).05 E +(Some headers ha)142 486 Q .3 -.15(ve s)-.2 H (pecial semantics that will be described belo).15 E -.65(w.)-.25 G F0 2.5 -(5.1.6. O)102 244.8 R 2.5<8a73>2.5 G(et option)156.17 244.8 Q F1 .045(There ar\ -e a number of \231random\232 options that can be set from a con\214guration \ -\214le.)142 261 R(Options)5.046 E(are represented by single characters.)117 273 -Q(The syntax of this line is:)5 E F0(O)157 289.2 Q F2 1.666(ov)C(alue)-1.666 E -F1 1.055(This sets option)117 305.4 R F2(o)3.555 E F1 1.055(to be)3.555 F F2 -(value)3.555 E F1 6.055(.D)C 1.054(epending on the option,)256.325 305.4 R F2 +(5.1.6. O)102 510 R 2.5<8a73>2.5 G(et option)156.17 510 Q F1 .045(There are a \ +number of \231random\232 options that can be set from a con\214guration \214le\ +.)142 526.2 R(Options)5.046 E(are represented by single characters.)117 538.2 Q +(The syntax of this line is:)5 E F0(O)157 554.4 Q F2 1.666(ov)C(alue)-1.666 E +F1 1.055(This sets option)117 570.6 R F2(o)3.555 E F1 1.055(to be)3.555 F F2 +(value)3.555 E F1 6.055(.D)C 1.054(epending on the option,)256.325 570.6 R F2 (value)3.554 E F1 1.054(may be a string, an inte)3.554 F(ger)-.15 E 3.554(,a) --.4 G(boolean \(with le)117 317.4 Q -.05(ga)-.15 G 2.5(lv).05 G -(alues \231t\232, \231T\232, \231f\232, or \231F\232; the def)201.26 317.4 Q +-.4 G(boolean \(with le)117 582.6 Q -.05(ga)-.15 G 2.5(lv).05 G +(alues \231t\232, \231T\232, \231f\232, or \231F\232; the def)201.26 582.6 Q (ault is TR)-.1 E(UE\), or a time interv)-.4 E(al.)-.25 E -(The options supported are:)142 333.6 Q(a)117 349.8 Q F2(N)A F1 .655(If set, w) -189 349.8 R .655(ait up to)-.1 F F2(N)3.155 E F1 .655 +(The options supported are:)142 598.8 Q(a)117 615 Q F2(N)A F1 .655(If set, w) +189 615 R .655(ait up to)-.1 F F2(N)3.155 E F1 .655 (minutes for an \231@:@\232 entry to e)3.155 F .655(xist in the alias database) --.15 F .475(before starting up.)189 361.8 R .474(If it does not appear in)5.475 -F F2(N)2.974 E F1 .474(minutes, reb)2.974 F .474(uild the database \(if)-.2 F -(the)189 373.8 Q F0(D)2.5 E F1(option is also set\) or issue a w)2.5 E(arning.) --.1 E(A)117 390 Q F2 .506(spec, spec, ...)B F1 .506 -(Specify possible alias \214le\(s\).)190.012 390 R(Each)5.506 E F2(spec)3.006 E -F1 .507(should be in the format `)3.006 F(`)-.74 E F2(class)A F0(:)A F2(\214le) -3.007 E F1 -.74('')C(where)189 402 Q F2(class)3.05 E F0(:)A F1 .549 +-.15 F .475(before starting up.)189 627 R .474(If it does not appear in)5.475 F +F2(N)2.974 E F1 .474(minutes, reb)2.974 F .474(uild the database \(if)-.2 F +(the)189 639 Q F0(D)2.5 E F1(option is also set\) or issue a w)2.5 E(arning.) +-.1 E(A)117 655.2 Q F2 .506(spec, spec, ...)B F1 .506 +(Specify possible alias \214le\(s\).)190.012 655.2 R(Each)5.506 E F2(spec)3.006 +E F1 .507(should be in the format `)3.006 F(`)-.74 E F2(class)A F0(:)A F2 +(\214le)3.007 E F1 -.74('')C(where)189 667.2 Q F2(class)3.05 E F0(:)A F1 .549 (is optional and def)3.049 F .549(aults to `)-.1 F(`implicit')-.74 E 3.049 -('. Depending)-.74 F .549(on ho)3.049 F(w)-.25 E F2(send-)3.049 E(mail)189 414 -Q F1 1.335(is compiled, v)3.835 F 1.335 +('. Depending)-.74 F .549(on ho)3.049 F(w)-.25 E F2(send-)3.049 E(mail)189 +679.2 Q F1 1.335(is compiled, v)3.835 F 1.335 (alid classes are \231implicit\232 \(search through a compiled-in)-.25 F .193 (list of alias \214le types, for back compatibility\), \231hash\232 \(if)189 -426 R/F3 9/Times-Roman@0 SF(NEWDB)2.693 E F1 .193(is speci\214ed\),)2.693 F -.881(\231dbm\232 \(if)189 438 R F3(NDBM)3.381 E F1 .882 +691.2 R/F3 9/Times-Roman@0 SF(NEWDB)2.693 E F1 .193(is speci\214ed\),)2.693 F +.881(\231dbm\232 \(if)189 703.2 R F3(NDBM)3.381 E F1 .882 (is speci\214ed\), \231stab\232 \(internal symbol table \212 not normally)3.382 -F .476(used unless you ha)189 450 R .776 -.15(ve n)-.2 H 2.976(oo).15 G .475 -(ther database lookup\), or \231nis\232 \(if)295.74 450 R F3(NIS)2.975 E F1 -.475(is speci\214ed\).)2.975 F(If a list of)189 462 Q F2(spec)2.5 E F1 2.5(sa)C -(re pro)259.26 462 Q(vided,)-.15 E F2(sendmail)2.5 E F1(searches them in order) -2.5 E(.)-.55 E(b)117 478.2 Q F2(N)A F1(/)A F2(M)A F1 1.588(Insist on at least) -189 478.2 R F2(N)4.088 E F1 1.589 -(blocks free on the \214lesystem that holds the queue \214les)4.088 F .19 -(before accepting email via SMTP)189 490.2 R 5.19(.I)-1.11 G 2.69(ft)334.09 -490.2 S .19(here is insuf)342.89 490.2 R .19(\214cient space)-.25 F F2 -(sendmail)2.69 E F1(gi)2.69 E -.15(ve)-.25 G(s).15 E 3.67(a4)189 502.2 S 1.17 -(52 response to the MAIL command.)202.11 502.2 R 1.17(This in)6.17 F 1.17 -(vites the sender to try ag)-.4 F(ain)-.05 E(later)189 514.2 Q 5.987(.T)-.55 G -.987(he optional)220.817 514.2 R F2(M)3.487 E F1 .987 +F .476(used unless you ha)189 715.2 R .776 -.15(ve n)-.2 H 2.976(oo).15 G .475 +(ther database lookup\), or \231nis\232 \(if)295.74 715.2 R F3(NIS)2.975 E F1 +.475(is speci\214ed\).)2.975 F EP +%%Page: 34 29 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 193.36(SMM:08-34 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(If a list of)189 +96 Q/F2 10/Times-Italic@0 SF(spec)2.5 E F1 2.5(sa)C(re pro)259.26 96 Q(vided,) +-.15 E F2(sendmail)2.5 E F1(searches them in order)2.5 E(.)-.55 E(b)117 112.2 Q +F2(N)A F1(/)A F2(M)A F1 1.588(Insist on at least)189 112.2 R F2(N)4.088 E F1 +1.589(blocks free on the \214lesystem that holds the queue \214les)4.088 F .19 +(before accepting email via SMTP)189 124.2 R 5.19(.I)-1.11 G 2.69(ft)334.09 +124.2 S .19(here is insuf)342.89 124.2 R .19(\214cient space)-.25 F F2 +(sendmail)2.69 E F1(gi)2.69 E -.15(ve)-.25 G(s).15 E 3.67(a4)189 136.2 S 1.17 +(52 response to the MAIL command.)202.11 136.2 R 1.17(This in)6.17 F 1.17 +(vites the sender to try ag)-.4 F(ain)-.05 E(later)189 148.2 Q 5.987(.T)-.55 G +.987(he optional)220.817 148.2 R F2(M)3.487 E F1 .987 (is a maximum message size adv)3.487 F .986(ertised in the ESMTP)-.15 F -(EHLO response.)189 526.2 Q(It is currently otherwise unused.)5 E(B)117 542.4 Q -F2(c)A F1 1.444(Set the blank substitution character to)189 542.4 R F2(c)3.945 -E F1 6.445(.U)C 1.445(nquoted spaces in addresses are)371.59 542.4 R -(replaced by this character)189 554.4 Q 5(.D)-.55 G(ef)305.63 554.4 Q -(aults to space \(i.e., no change is made\).)-.1 E 67.56(cI)117 570.6 S 3.893 -(fa)192.33 570.6 S 3.893(no)203.993 570.6 S 1.393(utgoing mailer is mark) -217.886 570.6 R 1.393(ed as being e)-.1 F(xpensi)-.15 E -.15(ve)-.25 G 3.892 -(,d).15 G(on')415.296 570.6 Q 3.892(tc)-.18 G 1.392(onnect immedi-)439.558 -570.6 R(ately)189 582.6 Q 6.163(.T)-.65 G 1.164 +(EHLO response.)189 160.2 Q(It is currently otherwise unused.)5 E(B)117 176.4 Q +F2(c)A F1 1.444(Set the blank substitution character to)189 176.4 R F2(c)3.945 +E F1 6.445(.U)C 1.445(nquoted spaces in addresses are)371.59 176.4 R +(replaced by this character)189 188.4 Q 5(.D)-.55 G(ef)305.63 188.4 Q +(aults to space \(i.e., no change is made\).)-.1 E 67.56(cI)117 204.6 S 3.893 +(fa)192.33 204.6 S 3.893(no)203.993 204.6 S 1.393(utgoing mailer is mark) +217.886 204.6 R 1.393(ed as being e)-.1 F(xpensi)-.15 E -.15(ve)-.25 G 3.892 +(,d).15 G(on')415.296 204.6 Q 3.892(tc)-.18 G 1.392(onnect immedi-)439.558 +204.6 R(ately)189 216.6 Q 6.163(.T)-.65 G 1.164 (his requires that queueing be compiled in, since it will depend on a)222.563 -582.6 R(queue run process to actually send the mail.)189 594.6 Q(C)117 610.8 Q -F2(N)A F1 1.49(Checkpoints the queue e)189 610.8 R -.15(ve)-.25 G(ry).15 E F2 +216.6 R(queue run process to actually send the mail.)189 228.6 Q(C)117 244.8 Q +F2(N)A F1 1.49(Checkpoints the queue e)189 244.8 R -.15(ve)-.25 G(ry).15 E F2 (N)3.99 E F1(\(def)3.99 E 1.49(ault 10\) addresses sent.)-.1 F 1.49 -(If your system)6.49 F .785(crashes during deli)189 622.8 R -.15(ve)-.25 G .785 +(If your system)6.49 F .785(crashes during deli)189 256.8 R -.15(ve)-.25 G .785 (ry to a lar).15 F .785(ge list, this pre)-.18 F -.15(ve)-.25 G .785 -(nts retransmission to an).15 F 3.285(yb)-.15 G(ut)496.22 622.8 Q -(the last recipients.)189 634.8 Q(d)117 651 Q F2(x)A F1(Deli)189 651 Q -.15(ve) --.25 G 2.5(ri).15 G 2.5(nm)223.87 651 S(ode)239.15 651 Q F2(x)2.5 E F1 5(.L)C --2.25 -.15(eg a)274.14 651 T 2.5(lm).15 G(odes are:)300.88 651 Q 17.22(iD)229 -667.2 S(eli)256.22 667.2 Q -.15(ve)-.25 G 2.5(ri).15 G(nteracti)283.87 667.2 Q --.15(ve)-.25 G(ly \(synchronously\)).15 E 15(bD)229 679.2 S(eli)256.22 679.2 Q --.15(ve)-.25 G 2.5(ri).15 G 2.5(nb)283.87 679.2 S(ackground \(asynchronously\)) -296.37 679.2 Q 15(qJ)229 691.2 S(ust queue the message \(deli)252.89 691.2 Q --.15(ve)-.25 G 2.5(rd).15 G(uring queue run\))382.74 691.2 Q(Def)189 707.4 Q -1.32(aults to `)-.1 F(`b')-.74 E 3.82('i)-.74 G 3.82(fn)261.64 707.4 S 3.82(oo) -273.79 707.4 S 1.32(ption is speci\214ed, `)287.61 707.4 R(`i')-.74 E 3.82('i) --.74 G 3.82(fi)385.57 707.4 S 3.82(ti)395.5 707.4 S 3.82(ss)404.88 707.4 S 1.32 -(peci\214ed b)416.48 707.4 R 1.32(ut gi)-.2 F -.15(ve)-.25 G 3.82(nn).15 G(o) -499 707.4 Q(ar)189 719.4 Q(gument \(i.e., `)-.18 E(`Od')-.74 E 2.5('i)-.74 G -2.5(se)278.98 719.4 S(qui)289.81 719.4 Q -.25(va)-.25 G(lent to `).25 E(`Odi') --.74 E('\).)-.74 E EP -%%Page: 35 30 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-35)452.9 60 Q/F1 10/Times-Roman@0 SF 64.78(DI)117 96 S 2.735(fs)192.33 -96 S .235(et, reb)202.285 96 R .236 -(uild the alias database if necessary and possible.)-.2 F .236 -(If this option is not)5.236 F(set,)189 108 Q/F2 10/Times-Italic@0 SF(sendmail) -3.385 E F1 .885(will ne)3.385 F -.15(ve)-.25 G 3.385(rr).15 G(eb)292.96 108 Q -.885(uild the alias database unless e)-.2 F .885(xplicitly requested)-.15 F -(using)189 120 Q F0(\255bi)2.5 E F1(.)A(e)117 136.2 Q F2(x)A F1 -(Dispose of errors using mode)189 136.2 Q F2(x)2.5 E F1 5(.T)C(he v)327.31 -136.2 Q(alues for)-.25 E F2(x)2.5 E F1(are:)2.5 E 15(pP)229 152.4 S -(rint error messages \(def)254.56 152.4 Q(ault\))-.1 E 15(qN)229 164.4 S 2.5 -(om)256.22 164.4 S(essages, just gi)271.5 164.4 Q .3 -.15(ve ex)-.25 H -(it status).15 E 12.22(mM)229 176.4 S(ail back errors)257.89 176.4 Q 12.78(wW) -229 188.4 S(rite back errors \(mail if user not logged in\))258.44 188.4 Q -15.56(eM)229 200.4 S(ail back errors and gi)257.89 200.4 Q .3 -.15(ve z)-.25 H -(ero e).15 E(xit stat al)-.15 E -.1(wa)-.1 G(ys).1 E(E)117 220.8 Q F2 -(\214le/messa)A -.1(ge)-.1 G F1 .549 -(Prepend error messages with the indicated message.)189 220.8 R .549(If it be) -5.549 F .55(gins with a slash,)-.15 F .107(it is assumed to be the pathname of\ - a \214le containing a message \(this is the rec-)189 232.8 R 1.316 -(ommended setting\).)189 244.8 R 1.316(Otherwise, it is a literal message.) -6.316 F 1.317(The error \214le might)6.317 F .99 +(nts retransmission to an).15 F 3.285(yb)-.15 G(ut)496.22 256.8 Q +(the last recipients.)189 268.8 Q(d)117 285 Q F2(x)A F1(Deli)189 285 Q -.15(ve) +-.25 G 2.5(ri).15 G 2.5(nm)223.87 285 S(ode)239.15 285 Q F2(x)2.5 E F1 5(.L)C +-2.25 -.15(eg a)274.14 285 T 2.5(lm).15 G(odes are:)300.88 285 Q 17.22(iD)229 +301.2 S(eli)256.22 301.2 Q -.15(ve)-.25 G 2.5(ri).15 G(nteracti)283.87 301.2 Q +-.15(ve)-.25 G(ly \(synchronously\)).15 E 15(bD)229 313.2 S(eli)256.22 313.2 Q +-.15(ve)-.25 G 2.5(ri).15 G 2.5(nb)283.87 313.2 S(ackground \(asynchronously\)) +296.37 313.2 Q 15(qJ)229 325.2 S(ust queue the message \(deli)252.89 325.2 Q +-.15(ve)-.25 G 2.5(rd).15 G(uring queue run\))382.74 325.2 Q(Def)189 341.4 Q +1.32(aults to `)-.1 F(`b')-.74 E 3.82('i)-.74 G 3.82(fn)261.64 341.4 S 3.82(oo) +273.79 341.4 S 1.32(ption is speci\214ed, `)287.61 341.4 R(`i')-.74 E 3.82('i) +-.74 G 3.82(fi)385.57 341.4 S 3.82(ti)395.5 341.4 S 3.82(ss)404.88 341.4 S 1.32 +(peci\214ed b)416.48 341.4 R 1.32(ut gi)-.2 F -.15(ve)-.25 G 3.82(nn).15 G(o) +499 341.4 Q(ar)189 353.4 Q(gument \(i.e., `)-.18 E(`Od')-.74 E 2.5('i)-.74 G +2.5(se)278.98 353.4 S(qui)289.81 353.4 Q -.25(va)-.25 G(lent to `).25 E(`Odi') +-.74 E('\).)-.74 E 64.78(DI)117 369.6 S 2.735(fs)192.33 369.6 S .235(et, reb) +202.285 369.6 R .236(uild the alias database if necessary and possible.)-.2 F +.236(If this option is not)5.236 F(set,)189 381.6 Q F2(sendmail)3.385 E F1 .885 +(will ne)3.385 F -.15(ve)-.25 G 3.385(rr).15 G(eb)292.96 381.6 Q .885 +(uild the alias database unless e)-.2 F .885(xplicitly requested)-.15 F(using) +189 393.6 Q F0(\255bi)2.5 E F1(.)A(e)117 409.8 Q F2(x)A F1 +(Dispose of errors using mode)189 409.8 Q F2(x)2.5 E F1 5(.T)C(he v)327.31 +409.8 Q(alues for)-.25 E F2(x)2.5 E F1(are:)2.5 E 15(pP)229 426 S +(rint error messages \(def)254.56 426 Q(ault\))-.1 E 15(qN)229 438 S 2.5(om) +256.22 438 S(essages, just gi)271.5 438 Q .3 -.15(ve ex)-.25 H(it status).15 E +12.22(mM)229 450 S(ail back errors)257.89 450 Q 12.78(wW)229 462 S +(rite back errors \(mail if user not logged in\))258.44 462 Q 15.56(eM)229 474 +S(ail back errors and gi)257.89 474 Q .3 -.15(ve z)-.25 H(ero e).15 E +(xit stat al)-.15 E -.1(wa)-.1 G(ys).1 E(E)117 494.4 Q F2(\214le/messa)A -.1 +(ge)-.1 G F1 .549(Prepend error messages with the indicated message.)189 494.4 +R .549(If it be)5.549 F .55(gins with a slash,)-.15 F .107(it is assumed to be\ + the pathname of a \214le containing a message \(this is the rec-)189 506.4 R +1.316(ommended setting\).)189 518.4 R 1.316 +(Otherwise, it is a literal message.)6.316 F 1.317(The error \214le might)6.317 +F .99 (contain the name, email address, and/or phone number of a local postmaster)189 -256.8 R .428(who could pro)189 268.8 R .428(vide assistance in to end users.) +530.4 R .428(who could pro)189 542.4 R .428(vide assistance in to end users.) -.15 F .429(If the option is missing or null,)5.429 F .342 -(or if it names a \214le which does not e)189 280.8 R .342 -(xist or which is not readable, no message)-.15 F(is printed.)189 292.8 Q 68.67 -(fS)117 309 S -2.25 -.2(av e)194.56 309 T 2.399 +(or if it names a \214le which does not e)189 554.4 R .342 +(xist or which is not readable, no message)-.15 F(is printed.)189 566.4 Q 68.67 +(fS)117 582.6 S -2.25 -.2(av e)194.56 582.6 T 2.399 (Unix-style \231From\232 lines at the front of headers.)5.099 F 2.399 -(Normally the)7.399 F 4.9(ya)-.15 G(re)496.23 309 Q -(assumed redundant and discarded.)189 321 Q(F)117 337.2 Q F2(mode)A F1 -(The \214le mode for queue \214les.)189 337.2 Q(g)117 353.4 Q F2(n)A F1 .934 -(Set the def)189 353.4 R .933(ault group id for mailers to run in to)-.1 F F2 -(n)3.433 E F1 5.933(.D)C(ef)408.968 353.4 Q .933(aults to 1.)-.1 F .933(The v) -5.933 F(alue)-.25 E(can also be gi)189 365.4 Q -.15(ve)-.25 G 2.5(na).15 G 2.5 -(sas)264.69 365.4 S(ymbolic group name.)281.91 365.4 Q 64.78(GA)117 381.6 S -(llo)196.22 381.6 Q 3.491(wf)-.25 G .991(uzzy matching on the GECOS \214eld.) -220.571 381.6 R .992(If this \215ag is set, and the usual)5.991 F .794 -(user name lookups f)189 393.6 R .793 -(ail \(that is, there is no alias with this name and a)-.1 F F2 -.1(ge)3.293 G -(tpw-).1 E(nam)189 405.6 Q F1 -.1(fa)3.701 G 1.201 +(Normally the)7.399 F 4.9(ya)-.15 G(re)496.23 582.6 Q +(assumed redundant and discarded.)189 594.6 Q(F)117 610.8 Q F2(mode)A F1 +(The \214le mode for queue \214les.)189 610.8 Q(g)117 627 Q F2(n)A F1 .934 +(Set the def)189 627 R .933(ault group id for mailers to run in to)-.1 F F2(n) +3.433 E F1 5.933(.D)C(ef)408.968 627 Q .933(aults to 1.)-.1 F .933(The v)5.933 +F(alue)-.25 E(can also be gi)189 639 Q -.15(ve)-.25 G 2.5(na).15 G 2.5(sas) +264.69 639 S(ymbolic group name.)281.91 639 Q 64.78(GA)117 655.2 S(llo)196.22 +655.2 Q 3.491(wf)-.25 G .991(uzzy matching on the GECOS \214eld.)220.571 655.2 +R .992(If this \215ag is set, and the usual)5.991 F .794(user name lookups f) +189 667.2 R .793(ail \(that is, there is no alias with this name and a)-.1 F F2 +-.1(ge)3.293 G(tpw-).1 E(nam)189 679.2 Q F1 -.1(fa)3.701 G 1.201 (ils\), sequentially search the passw).1 F 1.202 -(ord \214le for a matching entry in the)-.1 F 1.446(GECOS \214eld.)189 417.6 R +(ord \214le for a matching entry in the)-.1 F 1.446(GECOS \214eld.)189 691.2 R 1.446(This also requires that MA)6.446 F 1.446(TCHGECOS be turned on during) --1.11 F 2.5(compilation. This)189 429.6 R(option is not recommended.)2.5 E(h) -117 445.8 Q F2(N)A F1 1.273(The maximum hop count.)189 445.8 R 1.274 -(Messages that ha)6.273 F 1.574 -.15(ve b)-.2 H 1.274(een processed more than) -.15 F F2(N)3.774 E F1(times are assumed to be in a loop and are rejected.)189 -457.8 Q(Def)5 E(aults to 25.)-.1 E(H)117 474 Q F2(\214le)A F1 -(Specify the help \214le for SMTP)189 474 Q(.)-1.11 E 69.22(iI)117 490.2 S -1.015(gnore dots in incoming messages.)192.33 490.2 R 1.014(This is al)6.014 F --.1(wa)-.1 G 1.014(ys disabled \(that is, dots are).1 F(al)189 502.2 Q -.1(wa) --.1 G(ys accepted\) when reading SMTP mail.).1 E 68.67(II)117 518.4 S .619 -(nsist that the BIND name serv)192.33 518.4 R .619(er be running to resolv)-.15 -F 3.119(eh)-.15 G .62(ost names.)421.52 518.4 R .62(If this is)5.62 F .945 -(not set and the name serv)189 530.4 R .945(er is not running, the)-.15 F F2 +-1.11 F 2.5(compilation. This)189 703.2 R(option is not recommended.)2.5 E EP +%%Page: 35 30 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-35)452.9 60 Q/F1 10/Times-Roman@0 SF(h)117 96 Q/F2 10/Times-Italic@0 SF +(N)A F1 1.273(The maximum hop count.)189 96 R 1.274(Messages that ha)6.273 F +1.574 -.15(ve b)-.2 H 1.274(een processed more than).15 F F2(N)3.774 E F1 +(times are assumed to be in a loop and are rejected.)189 108 Q(Def)5 E +(aults to 25.)-.1 E(H)117 124.2 Q F2(\214le)A F1 +(Specify the help \214le for SMTP)189 124.2 Q(.)-1.11 E 69.22(iI)117 140.4 S +1.015(gnore dots in incoming messages.)192.33 140.4 R 1.014(This is al)6.014 F +-.1(wa)-.1 G 1.014(ys disabled \(that is, dots are).1 F(al)189 152.4 Q -.1(wa) +-.1 G(ys accepted\) when reading SMTP mail.).1 E 68.67(II)117 168.6 S .619 +(nsist that the BIND name serv)192.33 168.6 R .619(er be running to resolv)-.15 +F 3.119(eh)-.15 G .62(ost names.)421.52 168.6 R .62(If this is)5.62 F .945 +(not set and the name serv)189 180.6 R .945(er is not running, the)-.15 F F2 (/etc/hosts)3.445 E F1 .945(\214le will be consid-)3.445 F .187(ered complete.) -189 542.4 R .188(In general, you do w)5.187 F .188 +189 192.6 R .188(In general, you do w)5.187 F .188 (ant to set this option if your)-.1 F F2(/etc/hosts)2.688 E F1(\214le)2.688 E -.412(does not include all hosts kno)189 554.4 R .412 +.412(does not include all hosts kno)189 204.6 R .412 (wn to you or if you are using the MX \(mail for)-.25 F(-)-.2 E -.1(wa)189 -566.4 S .314(rding\) feature of the BIND name serv).1 F(er)-.15 E 5.315(.T)-.55 -G .315(he name serv)373.95 566.4 R .315(er will still be con-)-.15 F 1.523 -(sulted e)189 578.4 R -.15(ve)-.25 G 4.023(ni).15 G 4.023(ft)242.196 578.4 S -1.523(his option is not set, b)252.329 578.4 R(ut)-.2 E F2(sendmail)4.023 E F1 -1.522(will feel free to resort to)4.023 F(reading)189 590.4 Q F2(/etc/hosts) +216.6 S .314(rding\) feature of the BIND name serv).1 F(er)-.15 E 5.315(.T)-.55 +G .315(he name serv)373.95 216.6 R .315(er will still be con-)-.15 F 1.523 +(sulted e)189 228.6 R -.15(ve)-.25 G 4.023(ni).15 G 4.023(ft)242.196 228.6 S +1.523(his option is not set, b)252.329 228.6 R(ut)-.2 E F2(sendmail)4.023 E F1 +1.522(will feel free to resort to)4.023 F(reading)189 240.6 Q F2(/etc/hosts) 3.052 E F1 .552(if the name serv)3.052 F .553(er is not a)-.15 F -.25(va)-.2 G 3.053(ilable. Thus,).25 F .553(you should)3.053 F F2(ne)3.053 E(ver)-.15 E F1 -(set this option if you do not run the name serv)189 602.4 Q(er)-.15 E(.)-.55 E -69.22(jI)117 618.6 S 3.129(fs)192.33 618.6 S .628 +(set this option if you do not run the name serv)189 252.6 Q(er)-.15 E(.)-.55 E +69.22(jI)117 268.8 S 3.129(fs)192.33 268.8 S .628 (et, send error messages in MIME format \(see RFC1341 and RFC1344 for)202.679 -618.6 R(details\).)189 630.6 Q(J)117 646.8 Q F2(path)A F1 4.923 -(Set the path for searching for users' .forw)189 646.8 R 4.923(ard \214les.)-.1 -F 4.923(The def)9.923 F 4.923(ault is)-.1 F(\231$z/.forw)189 658.8 Q 2.869 +268.8 R(details\).)189 280.8 Q(J)117 297 Q F2(path)A F1 4.923 +(Set the path for searching for users' .forw)189 297 R 4.923(ard \214les.)-.1 F +4.923(The def)9.923 F 4.923(ault is)-.1 F(\231$z/.forw)189 309 Q 2.869 (ard\232. Some)-.1 F .368 (sites that use the automounter may prefer to change this)2.869 F .676 -(to \231/v)189 670.8 R(ar/forw)-.25 E .676 +(to \231/v)189 321 R(ar/forw)-.25 E .676 (ard/$u\232 to search a \214le with the same name as the user in a sys-)-.1 F -.925(tem directory)189 682.8 R 5.925(.I)-.65 G 3.425(tc)254.63 682.8 S .924 -(an also be set to a sequence of paths separated by colons;)265.275 682.8 R F2 -(sendmail)189 694.8 Q F1 .645 +.925(tem directory)189 333 R 5.925(.I)-.65 G 3.425(tc)254.63 333 S .924 +(an also be set to a sequence of paths separated by colons;)265.275 333 R F2 +(sendmail)189 345 Q F1 .645 (stops at the \214rst \214le it can successfully and safely open.)3.145 F -.15 -(Fo)5.646 G 3.146(re).15 G(xam-)483.45 694.8 Q 1.535(ple, \231/v)189 706.8 R +(Fo)5.646 G 3.146(re).15 G(xam-)483.45 345 Q 1.535(ple, \231/v)189 357 R (ar/forw)-.25 E(ard/$u:$z/.forw)-.1 E 1.535(ard\232 will search \214rst in /v) --.1 F(ar/forw)-.25 E(ard/)-.1 E F2(username)A F1(and then in)189 718.8 Q F2 +-.1 F(ar/forw)-.25 E(ard/)-.1 E F2(username)A F1(and then in)189 369 Q F2 (~username)2.5 E F1(/.forw)A(ard \(b)-.1 E -(ut only if the \214rst \214le does not e)-.2 E(xist\).)-.15 E EP -%%Page: 36 31 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-36 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(k)117 96 Q/F2 10 -/Times-Italic@0 SF(N)A F1 .196 -(The maximum number of open connections that will be cached at a time.)189 96 R -(The)5.197 E(def)189 108 Q .567(ault is one.)-.1 F .567 -(This delays closing the the current connection until either this)5.567 F(in) -189 120 Q -.2(vo)-.4 G .515(cation of).2 F F2(sendmail)3.015 E F1 .516 +(ut only if the \214rst \214le does not e)-.2 E(xist\).)-.15 E(k)117 385.2 Q F2 +(N)A F1 .196 +(The maximum number of open connections that will be cached at a time.)189 +385.2 R(The)5.197 E(def)189 397.2 Q 1.957(ault is one.)-.1 F 1.956 +(This delays closing the current connection until either this)6.957 F(in)189 +409.2 Q -.2(vo)-.4 G .515(cation of).2 F F2(sendmail)3.015 E F1 .516 (needs to connect to another host or it terminates.)3.016 F(Set-)5.516 E 1.959 -(ting it to zero def)189 132 R 1.959(aults to the old beha)-.1 F(vior)-.2 E -4.458(,t)-.4 G 1.958(hat is, connections are closed)379.248 132 R(immediately) -189 144 Q(.)-.65 E(K)117 160.2 Q F2(timeout)A F1 .882 +(ting it to zero def)189 421.2 R 1.959(aults to the old beha)-.1 F(vior)-.2 E +4.458(,t)-.4 G 1.958(hat is, connections are closed)379.248 421.2 R +(immediately)189 433.2 Q(.)-.65 E(K)117 449.4 Q F2(timeout)A F1 .882 (The maximum amount of time a cached connection will be permitted to idle)189 -160.2 R 2.746(without acti)189 172.2 R(vity)-.25 E 7.746(.I)-.65 G 5.246(ft) -267.482 172.2 S 2.746(his time is e)278.838 172.2 R 2.746 -(xceeded, the connection is immediately)-.15 F 4.422(closed. This)189 184.2 R +449.4 R 2.746(without acti)189 461.4 R(vity)-.25 E 7.746(.I)-.65 G 5.246(ft) +267.482 461.4 S 2.746(his time is e)278.838 461.4 R 2.746 +(xceeded, the connection is immediately)-.15 F 4.422(closed. This)189 473.4 R -.25(va)4.422 G 1.923(lue should be small \(on the order of ten minutes\).).25 -F(Before)6.923 E F2(sendmail)189 196.2 Q F1 1.287 +F(Before)6.923 E F2(sendmail)189 485.4 Q F1 1.287 (uses a cached connection, it al)3.787 F -.1(wa)-.1 G 1.286 (ys sends a NOOP \(no operation\)).1 F 2.058 -(command to check the connection; if this f)189 208.2 R 2.058 -(ails, it reopens the connection.)-.1 F .478(This k)189 220.2 R .478 +(command to check the connection; if this f)189 497.4 R 2.058 +(ails, it reopens the connection.)-.1 F .478(This k)189 509.4 R .478 (eeps your end from f)-.1 F .478(ailing if the other end times out.)-.1 F .478 -(The point of this)5.478 F 3.099(option is to be a good netw)189 232.2 R 3.099 +(The point of this)5.478 F 3.099(option is to be a good netw)189 521.4 R 3.099 (ork neighbor and a)-.1 F -.2(vo)-.2 G 3.1(id using up e).2 F(xcessi)-.15 E --.15(ve)-.25 G(resources on the other end.)189 244.2 Q(The def)5 E -(ault is \214v)-.1 E 2.5(em)-.15 G(inutes.)383.99 244.2 Q 69.22(lI)117 260.4 S -3.14(ft)192.33 260.4 S .64(here is an \231Errors-T)201.58 260.4 R .64 +-.15(ve)-.25 G(resources on the other end.)189 533.4 Q(The def)5 E +(ault is \214v)-.1 E 2.5(em)-.15 G(inutes.)383.99 533.4 Q 69.22(lI)117 549.6 S +3.14(ft)192.33 549.6 S .64(here is an \231Errors-T)201.58 549.6 R .64 (o:\232 header)-.8 F 3.14(,s)-.4 G .64 -(end error messages to the addresses listed)333.53 260.4 R 3.95(there. The)189 -272.4 R 3.95(yn)-.15 G 1.451(ormally go to the en)247.29 272.4 R -.15(ve)-.4 G +(end error messages to the addresses listed)333.53 549.6 R 3.95(there. The)189 +561.6 R 3.95(yn)-.15 G 1.451(ormally go to the en)247.29 561.6 R -.15(ve)-.4 G 1.451(lope sender).15 F 6.451(.U)-.55 G 1.451(se of this option causes)405.426 -272.4 R F2(sendmail)189 284.4 Q F1(to violate RFC 1123.)2.5 E(L)117 300.6 Q F2 -(n)A F1(Set the def)189 300.6 Q(ault log le)-.1 E -.15(ve)-.25 G 2.5(lt).15 G -(o)288.77 300.6 Q F2(n)2.5 E F1 5(.D)C(ef)315.99 300.6 Q(aults to 9.)-.1 E -64.22(mS)117 316.8 S(end to me too, e)194.56 316.8 Q -.15(ve)-.25 G 2.5(ni).15 -G 2.5(fIa)278.04 316.8 S 2.5(mi)294.14 316.8 S 2.5(na)307.2 316.8 S 2.5(na) -319.14 316.8 S(lias e)331.08 316.8 Q(xpansion.)-.15 E(M)117 333 Q F2 1.666(xv)C -(alue)-1.666 E F1 1.313(Set the macro)189 333 R F2(x)3.812 E F1(to)3.812 E F2 -(value)3.812 E F1 6.312(.T)C 1.312 -(his is intended only for use from the command)306.854 333 R(line.)189 345 Q 67 -(nV)117 361.2 S(alidate the RHS of aliases when reb)195.11 361.2 Q -(uilding the alias database.)-.2 E 67(oA)117 377.4 S 1.786 +561.6 R F2(sendmail)189 573.6 Q F1(to violate RFC 1123.)2.5 E(L)117 589.8 Q F2 +(n)A F1(Set the def)189 589.8 Q(ault log le)-.1 E -.15(ve)-.25 G 2.5(lt).15 G +(o)288.77 589.8 Q F2(n)2.5 E F1 5(.D)C(ef)315.99 589.8 Q(aults to 9.)-.1 E +64.22(mS)117 606 S(end to me too, e)194.56 606 Q -.15(ve)-.25 G 2.5(ni).15 G +2.5(fIa)278.04 606 S 2.5(mi)294.14 606 S 2.5(na)307.2 606 S 2.5(na)319.14 606 S +(lias e)331.08 606 Q(xpansion.)-.15 E(M)117 622.2 Q F2 1.666(xv)C(alue)-1.666 E +F1 1.313(Set the macro)189 622.2 R F2(x)3.812 E F1(to)3.812 E F2(value)3.812 E +F1 6.312(.T)C 1.312(his is intended only for use from the command)306.854 622.2 +R(line.)189 634.2 Q 67(nV)117 650.4 S(alidate the RHS of aliases when reb) +195.11 650.4 Q(uilding the alias database.)-.2 E 67(oA)117 666.6 S 1.786 (ssume that the headers may be in old format, i.e., spaces delimit names.) -196.22 377.4 R .433(This actually turns on an adapti)189 389.4 R .733 -.15 +196.22 666.6 R .433(This actually turns on an adapti)189 678.6 R .733 -.15 (ve a)-.25 H .433(lgorithm: if an).15 F 2.932(yr)-.15 G .432 -(ecipient address contains)403.156 389.4 R 5.089(ac)189 401.4 S 2.589 -(omma, parenthesis, or angle brack)202.969 401.4 R 2.589 -(et, it will be assumed that commas)-.1 F .485(already e)189 413.4 R 2.985 +(ecipient address contains)403.156 678.6 R 5.089(ac)189 690.6 S 2.589 +(omma, parenthesis, or angle brack)202.969 690.6 R 2.589 +(et, it will be assumed that commas)-.1 F .485(already e)189 702.6 R 2.985 (xist. If)-.15 F .485(this \215ag is not on, only commas delimit names.)2.985 F -.484(Headers are)5.484 F(al)189 425.4 Q -.1(wa)-.1 G -(ys output with commas between the names.).1 E(O)117 441.6 Q F2(options)A F1 -(Set serv)189 441.6 Q(er SMTP options.)-.15 E(The options are)5 E F2 -.1(ke)2.5 -G(y=value)-.2 E F1 2.5(pairs. Kno)2.5 F(wn k)-.25 E -.15(ey)-.1 G 2.5(sa).15 G -(re:)488.82 441.6 Q 52.83(Port Name/number)229 457.8 R(of listening port \(def) -2.5 E(aults to "smtp"\))-.1 E 48.95(Addr Address)229 469.8 R(mask \(def)2.5 E -(aults IN)-.1 E(ADDR_ANY\))-.35 E -.15(Fa)229 481.8 S 41.31(mily Address).15 F --.1(fa)2.5 G(mily \(def).1 E(aults to INET\))-.1 E 44.5(Listen Size)229 493.8 R -(of listen queue \(def)2.5 E(aults to 10\))-.1 E(The)189 510 Q F2(Addr)4.113 E -F1 1.614(ess mask may be a numeric address in dot notation or a netw)B(ork)-.1 -E(name.)189 522 Q(p)117 538.2 Q F2(opt,opt,...)1.666 E F1 1.221(Set the pri)189 -538.2 R -.25(va)-.25 G -.15(cy).25 G F2(opt)3.871 E F1 3.721(ions. `)B(`Pri) --.74 E -.25(va)-.25 G -.15(cy).25 G 2.701 -.74('' i).15 H 3.721(sr).74 G 1.221 -(eally a misnomer; man)351.856 538.2 R 3.721(yo)-.15 G 3.72(ft)460.47 538.2 S -1.22(hese are)470.3 538.2 R 2.418(just a w)189 550.2 R 2.418 -(ay of insisting on stricter adherence to the SMTP protocol.)-.1 F(The)7.419 E -F2(opt)189 562.2 Q F1(ions can be selected from:)A 40.26(public Allo)229 578.4 -R 2.5(wo)-.25 G(pen access)329.01 578.4 Q 11.38(needmailhelo Insist)229 590.4 R -(on HELO or EHLO command before MAIL)2.5 E(neede)229 602.4 Q 9.87 -(xpnhelo Insist)-.15 F(on HELO or EHLO command before EXPN)2.5 E(noe)229 614.4 -Q 35.97(xpn Disallo)-.15 F 2.5(wE)-.25 G(XPN entirely)341.23 614.4 Q 12.5 -(needvrfyhelo Insist)229 626.4 R(on HELO or EHLO command before VRFY)2.5 E(no) -229 638.4 Q 38.75(vrfy Disallo)-.15 F 2.5(wV)-.25 G(RFY entirely)342.34 638.4 Q -14.71(restrictmailq Restrict)229 650.4 R(mailq command)2.5 E 19.16 -(restrictqrun Restrict)229 662.4 R(\255q command line \215ag)2.5 E(goa)229 -674.4 Q -.1(wa)-.15 G 36.91(yD).1 G(isallo)303.98 674.4 Q 2.5(we)-.25 G -(ssentially all SMTP status queries)339.56 674.4 Q 1.566(The \231goa)189 690.6 -R -.1(wa)-.15 G 1.566(y\232 pseudo-\215ag sets all \215ags e).1 F 1.565 -(xcept \231restrictmailq\232 and \231restric-)-.15 F 4.298(tqrun\232. If)189 -702.6 R 1.799(mailq is restricted, only people in the same group as the queue) -4.298 F .947(directory can print the queue.)189 714.6 R .946 -(If queue runs are restricted, only root and the)5.946 F EP -%%Page: 37 32 +.484(Headers are)5.484 F(al)189 714.6 Q -.1(wa)-.1 G +(ys output with commas between the names.).1 E EP +%%Page: 36 31 %%BeginPageSetup BP %%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-37)452.9 60 Q/F1 10/Times-Roman@0 SF -.25(ow)189 96 S -(ner of the queue directory can run the queue.).25 E(P)117 112.2 Q/F2 10 -/Times-Italic@0 SF(postmaster)A F1 1.115 -(If set, copies of error messages will be sent to the named)189 112.2 R F2 -(postmaster)3.615 E F1 6.115(.O)C(nly)491.22 112.2 Q .398(the header of the f) -189 124.2 R .398(ailed message is sent.)-.1 F .397 +/F0 10/Times-Bold@0 SF 193.36(SMM:08-36 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(O)117 96 Q/F2 10 +/Times-Italic@0 SF(options)A F1(Set serv)189 96 Q(er SMTP options.)-.15 E +(The options are)5 E F2 -.1(ke)2.5 G(y=value)-.2 E F1 2.5(pairs. Kno)2.5 F +(wn k)-.25 E -.15(ey)-.1 G 2.5(sa).15 G(re:)488.82 96 Q 52.83(Port Name/number) +229 112.2 R(of listening port \(def)2.5 E(aults to "smtp"\))-.1 E 48.95 +(Addr Address)229 124.2 R(mask \(def)2.5 E(aults IN)-.1 E(ADDR_ANY\))-.35 E +-.15(Fa)229 136.2 S 41.31(mily Address).15 F -.1(fa)2.5 G(mily \(def).1 E +(aults to INET\))-.1 E 44.5(Listen Size)229 148.2 R(of listen queue \(def)2.5 E +(aults to 10\))-.1 E(The)189 164.4 Q F2(Addr)4.113 E F1 1.614 +(ess mask may be a numeric address in dot notation or a netw)B(ork)-.1 E(name.) +189 176.4 Q(p)117 192.6 Q F2(opt,opt,...)1.666 E F1 1.221(Set the pri)189 192.6 +R -.25(va)-.25 G -.15(cy).25 G F2(opt)3.871 E F1 3.721(ions. `)B(`Pri)-.74 E +-.25(va)-.25 G -.15(cy).25 G 2.701 -.74('' i).15 H 3.721(sr).74 G 1.221 +(eally a misnomer; man)351.856 192.6 R 3.721(yo)-.15 G 3.72(ft)460.47 192.6 S +1.22(hese are)470.3 192.6 R 2.418(just a w)189 204.6 R 2.418 +(ay of insisting on stricter adherence to the SMTP protocol.)-.1 F(The)7.419 E +F2(opt)189 216.6 Q F1(ions can be selected from:)A 40.26(public Allo)229 232.8 +R 2.5(wo)-.25 G(pen access)329.01 232.8 Q 11.38(needmailhelo Insist)229 244.8 R +(on HELO or EHLO command before MAIL)2.5 E(neede)229 256.8 Q 9.87 +(xpnhelo Insist)-.15 F(on HELO or EHLO command before EXPN)2.5 E(noe)229 268.8 +Q 35.97(xpn Disallo)-.15 F 2.5(wE)-.25 G(XPN entirely)341.23 268.8 Q 12.5 +(needvrfyhelo Insist)229 280.8 R(on HELO or EHLO command before VRFY)2.5 E(no) +229 292.8 Q 38.75(vrfy Disallo)-.15 F 2.5(wV)-.25 G(RFY entirely)342.34 292.8 Q +14.71(restrictmailq Restrict)229 304.8 R(mailq command)2.5 E 19.16 +(restrictqrun Restrict)229 316.8 R(\255q command line \215ag)2.5 E(goa)229 +328.8 Q -.1(wa)-.15 G 36.91(yD).1 G(isallo)303.98 328.8 Q 2.5(we)-.25 G +(ssentially all SMTP status queries)339.56 328.8 Q(authw)229 340.8 Q 11.48 +(arnings Put)-.1 F(X-Authentication-W)2.5 E(arning: headers in messages)-.8 E +1.566(The \231goa)189 357 R -.1(wa)-.15 G 1.566 +(y\232 pseudo-\215ag sets all \215ags e).1 F 1.565 +(xcept \231restrictmailq\232 and \231restric-)-.15 F 4.298(tqrun\232. If)189 +369 R 1.799(mailq is restricted, only people in the same group as the queue) +4.298 F .947(directory can print the queue.)189 381 R .946 +(If queue runs are restricted, only root and the)5.946 F -.25(ow)189 393 S .178 +(ner of the queue directory can run the queue.).25 F .179(Authentication W) +5.178 F .179(arnings add)-.8 F -.1(wa)189 405 S .009(rnings about v).1 F .008 +(arious conditions that may indicate attempts to spoof the mail)-.25 F +(system, such as using an non-standard queue directory)189 417 Q(.)-.65 E(P)117 +433.2 Q F2(postmaster)A F1 1.115 +(If set, copies of error messages will be sent to the named)189 433.2 R F2 +(postmaster)3.615 E F1 6.115(.O)C(nly)491.22 433.2 Q .398(the header of the f) +189 445.2 R .398(ailed message is sent.)-.1 F .397 (Since most errors are user problems,)5.398 F .563 -(this is probably not a good idea on lar)189 136.2 R .564(ge sites, and ar)-.18 -F .564(guably contains all sorts)-.18 F .05(of pri)189 148.2 R -.25(va)-.25 G +(this is probably not a good idea on lar)189 457.2 R .564(ge sites, and ar)-.18 +F .564(guably contains all sorts)-.18 F .05(of pri)189 469.2 R -.25(va)-.25 G .35 -.15(cy v).25 H .05(iolations, b).15 F .05 (ut it seems to be popular with certain operating systems)-.2 F -.15(ve)189 -160.2 S(ndors.).15 E(q)117 176.4 Q F2(factor)A F1(Use)189 176.4 Q F2(factor) +481.2 S(ndors.).15 E(q)117 497.4 Q F2(factor)A F1(Use)189 497.4 Q F2(factor) 3.097 E F1 .597 (as the multiplier in the map function to decide when to just queue)3.097 F -.426(up jobs rather than run them.)189 188.4 R .425(This v)5.425 F .425 +.426(up jobs rather than run them.)189 509.4 R .425(This v)5.425 F .425 (alue is di)-.25 F .425(vided by the dif)-.25 F .425(ference between)-.25 F -1.063(the current load a)189 200.4 R -.15(ve)-.2 G 1.064(rage and the load a) +1.063(the current load a)189 521.4 R -.15(ve)-.2 G 1.064(rage and the load a) .15 F -.15(ve)-.2 G 1.064(rage limit \().15 F F0(x)A F1 1.064 (\215ag\) to determine the)3.564 F(maximum message priority that will be sent.) -189 212.4 Q(Def)5 E(aults to 600000.)-.1 E(Q)117 228.6 Q F2(dir)A F1 -(Use the named)189 228.6 Q F2(dir)2.5 E F1(as the queue directory)2.5 E(.)-.65 -E(r)117 244.8 Q F2(timeouts)1.666 E F1 -.35(Ti)189 244.8 S 3.939 +189 533.4 Q(Def)5 E(aults to 600000.)-.1 E(Q)117 549.6 Q F2(dir)A F1 +(Use the named)189 549.6 Q F2(dir)2.5 E F1(as the queue directory)2.5 E(.)-.65 +E(r)117 565.8 Q F2(timeouts)1.666 E F1 -.35(Ti)189 565.8 S 3.939 (meout reads after).35 F F2(time)6.438 E F1(interv)6.438 E 6.438(al. The)-.25 F F2(timeouts)6.438 E F1(ar)6.438 E 3.938(gument is a list of)-.18 F F2 -.1(ke) -189 256.8 S(ywor)-.2 E(d=value)-.37 E F1 3.61(pairs. The)3.61 F 1.11 +189 577.8 S(ywor)-.2 E(d=value)-.37 E F1 3.61(pairs. The)3.61 F 1.11 (recognized timeouts and their def)3.61 F 1.11(ault v)-.1 F 1.11(alues, and) --.25 F(their minimum v)189 268.8 Q -(alues speci\214ed in RFC 1123 section 5.3.2 are:)-.25 E 23.6(initial w)229 285 -R(ait for initial greeting message [5m, 5m])-.1 E 29.72(helo reply)229 297 R -(to HELO or EHLO command [5m, none])2.5 E 29.16(mail reply)229 309 R -(to MAIL command [10m, 5m])2.5 E 31.39(rcpt reply)229 321 R -(to RCPT command [1h, 5m])2.5 E 16.94(datainit reply)229 333 R(to D)2.5 E -1.21 --1.11(AT A)-.4 H(command [5m, 2m])3.61 E 8.06(datablock data)229 345 R -(block read [1h, 3m])2.5 E 12.5(data\214nal reply)229 357 R(to \214nal `)2.5 E -(`.)-.74 E 1.48 -.74('' i)-.7 H 2.5(nd).74 G(ata [1h, 10m])363.47 357 Q 32.5 -(rset reply)229 369 R(to RSET command [5m, none])2.5 E 31.38(quit reply)229 381 -R(to Q)2.5 E(UIT command [2m, none])-.1 E 28.05(misc reply)229 393 R -(to NOOP and VERB commands [2m, none])2.5 E 7.5(command command)229 405 R -(read [1h, 5m])2.5 E 26.94(ident IDENT)229 417 R(protocol timeout [30s, none]) -2.5 E .799(All b)189 433.2 R .798(ut \231command\232 apply to client SMTP)-.2 F -5.798(.F)-1.11 G .798(or back compatibility)373.408 433.2 R 3.298(,at)-.65 G -(imeout)476.22 433.2 Q(with no `)189 445.2 Q(`k)-.74 E -.15(ey)-.1 G -.1(wo).15 -G(rd=').1 E 2.5('p)-.74 G(art will set all of the longer v)281.4 445.2 Q -(alues.)-.25 E 65.33(RN)117 461.4 S(ormally)196.22 461.4 Q(,)-.65 E F2 -(sendmail)4.153 E F1 1.653(tries to eliminate an)4.153 F 4.153(yu)-.15 G 1.654 -(nnecessary e)371.718 461.4 R 1.654(xplicit routes when)-.15 F .931 -(sending an error message \(as discussed in RFC 1123 \247 5.2.6\).)189 473.4 R --.15(Fo)5.93 G 3.43(re).15 G(xample,)472.06 473.4 Q -(when sending an error message to)189 485.4 Q(<@kno)229 501.6 Q(wn1,@kno)-.25 E -(wn2,@unkno)-.25 E(wn:user@kno)-.25 E(wn3>)-.25 E F2(sendmail)189 517.8 Q F1 -.46(will strip of)2.96 F 2.96(ft)-.25 G .46(he \231@kno)284.48 517.8 R .46 +-.25 F(their minimum v)189 589.8 Q +(alues speci\214ed in RFC 1123 section 5.3.2 are:)-.25 E EP +%%Page: 37 32 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-37)452.9 60 Q/F1 10/Times-Roman@0 SF 23.6(initial w)229 96 R +(ait for initial greeting message [5m, 5m])-.1 E 29.72(helo reply)229 108 R +(to HELO or EHLO command [5m, none])2.5 E 29.16(mail reply)229 120 R +(to MAIL command [10m, 5m])2.5 E 31.39(rcpt reply)229 132 R +(to RCPT command [1h, 5m])2.5 E 16.94(datainit reply)229 144 R(to D)2.5 E -1.21 +-1.11(AT A)-.4 H(command [5m, 2m])3.61 E 8.06(datablock data)229 156 R +(block read [1h, 3m])2.5 E 12.5(data\214nal reply)229 168 R(to \214nal `)2.5 E +(`.)-.74 E 1.48 -.74('' i)-.7 H 2.5(nd).74 G(ata [1h, 10m])363.47 168 Q 32.5 +(rset reply)229 180 R(to RSET command [5m, none])2.5 E 31.38(quit reply)229 192 +R(to Q)2.5 E(UIT command [2m, none])-.1 E 28.05(misc reply)229 204 R +(to NOOP and VERB commands [2m, none])2.5 E 7.5(command command)229 216 R +(read [1h, 5m])2.5 E 26.94(ident IDENT)229 228 R(protocol timeout [30s, none]) +2.5 E .799(All b)189 244.2 R .798(ut \231command\232 apply to client SMTP)-.2 F +5.798(.F)-1.11 G .798(or back compatibility)373.408 244.2 R 3.298(,at)-.65 G +(imeout)476.22 244.2 Q(with no `)189 256.2 Q(`k)-.74 E -.15(ey)-.1 G -.1(wo).15 +G(rd=').1 E 2.5('p)-.74 G(art will set all of the longer v)281.4 256.2 Q +(alues.)-.25 E 65.33(RN)117 272.4 S(ormally)196.22 272.4 Q(,)-.65 E/F2 10 +/Times-Italic@0 SF(sendmail)4.153 E F1 1.653(tries to eliminate an)4.153 F +4.153(yu)-.15 G 1.654(nnecessary e)371.718 272.4 R 1.654(xplicit routes when) +-.15 F .931(sending an error message \(as discussed in RFC 1123 \247 5.2.6\).) +189 284.4 R -.15(Fo)5.93 G 3.43(re).15 G(xample,)472.06 284.4 Q +(when sending an error message to)189 296.4 Q(<@kno)229 312.6 Q(wn1,@kno)-.25 E +(wn2,@unkno)-.25 E(wn:user@kno)-.25 E(wn3>)-.25 E F2(sendmail)189 328.8 Q F1 +.46(will strip of)2.96 F 2.96(ft)-.25 G .46(he \231@kno)284.48 328.8 R .46 (wn1\232 in order to mak)-.25 F 2.96(et)-.1 G .46(he route as direct as)422.74 -517.8 R 3.43(possible. Ho)189 529.8 R(we)-.25 E -.15(ve)-.25 G 1.73 -.4(r, i) -.15 H 3.43(ft).4 G(he)284.06 529.8 Q F0(R)3.43 E F1 .929 +328.8 R 3.43(possible. Ho)189 340.8 R(we)-.25 E -.15(ve)-.25 G 1.73 -.4(r, i) +.15 H 3.43(ft).4 G(he)284.06 340.8 Q F0(R)3.43 E F1 .929 (option is set, this will be disabled, and the mail)3.429 F .362 -(will be sent to the \214rst address in the route, e)189 541.8 R -.15(ve)-.25 G -2.862(ni).15 G 2.862(fl)391.452 541.8 S .362(ater addresses are kno)400.424 -541.8 R(wn.)-.25 E(This may be useful if you are caught behind a \214re)189 -553.8 Q -.1(wa)-.25 G(ll.).1 E 68.11(sB)117 570 S 2.73(es)195.67 570 S(uper) -206.73 570 Q .229(-safe when running things, i.e., al)-.2 F -.1(wa)-.1 G .229 +(will be sent to the \214rst address in the route, e)189 352.8 R -.15(ve)-.25 G +2.862(ni).15 G 2.862(fl)391.452 352.8 S .362(ater addresses are kno)400.424 +352.8 R(wn.)-.25 E(This may be useful if you are caught behind a \214re)189 +364.8 Q -.1(wa)-.25 G(ll.).1 E 68.11(sB)117 381 S 2.73(es)195.67 381 S(uper) +206.73 381 Q .229(-safe when running things, i.e., al)-.2 F -.1(wa)-.1 G .229 (ys instantiate the queue \214le, e).1 F -.15(ve)-.25 G(n).15 E .739 -(if you are going to attempt immediate deli)189 582 R -.15(ve)-.25 G(ry).15 E +(if you are going to attempt immediate deli)189 393 R -.15(ve)-.25 G(ry).15 E (.)-.65 E F2(Sendmail)5.739 E F1(al)3.239 E -.1(wa)-.1 G .739(ys instantiates) -.1 F(the queue \214le before returning control the the client under an)189 594 -Q 2.5(yc)-.15 G(ircumstances.)444.07 594 Q(S)117 610.2 Q F2(\214le)A F1 -(Log statistics in the named)189 610.2 Q F2(\214le)2.5 E F1(.)A(t)117 626.4 Q -F2(tzinfo)A F1 .717(Set the local time zone info to)189 626.4 R F2(tzinfo)3.217 -E F1 3.216<8a66>3.217 G .716(or e)358.502 626.4 R .716 +.1 F(the queue \214le before returning control the client under an)189 405 Q +2.5(yc)-.15 G(ircumstances.)429.35 405 Q(S)117 421.2 Q F2(\214le)A F1 +(Log statistics in the named)189 421.2 Q F2(\214le)2.5 E F1(.)A(t)117 437.4 Q +F2(tzinfo)A F1 .717(Set the local time zone info to)189 437.4 R F2(tzinfo)3.217 +E F1 3.216<8a66>3.217 G .716(or e)358.502 437.4 R .716 (xample, \231PST8PDT\232.)-.15 F(Actually)5.716 E(,)-.65 E .314 -(if this is not set, the TZ en)189 638.4 R .314(vironment v)-.4 F .315 +(if this is not set, the TZ en)189 449.4 R .314(vironment v)-.4 F .315 (ariable is cleared \(so the system def)-.25 F(ault)-.1 E .551 -(is used\); if set b)189 650.4 R .551(ut null, the user')-.2 F 3.051(sT)-.55 G -3.051(Zv)334.038 650.4 S .55(ariable is used, and if set and non-null)347.949 -650.4 R(the TZ v)189 662.4 Q(ariable is set to this v)-.25 E(alue.)-.25 E(T)117 -678.6 Q F2(rtime/wtime)A F1 1.603(Set the queue timeout to)189 678.6 R F2 -(rtime)4.103 E F1 6.603(.A)C 1.603(fter this interv)334.168 678.6 R 1.604 +(is used\); if set b)189 461.4 R .551(ut null, the user')-.2 F 3.051(sT)-.55 G +3.051(Zv)334.038 461.4 S .55(ariable is used, and if set and non-null)347.949 +461.4 R(the TZ v)189 473.4 Q(ariable is set to this v)-.25 E(alue.)-.25 E(T)117 +489.6 Q F2(rtime/wtime)A F1 1.603(Set the queue timeout to)189 489.6 R F2 +(rtime)4.103 E F1 6.603(.A)C 1.603(fter this interv)334.168 489.6 R 1.604 (al, messages that ha)-.25 F 1.904 -.15(ve n)-.2 H(ot).15 E 1.252 -(been successfully sent will be returned to the sender)189 690.6 R 6.251(.D) --.55 G(ef)422.727 690.6 Q 1.251(aults to \214v)-.1 F 3.751(ed)-.15 G(ays.) -488.17 690.6 Q .546(The optional)189 702.6 R F2(wtime)3.046 E F1 .546 +(been successfully sent will be returned to the sender)189 501.6 R 6.251(.D) +-.55 G(ef)422.727 501.6 Q 1.251(aults to \214v)-.1 F 3.751(ed)-.15 G(ays.) +488.17 501.6 Q .546(The optional)189 513.6 R F2(wtime)3.046 E F1 .546 (is the time after which a w)3.046 F .546(arning message is sent.)-.1 F .546 -(If it is)5.546 F(missing or zero then no w)189 714.6 Q -(arning messages are sent.)-.1 E EP -%%Page: 38 33 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF 193.36(SMM:08-38 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(u)117 96 Q/F2 10 -/Times-Italic@0 SF(n)A F1 .176(Set the def)189 96 R .176 -(ault userid for mailers to)-.1 F F2(n)2.675 E F1 5.175(.M)C .175 -(ailers without the)355.285 96 R F2(S)2.675 E F1 .175(\215ag in the mailer) -2.675 F .083(de\214nition will run as this user)189 108 R 5.084(.D)-.55 G(ef) -322.84 108 Q .084(aults to 1.)-.1 F .084(The v)5.084 F .084 -(alue can also be gi)-.25 F -.15(ve)-.25 G 2.584(na).15 G 2.584(sa)493.086 108 -S(symbolic user name.)189 120 Q(U)117 136.2 Q F2(udbspec)A F1 -(The user database speci\214cation.)189 136.2 Q 67(vR)117 152.4 S .412(un in v) -195.67 152.4 R .412(erbose mode.)-.15 F .412(If this is set,)5.412 F F2 +(If it is)5.546 F(missing or zero then no w)189 525.6 Q +(arning messages are sent.)-.1 E(u)117 541.8 Q F2(n)A F1 .176(Set the def)189 +541.8 R .176(ault userid for mailers to)-.1 F F2(n)2.675 E F1 5.175(.M)C .175 +(ailers without the)355.285 541.8 R F2(S)2.675 E F1 .175(\215ag in the mailer) +2.675 F .083(de\214nition will run as this user)189 553.8 R 5.084(.D)-.55 G(ef) +322.84 553.8 Q .084(aults to 1.)-.1 F .084(The v)5.084 F .084 +(alue can also be gi)-.25 F -.15(ve)-.25 G 2.584(na).15 G 2.584(sa)493.086 +553.8 S(symbolic user name.)189 565.8 Q(U)117 582 Q F2(udbspec)A F1 +(The user database speci\214cation.)189 582 Q 67(vR)117 598.2 S .412(un in v) +195.67 598.2 R .412(erbose mode.)-.15 F .412(If this is set,)5.412 F F2 (sendmail)2.911 E F1 .411(adjusts options)2.911 F F0(c)2.911 E F1(\(don')2.911 -E 2.911(tc)-.18 G(onnect)477.34 152.4 Q .427(to e)189 164.4 R(xpensi)-.15 E +E 2.911(tc)-.18 G(onnect)477.34 598.2 Q .427(to e)189 610.2 R(xpensi)-.15 E .727 -.15(ve m)-.25 H .427(ailers\) and).15 F F0(d)2.927 E F1(\(deli)2.928 E -.15(ve)-.25 G .428(ry mode\) so that all mail is deli).15 F -.15(ve)-.25 G .428(red com-).15 F .048 -(pletely in a single job so that you can see the entire deli)189 176.4 R -.15 +(pletely in a single job so that you can see the entire deli)189 622.2 R -.15 (ve)-.25 G .048(ry process.).15 F(Option)5.048 E F0(v)2.548 E F1(should)189 -188.4 Q F2(ne)3.389 E(ver)-.15 E F1 .889 +634.2 Q F2(ne)3.389 E(ver)-.15 E F1 .889 (be set in the con\214guration \214le; it is intended for command line)3.389 F -(use only)189 200.4 Q(.)-.65 E(V)117 216.6 Q F2(fallbac)A(khost)-.2 E F1 .964 -(If speci\214ed, the)189 216.6 R F2(fallbac)3.464 E(khost)-.2 E F1 .964 -(acts lik)3.464 F 3.464(eav)-.1 G .964(ery lo)358.608 216.6 R 3.464(wp)-.25 G -.964(riority MX on e)398.056 216.6 R -.15(ve)-.25 G .963(ry host.).15 F -(This is intended to be used by sites with poor netw)189 228.6 Q(ork connecti) --.1 E(vity)-.25 E(.)-.65 E 64.78(wI)117 244.8 S 4.06(fy)192.33 244.8 S 1.56 -(ou are the \231best\232 \(that is, lo)204.72 244.8 R 1.56 +(use only)189 646.2 Q(.)-.65 E(V)117 662.4 Q F2(fallbac)A(khost)-.2 E F1 .964 +(If speci\214ed, the)189 662.4 R F2(fallbac)3.464 E(khost)-.2 E F1 .964 +(acts lik)3.464 F 3.464(eav)-.1 G .964(ery lo)358.608 662.4 R 3.464(wp)-.25 G +.964(riority MX on e)398.056 662.4 R -.15(ve)-.25 G .963(ry host.).15 F +(This is intended to be used by sites with poor netw)189 674.4 Q(ork connecti) +-.1 E(vity)-.25 E(.)-.65 E 64.78(wI)117 690.6 S 4.06(fy)192.33 690.6 S 1.56 +(ou are the \231best\232 \(that is, lo)204.72 690.6 R 1.56 (west preference\) MX for a gi)-.25 F -.15(ve)-.25 G 4.06(nh).15 G 1.56 -(ost, you)470.77 244.8 R .433 +(ost, you)470.77 690.6 R .433 (should normally detect this situation and treat that condition specially)189 -256.8 R 2.932(,b)-.65 G 2.932(yf)481.278 256.8 S(or)492.54 256.8 Q(-)-.2 E -.1 -(wa)189 268.8 S .594 +702.6 R 2.932(,b)-.65 G 2.932(yf)481.278 702.6 S(or)492.54 702.6 Q(-)-.2 E -.1 +(wa)189 714.6 S .594 (rding the mail to a UUCP feed, treating it as local, or whate).1 F -.15(ve) -.25 G 4.194 -.55(r. H).15 H -.25(ow).55 G -2.15 -.25(ev e).25 H -.4(r,).25 G -1.898(in some cases \(such as Internet \214re)189 280.8 R -.1(wa)-.25 G 1.898 +EP +%%Page: 38 33 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 193.36(SMM:08-38 Sendmail)72 60 R +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 1.898 +(in some cases \(such as Internet \214re)189 96 R -.1(wa)-.25 G 1.898 (lls\) you may w).1 F 1.897(ant to try to connect)-.1 F .352 -(directly to that host as though it had no MX records at all.)189 292.8 R .352 -(Setting this option)5.352 F(causes)189 304.8 Q F2(sendmail)3.033 E F1 .533 -(to try this.)3.033 F .533(The do)5.533 F .532 -(wnside is that errors in your con\214guration)-.25 F .542(are lik)189 316.8 R +(directly to that host as though it had no MX records at all.)189 108 R .352 +(Setting this option)5.352 F(causes)189 120 Q/F2 10/Times-Italic@0 SF(sendmail) +3.033 E F1 .533(to try this.)3.033 F .533(The do)5.533 F .532 +(wnside is that errors in your con\214guration)-.25 F .542(are lik)189 132 R .542(ely to be diagnosed as \231host unkno)-.1 F .543 (wn\232 or \231message timed out\232 instead)-.25 F -(of something more meaningful.)189 328.8 Q(This option is disrecommended.)5 E -(x)117 345 Q F2(LA)A F1 .109(When the system load a)189 345 R -.15(ve)-.2 G +(of something more meaningful.)189 144 Q(This option is disrecommended.)5 E(x) +117 160.2 Q F2(LA)A F1 .109(When the system load a)189 160.2 R -.15(ve)-.2 G .108(rage e).15 F(xceeds)-.15 E F2(LA)2.608 E F1 2.608(,j)C .108 -(ust queue messages \(i.e., don')367.55 345 R 2.608(tt)-.18 G(ry)495.67 345 Q -(to send them\).)189 357 Q(Def)5 E(aults to 8.)-.1 E(X)117 373.2 Q F2(LA)A F1 -1.251(When the system load a)189 373.2 R -.15(ve)-.2 G 1.251(rage e).15 F +(ust queue messages \(i.e., don')367.55 160.2 R 2.608(tt)-.18 G(ry)495.67 160.2 +Q(to send them\).)189 172.2 Q(Def)5 E(aults to 8.)-.1 E(X)117 188.4 Q F2(LA)A +F1 1.251(When the system load a)189 188.4 R -.15(ve)-.2 G 1.251(rage e).15 F (xceeds)-.15 E F2(LA)3.751 E F1 3.751(,r)C 1.251(efuse incoming SMTP connec-) -376.097 373.2 R 2.5(tions. Def)189 385.2 R(aults to 12.)-.1 E(y)117 401.4 Q F2 -(fact)A F1 .622(The indicated)189 401.4 R F2(fact)3.122 E F1 .622 +376.097 188.4 R 2.5(tions. Def)189 200.4 R(aults to 12.)-.1 E(y)117 216.6 Q F2 +(fact)A F1 .622(The indicated)189 216.6 R F2(fact)3.122 E F1 .622 (or is added to the priority \(thus)B F2(lowering)3.121 E F1 .621 (the priority of the)3.121 F 1.383(job\) for each recipient, i.e., this v)189 -413.4 R 1.383(alue penalizes jobs with lar)-.25 F 1.384(ge numbers of)-.18 F -2.5(recipients. Def)189 425.4 R(aults to 30000.)-.1 E 64.78(YI)117 441.6 S -3.347(fs)192.33 441.6 S .847(et, deli)202.897 441.6 R -.15(ve)-.25 G 3.347(re) +228.6 R 1.383(alue penalizes jobs with lar)-.25 F 1.384(ge numbers of)-.18 F +2.5(recipients. Def)189 240.6 R(aults to 30000.)-.1 E 64.78(YI)117 256.8 S +3.347(fs)192.33 256.8 S .847(et, deli)202.897 256.8 R -.15(ve)-.25 G 3.347(re) .15 G .847(ach job that is run from the queue in a separate process.)251.121 -441.6 R(Use)5.846 E .036(this option if you are short of memory)189 453.6 R -2.536(,s)-.65 G .037(ince the def)350.018 453.6 R .037 +256.8 R(Use)5.846 E .036(this option if you are short of memory)189 268.8 R +2.536(,s)-.65 G .037(ince the def)350.018 268.8 R .037 (ault tends to consume con-)-.1 F -(siderable amounts of memory while the queue is being processed.)189 465.6 Q(z) -117 481.8 Q F2(fact)A F1 1.645(The indicated)189 481.8 R F2(fact)4.145 E F1 -1.644(or is multiplied by the message class \(determined by the)B .923 -(Precedence: \214eld in the user header and the)189 493.8 R F0(P)3.423 E F1 -.923(lines in the con\214guration \214le\))3.423 F .819 -(and subtracted from the priority)189 505.8 R 5.819(.T)-.65 G .819 -(hus, messages with a higher Priority: will)333.256 505.8 R(be f)189 517.8 Q --.2(avo)-.1 G 2.5(red. Def).2 F(aults to 1800.)-.1 E(Z)117 534 Q F2(fact)A F1 -(The)189 534 Q F2(fact)3.345 E F1 .845(or is added to the priority e)B -.15(ve) --.25 G .846(ry time a job is processed.).15 F .846(Thus, each)5.846 F .942 +(siderable amounts of memory while the queue is being processed.)189 280.8 Q(z) +117 297 Q F2(fact)A F1 1.645(The indicated)189 297 R F2(fact)4.145 E F1 1.644 +(or is multiplied by the message class \(determined by the)B .923 +(Precedence: \214eld in the user header and the)189 309 R F0(P)3.423 E F1 .923 +(lines in the con\214guration \214le\))3.423 F .819 +(and subtracted from the priority)189 321 R 5.819(.T)-.65 G .819 +(hus, messages with a higher Priority: will)333.256 321 R(be f)189 333 Q -.2 +(avo)-.1 G 2.5(red. Def).2 F(aults to 1800.)-.1 E(Z)117 349.2 Q F2(fact)A F1 +(The)189 349.2 Q F2(fact)3.345 E F1 .845(or is added to the priority e)B -.15 +(ve)-.25 G .846(ry time a job is processed.).15 F .846(Thus, each)5.846 F .942 (time a job is processed, its priority will be decreased by the indicated v)189 -546 R(alue.)-.25 E .296(In most en)189 558 R .296 +361.2 R(alue.)-.25 E .296(In most en)189 373.2 R .296 (vironments this should be positi)-.4 F -.15(ve)-.25 G 2.796(,s).15 G .296 -(ince hosts that are do)378.612 558 R .297(wn are all)-.25 F(too often do)189 -570 Q(wn for a long time.)-.25 E(Def)5 E(aults to 90000.)-.1 E 67(7S)117 586.2 -S .279(trip input to se)194.56 586.2 R -.15(ve)-.25 G 2.779(nb).15 G .278 -(its for compatibility with old systems.)275.276 586.2 R .278(This shouldn') -5.278 F 2.778(tb)-.18 G(e)499.56 586.2 Q(necessary)189 598.2 Q(.)-.65 E .779 +(ince hosts that are do)378.612 373.2 R .297(wn are all)-.25 F(too often do)189 +385.2 Q(wn for a long time.)-.25 E(Def)5 E(aults to 90000.)-.1 E 67(7S)117 +401.4 S .279(trip input to se)194.56 401.4 R -.15(ve)-.25 G 2.779(nb).15 G .278 +(its for compatibility with old systems.)275.276 401.4 R .278(This shouldn') +5.278 F 2.778(tb)-.18 G(e)499.56 401.4 Q(necessary)189 413.4 Q(.)-.65 E .779 (All options can be speci\214ed on the command line using the \255o \215ag, b) -117 614.4 R .78(ut most will cause)-.2 F F2(send-)3.28 E(mail)117 626.4 Q F1 +117 429.6 R .78(ut most will cause)-.2 F F2(send-)3.28 E(mail)117 441.6 Q F1 .325(to relinquish its setuid permissions.)2.825 F .325 (The options that will not cause this are b, d, e, E, i, L,)5.325 F .216 -(m, o, p, r)117 638.4 R 2.716(,s)-.4 G 2.716(,v)162.464 638.4 S 2.716(,C)172.03 -638.4 S 2.716(,a)183.916 638.4 S .216(nd 7.)193.572 638.4 R .217 +(m, o, p, r)117 453.6 R 2.716(,s)-.4 G 2.716(,v)162.464 453.6 S 2.716(,C)172.03 +453.6 S 2.716(,a)183.916 453.6 S .216(nd 7.)193.572 453.6 R .217 (Also, M \(de\214ne macro\) when de\214ning the r or s macros is also consid-) -5.216 F(ered \231safe\232.)117 650.4 Q F0 2.5(5.1.7. P)102 674.4 R 2.5<8a70>2.5 -G -.18(re)156.17 674.4 S(cedence de\214nitions).18 E F1 -1.11(Va)142 690.6 S +5.216 F(ered \231safe\232.)117 465.6 Q F0 2.5(5.1.7. P)102 489.6 R 2.5<8a70>2.5 +G -.18(re)156.17 489.6 S(cedence de\214nitions).18 E F1 -1.11(Va)142 505.8 S .305(lues for the \231Precedence:\232 \214eld may be de\214ned using the)1.11 F F0(P)2.805 E F1 .304(control line.)2.804 F .304(The syntax of)5.304 F -(this \214eld is:)117 702.6 Q EP -%%Page: 39 34 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-39)452.9 60 Q(P)157 96 Q/F1 10/Times-Italic@0 SF(name)A F0(=)A F1(num)A -/F2 10/Times-Roman@0 SF .285(When the)117 112.2 R F1(name)2.785 E F2 .285 +(this \214eld is:)117 517.8 Q F0(P)157 534 Q F2(name)A F0(=)A F2(num)A F1 .285 +(When the)117 550.2 R F2(name)2.785 E F1 .285 (is found in a \231Precedence:\232 \214eld, the message class is set to)2.785 F -F1(num)2.786 E F2 5.286(.H)C .286(igher num-)459.554 112.2 R .48 -(bers mean higher precedence.)117 124.2 R .479(Numbers less than zero ha)5.48 F +F2(num)2.786 E F1 5.286(.H)C .286(igher num-)459.554 550.2 R .48 +(bers mean higher precedence.)117 562.2 R .479(Numbers less than zero ha)5.48 F .779 -.15(ve t)-.2 H .479(he special property that if an error).15 F 1.11(occu\ rs during processing the body of the message will not be returned; this is e) -117 136.2 R 1.11(xpected to be)-.15 F .678(used for \231b)117 148.2 R .678 +117 574.2 R 1.11(xpected to be)-.15 F .678(used for \231b)117 586.2 R .678 (ulk\232 mail such as through mailing lists.)-.2 F .678(The def)5.678 F .678 (ault precedence is zero.)-.1 F -.15(Fo)5.678 G 3.178(re).15 G(xam-)483.45 -148.2 Q(ple, our list of precedences is:)117 160.2 Q(P\214rst-class=0)157 176.4 -Q(Pspecial-deli)157 188.4 Q -.15(ve)-.25 G(ry=100).15 E(Plist=\25530)157 200.4 -Q(Pb)157 212.4 Q(ulk=\25560)-.2 E(Pjunk=\255100)157 224.4 Q .799 -(People writing mailing list e)117 240.6 R .799 +586.2 Q(ple, our list of precedences is:)117 598.2 Q(P\214rst-class=0)157 614.4 +Q(Pspecial-deli)157 626.4 Q -.15(ve)-.25 G(ry=100).15 E(Plist=\25530)157 638.4 +Q(Pb)157 650.4 Q(ulk=\25560)-.2 E(Pjunk=\255100)157 662.4 Q .799 +(People writing mailing list e)117 678.6 R .799 (xploders are encouraged to use \231Precedence: list\232.)-.15 F .8(Older v)5.8 -F(ersions)-.15 E(of)117 252.6 Q F1(sendmail)3.76 E F2 1.259 +F(ersions)-.15 E(of)117 690.6 Q F2(sendmail)3.76 E F1 1.259 (\(which discarded all error returns for ne)3.76 F -.05(ga)-.15 G(ti).05 E 1.559 -.15(ve p)-.25 H 1.259(recedences\) didn').15 F 3.759(tr)-.18 G 1.259 -(ecognize this)450.251 252.6 R .254(name, gi)117 264.6 R .254(ving it a def) +(ecognize this)450.251 690.6 R .254(name, gi)117 702.6 R .254(ving it a def) -.25 F .254(ault precedence of zero.)-.1 F .254(This allo)5.254 F .255 -(ws list maintainers to see error returns on)-.25 F(both old and ne)117 276.6 Q -2.5(wv)-.25 G(ersions of)193.26 276.6 Q F1(sendmail)2.5 E F2(.)A F0 2.5 -(5.1.8. V)102 300.6 R 2.5<8a63>2.5 G(on\214guration v)156.16 300.6 Q(ersion le) --.1 E -.1(ve)-.15 G(l).1 E F2 2.11 -.8(To p)142 316.8 T(ro).8 E .51 -(vide compatibility with old con\214guration \214les, the)-.15 F F0(V)3.01 E F2 -.51(line has been added to de\214ne)3.01 F .172(some v)117 328.8 R .172 +(ws list maintainers to see error returns on)-.25 F(both old and ne)117 714.6 Q +2.5(wv)-.25 G(ersions of)193.26 714.6 Q F2(sendmail)2.5 E F1(.)A EP +%%Page: 39 34 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-39)452.9 60 Q 2.5(5.1.8. V)102 96 R 2.5<8a63>2.5 G(on\214guration v) +156.16 96 Q(ersion le)-.1 E -.1(ve)-.15 G(l).1 E/F1 10/Times-Roman@0 SF 2.11 +-.8(To p)142 112.2 T(ro).8 E .51 +(vide compatibility with old con\214guration \214les, the)-.15 F F0(V)3.01 E F1 +.51(line has been added to de\214ne)3.01 F .172(some v)117 124.2 R .172 (ery basic semantics of the con\214guration \214le.)-.15 F .173 (These are not intended to be long term sup-)5.172 F 1.84(ports; rather)117 -340.8 R 4.34(,t)-.4 G(he)176.66 340.8 Q 4.34(yd)-.15 G 1.84 -(escribe compatibility features which will probably be remo)200.29 340.8 R -.15 -(ve)-.15 G 4.34(di).15 G 4.34(nf)470.78 340.8 S(uture)483.45 340.8 Q(releases.) -117 352.8 Q F0(N.B.:)142 369 Q F2 1.032(these v)3.532 F(ersion)-.15 E F1(le) -3.532 E(vels)-.15 E F2(ha)3.532 E 1.332 -.15(ve n)-.2 H 1.032 -(othing to do with the v).15 F(ersion)-.15 E F1(number)3.532 E F2 1.032 -(on the \214les.)3.532 F -.15(Fo)6.032 G(r).15 E -.15(ex)117 381 S .384 +136.2 R 4.34(,t)-.4 G(he)176.66 136.2 Q 4.34(yd)-.15 G 1.84 +(escribe compatibility features which will probably be remo)200.29 136.2 R -.15 +(ve)-.15 G 4.34(di).15 G 4.34(nf)470.78 136.2 S(uture)483.45 136.2 Q(releases.) +117 148.2 Q F0(N.B.:)142 164.4 Q F1 1.032(these v)3.532 F(ersion)-.15 E/F2 10 +/Times-Italic@0 SF(le)3.532 E(vels)-.15 E F1(ha)3.532 E 1.332 -.15(ve n)-.2 H +1.032(othing to do with the v).15 F(ersion)-.15 E F2(number)3.532 E F1 1.032 +(on the \214les.)3.532 F -.15(Fo)6.032 G(r).15 E -.15(ex)117 176.4 S .384 (ample, as of this writing v).15 F .384 (ersion 8 con\214g \214les \(speci\214cally)-.15 F 2.884(,8)-.65 G .384 -(.6\) used v)373.76 381 R .384(ersion le)-.15 F -.15(ve)-.25 G 2.884(l5c).15 G -(on\214gu-)475.11 381 Q(rations.)117 393 Q .03 -(\231Old\232 con\214guration \214les are de\214ned as v)142 409.2 R .031 -(ersion le)-.15 F -.15(ve)-.25 G 2.531(lo).15 G 2.531(ne. V)359.434 409.2 R +(.6\) used v)373.76 176.4 R .384(ersion le)-.15 F -.15(ve)-.25 G 2.884(l5c).15 +G(on\214gu-)475.11 176.4 Q(rations.)117 188.4 Q .03 +(\231Old\232 con\214guration \214les are de\214ned as v)142 204.6 R .031 +(ersion le)-.15 F -.15(ve)-.25 G 2.531(lo).15 G 2.531(ne. V)359.434 204.6 R .031(ersion le)-1.11 F -.15(ve)-.25 G 2.531(lt).15 G .231 -.1(wo \214)433.837 -409.2 T .031(les mak).1 F 2.531(et)-.1 G(he)494.56 409.2 Q(follo)117 421.2 Q -(wing changes:)-.25 E 12.5(\(1\) Host)122 437.4 R .757(name canoni\214cation \ +204.6 T .031(les mak).1 F 2.531(et)-.1 G(he)494.56 204.6 Q(follo)117 216.6 Q +(wing changes:)-.25 E 12.5(\(1\) Host)122 232.8 R .757(name canoni\214cation \ \($[ ... $]\) appends a dot if the name is recognized; this gi)3.257 F -.15(ve) --.25 G(s).15 E .902(the con\214g \214le a w)148.66 449.4 R .903 +-.25 G(s).15 E .902(the con\214g \214le a w)148.66 244.8 R .903 (ay of \214nding out if an)-.1 F .903(ything matched.)-.15 F(\(Actually)5.903 E -3.403(,t)-.65 G .903(his just initializes)432.184 449.4 R .424 -(the \231host\232 map with the \231\255a.)148.66 461.4 R 5.424<9a8d>-.7 G .424 -(ag \212 you can reset it to an)280.016 461.4 R .424 -(ything you prefer by declar)-.15 F(-)-.2 E(ing the map e)148.66 473.4 Q -(xplicitly)-.15 E(.\))-.65 E 12.5(\(2\) Def)122 489.6 R .435(ault host name e) --.1 F .435(xtension is consistent throughout processing; v)-.15 F .436 -(ersion le)-.15 F -.15(ve)-.25 G 2.936(lo).15 G .436(ne con-)473.854 489.6 R -.829(\214gurations turned of)148.66 501.6 R 3.329(fd)-.25 G .829(omain e) -243.387 501.6 R .828(xtension \(that is, adding the local domain name\) during) --.15 F .596(certain points in processing.)148.66 513.6 R -1.11(Ve)5.596 G .597 -(rsion le)1.11 F -.15(ve)-.25 G 3.097(lt).15 G .797 -.1(wo c)326.818 513.6 T -.597(on\214gurations are e).1 F .597(xpected to include a)-.15 F -(trailing dot to indicate that the name is already canonical.)148.66 525.6 Q -12.5(\(3\) Local)122 541.8 R .176 +3.403(,t)-.65 G .903(his just initializes)432.184 244.8 R .424 +(the \231host\232 map with the \231\255a.)148.66 256.8 R 5.424<9a8d>-.7 G .424 +(ag \212 you can reset it to an)280.016 256.8 R .424 +(ything you prefer by declar)-.15 F(-)-.2 E(ing the map e)148.66 268.8 Q +(xplicitly)-.15 E(.\))-.65 E 12.5(\(2\) Def)122 285 R .435(ault host name e)-.1 +F .435(xtension is consistent throughout processing; v)-.15 F .436(ersion le) +-.15 F -.15(ve)-.25 G 2.936(lo).15 G .436(ne con-)473.854 285 R .829 +(\214gurations turned of)148.66 297 R 3.329(fd)-.25 G .829(omain e)243.387 297 +R .828(xtension \(that is, adding the local domain name\) during)-.15 F .596 +(certain points in processing.)148.66 309 R -1.11(Ve)5.596 G .597(rsion le)1.11 +F -.15(ve)-.25 G 3.097(lt).15 G .797 -.1(wo c)326.818 309 T .597 +(on\214gurations are e).1 F .597(xpected to include a)-.15 F +(trailing dot to indicate that the name is already canonical.)148.66 321 Q 12.5 +(\(3\) Local)122 337.2 R .176 (names that are not aliases are passed through a ne)2.676 F 2.675(wd)-.25 G -.175(istinguished ruleset \214v)388.895 541.8 R .175(e; this)-.15 F .796 -(can be used to append a local relay)148.66 553.8 R 5.797(.T)-.65 G .797 -(his beha)307.671 553.8 R .797(viour can be pre)-.2 F -.15(ve)-.25 G .797 -(nted by resolving the).15 F .621(local name with an initial `@'.)148.66 565.8 +.175(istinguished ruleset \214v)388.895 337.2 R .175(e; this)-.15 F .796 +(can be used to append a local relay)148.66 349.2 R 5.797(.T)-.65 G .797 +(his beha)307.671 349.2 R .797(viour can be pre)-.2 F -.15(ve)-.25 G .797 +(nted by resolving the).15 F .621(local name with an initial `@'.)148.66 361.2 R .621(That is, something that resolv)5.621 F .62(es to a local mailer and a) -.15 F .843(user name of \231vikki\232 will be passed through ruleset \214v) -148.66 577.8 R .843(e, b)-.15 F .844(ut a user name of \231@vikki\232)-.2 F -.328(will ha)148.66 589.8 R .628 -.15(ve t)-.2 H .328 +148.66 373.2 R .843(e, b)-.15 F .844(ut a user name of \231@vikki\232)-.2 F +.328(will ha)148.66 385.2 R .628 -.15(ve t)-.2 H .328 (he `@' stripped, will not be passed through ruleset \214v).15 F .328(e, b)-.15 F .328(ut will otherwise be)-.2 F 1.508(treated the same as the prior e)148.66 -601.8 R 4.009(xample. The)-.15 F -.15(ex)4.009 G 1.509 +397.2 R 4.009(xample. The)-.15 F -.15(ex)4.009 G 1.509 (pectation is that this might be used to).15 F .908(implement a polic)148.66 -613.8 R 3.408(yw)-.15 G .907(here mail sent to \231vikki\232 w)238.174 613.8 R +409.2 R 3.408(yw)-.15 G .907(here mail sent to \231vikki\232 w)238.174 409.2 R .907(as handled by a central hub, b)-.1 F .907(ut mail)-.2 F -(sent to \231vikki@localhost\232 w)148.66 625.8 Q(as deli)-.1 E -.15(ve)-.25 G -(red directly).15 E(.)-.65 E -1.11(Ve)142 642 S .228(rsion le)1.11 F -.15(ve) --.25 G 2.728(lt).15 G .228(hree \214les allo)199.826 642 R 2.728(w#i)-.25 G -.229(nitiated comments on all lines.)274.368 642 R .229 -(Exceptions are backslash)5.229 F(escaped # marks and the $# syntax.)117 654 Q --1.11(Ve)142 670.2 S 1.594(rsion le)1.11 F -.15(ve)-.25 G 4.094(lf).15 G 1.594 -(our con\214gurations are completely equi)203.108 670.2 R -.25(va)-.25 G 1.594 -(lent to le).25 F -.15(ve)-.25 G 4.093(lt).15 G 1.593(hree for historical) -429.724 670.2 R(reasons.)117 682.2 Q -1.11(Ve)142 698.4 S .234(rsion le)1.11 F --.15(ve)-.25 G 2.734<6c8c>.15 G .534 -.15(ve c)202.618 698.4 T .234 +(sent to \231vikki@localhost\232 w)148.66 421.2 Q(as deli)-.1 E -.15(ve)-.25 G +(red directly).15 E(.)-.65 E -1.11(Ve)142 437.4 S .228(rsion le)1.11 F -.15(ve) +-.25 G 2.728(lt).15 G .228(hree \214les allo)199.826 437.4 R 2.728(w#i)-.25 G +.229(nitiated comments on all lines.)274.368 437.4 R .229 +(Exceptions are backslash)5.229 F(escaped # marks and the $# syntax.)117 449.4 +Q -1.11(Ve)142 465.6 S 1.594(rsion le)1.11 F -.15(ve)-.25 G 4.094(lf).15 G +1.594(our con\214gurations are completely equi)203.108 465.6 R -.25(va)-.25 G +1.594(lent to le).25 F -.15(ve)-.25 G 4.093(lt).15 G 1.593(hree for historical) +429.724 465.6 R(reasons.)117 477.6 Q -1.11(Ve)142 493.8 S .234(rsion le)1.11 F +-.15(ve)-.25 G 2.734<6c8c>.15 G .534 -.15(ve c)202.618 493.8 T .234 (on\214guration \214les change the def).15 F .234(ault de\214nition of)-.1 F F0 -($w)2.734 E F2 .234(to be just the \214rst)2.734 F(component of the hostname.) -117 710.4 Q EP +($w)2.734 E F1 .234(to be just the \214rst)2.734 F(component of the hostname.) +117 505.8 Q(The)142 522 Q F0(V)2.64 E F1 .14(line may ha)2.64 F .44 -.15(ve a) +-.2 H 2.64(no).15 G(ptional)245.8 522 Q F0(/)2.64 E F2(vendor)A F1 .14 +(to indicate that this con\214guration \214le uses modi-)2.64 F +(\214cations speci\214c to a particular v)117 536 Q(endor)-.15 E/F3 7 +/Times-Roman@0 SF(14)272.1 532 Q F1(.)279.1 536 Q F0 2.5(5.1.9. K)102 560 R 2.5 +<8a6b>2.5 G(ey \214le declaration)157.74 560 Q F1 +(Special maps can be de\214ned using the line:)142 576.2 Q +(Kmapname mapclass ar)157 592.4 Q(guments)-.18 E(The)117 608.6 Q F2(mapname) +3.444 E F1 .944(is the handle by which this map is referenced in the re)3.444 F +.943(writing rules.)-.25 F(The)5.943 E F2(map-)3.443 E(class)117 620.6 Q F1 .3 +(is the name of a type of map; these are compiled in to)2.8 F F2(sendmail)2.801 +E F1 5.301(.T)C(he)410.637 620.6 Q F2(ar)2.801 E(guments)-.37 E F1 .301 +(are inter)2.801 F(-)-.2 E .57(preted depending on the class; typically)117 +632.6 R 3.069(,t)-.65 G .569(here w)286.139 632.6 R .569(ould be a single ar) +-.1 F .569(gument naming the \214le con-)-.18 F(taining the map.)117 644.6 Q +.32 LW 76 669.2 72 669.2 DL 80 669.2 76 669.2 DL 84 669.2 80 669.2 DL 88 669.2 +84 669.2 DL 92 669.2 88 669.2 DL 96 669.2 92 669.2 DL 100 669.2 96 669.2 DL 104 +669.2 100 669.2 DL 108 669.2 104 669.2 DL 112 669.2 108 669.2 DL 116 669.2 112 +669.2 DL 120 669.2 116 669.2 DL 124 669.2 120 669.2 DL 128 669.2 124 669.2 DL +132 669.2 128 669.2 DL 136 669.2 132 669.2 DL 140 669.2 136 669.2 DL 144 669.2 +140 669.2 DL 148 669.2 144 669.2 DL 152 669.2 148 669.2 DL 156 669.2 152 669.2 +DL 160 669.2 156 669.2 DL 164 669.2 160 669.2 DL 168 669.2 164 669.2 DL 172 +669.2 168 669.2 DL 176 669.2 172 669.2 DL 180 669.2 176 669.2 DL 184 669.2 180 +669.2 DL 188 669.2 184 669.2 DL 192 669.2 188 669.2 DL 196 669.2 192 669.2 DL +200 669.2 196 669.2 DL 204 669.2 200 669.2 DL 208 669.2 204 669.2 DL 212 669.2 +208 669.2 DL 216 669.2 212 669.2 DL/F4 5/Times-Roman@0 SF(14)93.6 679.6 Q/F5 8 +/Times-Roman@0 SF .214(And of course, v)3.2 J .214 +(endors are encouraged to add themselv)-.12 F .214 +(es to the list of recognized v)-.12 F .214(endors by editing the routine)-.12 +F/F6 8/Times-Italic@0 SF(setvendor)2.214 E F5(in)2.214 E F6(conf)72 692.4 Q(.c) +-.12 E F5(.)A EP %%Page: 40 35 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-40 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E 2.5(5.1.9. K)102 96 R 2.5<8a6b>2.5 G -(ey \214le declaration)157.74 96 Q/F1 10/Times-Roman@0 SF -(Special maps can be de\214ned using the line:)142 112.2 Q -(Kmapname mapclass ar)157 128.4 Q(guments)-.18 E(The)117 144.6 Q/F2 10 -/Times-Italic@0 SF(mapname)3.444 E F1 .944 -(is the handle by which this map is referenced in the re)3.444 F .943 -(writing rules.)-.25 F(The)5.943 E F2(map-)3.443 E(class)117 156.6 Q F1 .3 -(is the name of a type of map; these are compiled in to)2.8 F F2(sendmail)2.801 -E F1 5.301(.T)C(he)410.637 156.6 Q F2(ar)2.801 E(guments)-.37 E F1 .301 -(are inter)2.801 F(-)-.2 E .57(preted depending on the class; typically)117 -168.6 R 3.069(,t)-.65 G .569(here w)286.139 168.6 R .569(ould be a single ar) --.1 F .569(gument naming the \214le con-)-.18 F(taining the map.)117 180.6 Q -(Maps are referenced using the syntax:)142 196.8 Q($\()157 213 Q F2(map k)2.5 E --.3(ey)-.1 G F1($@)2.8 E F2(ar)2.5 E(guments)-.37 E F1($:)2.5 E F2(default)2.5 -E F1($\))2.5 E .796(where either or both of the)117 229.2 R F2(ar)3.297 E -(guments)-.37 E F1(or)3.297 E F2(default)3.297 E F1 .797 -(portion may be omitted.)3.297 F(The)5.797 E F2(ar)3.297 E(guments)-.37 E F1 -(may)3.297 E .205(appear more than once.)117 241.2 R .205(The indicated)5.205 F -F2 -.1(ke)2.705 G(y)-.2 E F1(and)2.705 E F2(ar)2.705 E(guments)-.37 E F1 .205 -(are passed to the appropriate mapping)2.705 F 2.503(function. If)117 253.2 R -.003(it returns a v)2.503 F .003(alue, it replaces the input.)-.25 F .003 -(If it does not return a v)5.003 F .003(alue and the)-.25 F F2(default)2.503 E -F1(is)2.503 E(speci\214ed, the)117 265.2 Q F2(default)2.5 E F1 -(replaces the input.)2.5 E(Otherwise, the input is unchanged.)5 E .16 -(During replacement of either a map v)142 281.4 R .16(alue or def)-.25 F .159 -(ault the string \231%)-.1 F F2(n)A F1 2.659<9a28>C(where)421.825 281.4 Q F2(n) +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF +(Maps are referenced using the syntax:)142 96 Q($\()157 112.2 Q/F2 10 +/Times-Italic@0 SF(map k)2.5 E -.3(ey)-.1 G F1($@)2.8 E F2(ar)2.5 E(guments) +-.37 E F1($:)2.5 E F2(default)2.5 E F1($\))2.5 E .796 +(where either or both of the)117 128.4 R F2(ar)3.297 E(guments)-.37 E F1(or) +3.297 E F2(default)3.297 E F1 .797(portion may be omitted.)3.297 F(The)5.797 E +F2(ar)3.297 E(guments)-.37 E F1(may)3.297 E .205(appear more than once.)117 +140.4 R .205(The indicated)5.205 F F2 -.1(ke)2.705 G(y)-.2 E F1(and)2.705 E F2 +(ar)2.705 E(guments)-.37 E F1 .205(are passed to the appropriate mapping)2.705 +F 2.503(function. If)117 152.4 R .003(it returns a v)2.503 F .003 +(alue, it replaces the input.)-.25 F .003(If it does not return a v)5.003 F +.003(alue and the)-.25 F F2(default)2.503 E F1(is)2.503 E(speci\214ed, the)117 +164.4 Q F2(default)2.5 E F1(replaces the input.)2.5 E +(Otherwise, the input is unchanged.)5 E .16 +(During replacement of either a map v)142 180.6 R .16(alue or def)-.25 F .159 +(ault the string \231%)-.1 F F2(n)A F1 2.659<9a28>C(where)421.825 180.6 Q F2(n) 2.659 E F1 .159(is a digit\) is)2.659 F .203(replaced by the corresponding)117 -293.4 R F2(ar)2.704 E(gument)-.37 E F1 5.204(.A)C -.18(rg)293.998 293.4 S .204 +192.6 R F2(ar)2.704 E(gument)-.37 E F1 5.204(.A)C -.18(rg)293.998 192.6 S .204 (ument zero is al).18 F -.1(wa)-.1 G .204(ys the database k).1 F -.15(ey)-.1 G -5.204(.F)-.5 G .204(or e)468.126 293.4 R(xam-)-.15 E(ple, the rule)117 305.4 Q -(R$- ! $+)157 321.6 Q($: $\(uucp $1 $@ $2 $: %1 @ %0 . UUCP $\))265 321.6 Q +5.204(.F)-.5 G .204(or e)468.126 192.6 R(xam-)-.15 E(ple, the rule)117 204.6 Q +(R$- ! $+)157 220.8 Q($: $\(uucp $1 $@ $2 $: %1 @ %0 . UUCP $\))265 220.8 Q .436(Looks up the UUCP name in a \(user de\214ned\) UUCP map; if not found it \ -turns it into \231.UUCP\232)117 337.8 R 2.5(form. The)117 349.8 R -(database might contain records lik)2.5 E(e:)-.1 E(decv)157 366 Q 77.43 -(ax %1@%0.DEC.COM)-.25 F 72.19(research %1@%0.A)157 378 R(TT)-1.11 E(.COM)-.74 -E 2.064(The b)142 398.4 R 2.064(uilt in map with both name and class \231host\ -\232 is the host name canonicalization)-.2 F 2.5(lookup. Thus,)117 410.4 R -(the syntax:)2.5 E($\(host)157 426.6 Q F2(hostname)2.5 E F1($\))A(is equi)117 -442.8 Q -.25(va)-.25 G(lent to:).25 E($[)157 459 Q F2(hostname)A F1($])A 1.783 +turns it into \231.UUCP\232)117 237 R 2.5(form. The)117 249 R +(database might contain records lik)2.5 E(e:)-.1 E(decv)157 265.2 Q 77.43 +(ax %1@%0.DEC.COM)-.25 F 72.19(research %1@%0.A)157 277.2 R(TT)-1.11 E(.COM) +-.74 E 2.064(The b)142 297.6 R 2.064(uilt in map with both name and class \231\ +host\232 is the host name canonicalization)-.2 F 2.5(lookup. Thus,)117 309.6 R +(the syntax:)2.5 E($\(host)157 325.8 Q F2(hostname)2.5 E F1($\))A(is equi)117 +342 Q -.25(va)-.25 G(lent to:).25 E($[)157 358.2 Q F2(hostname)A F1($])A 1.783 (There are four prede\214ned database lookup classes: \231dbm\232, \231btree\ -\232, \231hash\232, and \231nis\232.)142 479.4 R .568 -(The \214rst requires that)117 491.4 R F2(sendmail)3.068 E F1 .569 +\232, \231hash\232, and \231nis\232.)142 378.6 R .568 +(The \214rst requires that)117 390.6 R F2(sendmail)3.068 E F1 .569 (be compiled with the)3.068 F F0(ndbm)3.069 E F1 .569(library; the second tw) -3.069 F 3.069(or)-.1 G .569(equire the)463.721 491.4 R F0(db)117 503.4 Q F1 -(library)3.198 E 3.198(,a)-.65 G .698(nd the third requires that)167.466 503.4 +3.069 F 3.069(or)-.1 G .569(equire the)463.721 390.6 R F0(db)117 402.6 Q F1 +(library)3.198 E 3.198(,a)-.65 G .698(nd the third requires that)167.466 402.6 R F2(sendmail)3.198 E F1 .698(be compiled with NIS support.)3.198 F .698 -(All four accept)5.698 F .311(as ar)117 515.4 R .311(guments the some optional\ +(All four accept)5.698 F .344(as ar)117 414.6 R .344(guments the same optional\ \215ags and a \214lename \(or a mapname for NIS; the \214lename is the)-.18 F -.105(root of the database path, so that \231.db\232 or some other e)117 527.4 R +.105(root of the database path, so that \231.db\232 or some other e)117 426.6 R .105(xtension appropriate for the database type)-.15 F -(will be added to get the actual database name\).)117 539.4 Q(Kno)5 E -(wn \215ags are:)-.25 E 58.86(\255o Indicates)117 555.6 R .21 +(will be added to get the actual database name\).)117 438.6 Q(Kno)5 E +(wn \215ags are:)-.25 E 58.86(\255o Indicates)117 454.8 R .21 (that this map is optional \212 that is, if it cannot be opened, no error is) -2.71 F(produced, and)189 567.6 Q F2(sendmail)2.5 E F1(will beha)2.5 E .3 -.15 -(ve a)-.2 H 2.5(si).15 G 2.5(ft)348.9 567.6 S(he map e)357.51 567.6 Q(xisted b) --.15 E(ut w)-.2 E(as empty)-.1 E(.)-.65 E 56.64(\255N Normally)117 583.8 R .515 +2.71 F(produced, and)189 466.8 Q F2(sendmail)2.5 E F1(will beha)2.5 E .3 -.15 +(ve a)-.2 H 2.5(si).15 G 2.5(ft)348.9 466.8 S(he map e)357.51 466.8 Q(xisted b) +-.15 E(ut w)-.2 E(as empty)-.1 E(.)-.65 E 56.64(\255N Normally)117 483 R .515 (when maps are written, the trailing null byte is not included as part)3.016 F -.799(of the k)189 595.8 R -.15(ey)-.1 G 5.799(.I)-.5 G 3.299(ft)241.317 595.8 S -.799(his \215ag is indicated it will be included.)250.726 595.8 R .8 +.799(of the k)189 495 R -.15(ey)-.1 G 5.799(.I)-.5 G 3.299(ft)241.317 495 S +.799(his \215ag is indicated it will be included.)250.726 495 R .8 (During lookups, only)5.8 F(the null-byte-included form will be searched.)189 -607.8 Q(See also)5 E F0(\255O.)2.5 E F1 56.64(\255O If)117 624 R(neither)4.389 +507 Q(See also)5 E F0(\255O.)2.5 E F1 56.64(\255O If)117 523.2 R(neither)4.389 E F0<ad4e>4.389 E F1(or)4.389 E F0<ad4f>4.389 E F1 1.888(are speci\214ed,)4.388 F F2(sendmail)4.388 E F1 1.888(uses an adapti)4.388 F 2.188 -.15(ve a)-.25 H 1.888(lgorithm to).15 F 1.025 -(decide whether or not to look for null bytes on the end of k)189 636 R -.15 +(decide whether or not to look for null bytes on the end of k)189 535.2 R -.15 (ey)-.1 G 3.525(s. It).15 F 1.025(starts by)3.525 F .922 -(trying both; if it \214nds an)189 648 R 3.422(yk)-.15 G 1.222 -.15(ey w) -304.292 648 T .922(ith a null byte it ne).15 F -.15(ve)-.25 G 3.422(rt).15 G -.922(ries ag)422.686 648 R .921(ain without a)-.05 F .123(null byte and vice v) -189 660 R 2.623(ersa. If)-.15 F .123(this \215ag is speci\214ed, it ne)2.623 F --.15(ve)-.25 G 2.623(rt).15 G .123(ries with a null byte;)421.286 660 R .749 -(this can speed matches b)189 672 R .749(ut is ne)-.2 F -.15(ve)-.25 G 3.249 -(rn).15 G(ecessary)341.673 672 Q 5.749(.I)-.65 G 3.248(fb)386.472 672 S(oth) -398.05 672 Q F0<ad4e>3.248 E F1(and)3.248 E F0<ad4f>3.248 E F1 .748(are speci-) -3.248 F(\214ed,)189 684 Q F2(sendmail)4.348 E F1 1.848(will ne)4.348 F -.15(ve) --.25 G 4.348(rt).15 G 1.848(ry an)300.152 684 R 4.348(ym)-.15 G 1.849 -(atches at all \212 that is, e)339.248 684 R -.15(ve)-.25 G 1.849(rything will) -.15 F(appear to f)189 696 Q(ail.)-.1 E<ad61>117 712.2 Q F2(x)A F1 .107 -(Append the string)189 712.2 R F2(x)2.607 E F1 .107(on successful matches.) -2.607 F -.15(Fo)5.107 G 2.607(re).15 G .106(xample, the def)387.856 712.2 R -(ault)-.1 E F2(host)2.606 E F1(map)2.606 E -(appends a dot on successful matches.)189 724.2 Q EP -%%Page: 41 36 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-41)452.9 60 Q/F1 10/Times-Roman@0 SF 60.53(\255f Do)117 96 R +(trying both; if it \214nds an)189 547.2 R 3.422(yk)-.15 G 1.222 -.15(ey w) +304.292 547.2 T .922(ith a null byte it ne).15 F -.15(ve)-.25 G 3.422(rt).15 G +.922(ries ag)422.686 547.2 R .921(ain without a)-.05 F .123 +(null byte and vice v)189 559.2 R 2.623(ersa. If)-.15 F .123 +(this \215ag is speci\214ed, it ne)2.623 F -.15(ve)-.25 G 2.623(rt).15 G .123 +(ries with a null byte;)421.286 559.2 R .749(this can speed matches b)189 571.2 +R .749(ut is ne)-.2 F -.15(ve)-.25 G 3.249(rn).15 G(ecessary)341.673 571.2 Q +5.749(.I)-.65 G 3.248(fb)386.472 571.2 S(oth)398.05 571.2 Q F0<ad4e>3.248 E F1 +(and)3.248 E F0<ad4f>3.248 E F1 .748(are speci-)3.248 F(\214ed,)189 583.2 Q F2 +(sendmail)4.348 E F1 1.848(will ne)4.348 F -.15(ve)-.25 G 4.348(rt).15 G 1.848 +(ry an)300.152 583.2 R 4.348(ym)-.15 G 1.849(atches at all \212 that is, e) +339.248 583.2 R -.15(ve)-.25 G 1.849(rything will).15 F(appear to f)189 595.2 Q +(ail.)-.1 E<ad61>117 611.4 Q F2(x)A F1 .107(Append the string)189 611.4 R F2(x) +2.607 E F1 .107(on successful matches.)2.607 F -.15(Fo)5.107 G 2.607(re).15 G +.106(xample, the def)387.856 611.4 R(ault)-.1 E F2(host)2.606 E F1(map)2.606 E +(appends a dot on successful matches.)189 623.4 Q 60.53(\255f Do)117 639.6 R (not fold upper to lo)2.5 E(wer case before looking up the k)-.25 E -.15(ey)-.1 -G(.)-.5 E 56.08(\255m Match)117 112.2 R .085(only \(without replacing the v) +G(.)-.5 E 56.08(\255m Match)117 655.8 R .085(only \(without replacing the v) 2.585 F 2.585(alue\). If)-.25 F .085(you only care about the e)2.585 F -(xistence)-.15 E 2.619(of a k)189 124.2 R 2.919 -.15(ey a)-.1 H 2.619 +(xistence)-.15 E 2.619(of a k)189 667.8 R 2.919 -.15(ey a)-.1 H 2.619 (nd not the v).15 F 2.618(alue \(as you might when searching the NIS map)-.25 F -.447(\231hosts.byname\232 for e)189 136.2 R .447(xample\), this \215ag pre)-.15 -F -.15(ve)-.25 G .447(nts the map from substituting the).15 F -.25(va)189 148.2 +.447(\231hosts.byname\232 for e)189 679.8 R .447(xample\), this \215ag pre)-.15 +F -.15(ve)-.25 G .447(nts the map from substituting the).15 F -.25(va)189 691.8 S 4.936(lue. Ho).25 F(we)-.25 E -.15(ve)-.25 G 3.236 -.4(r, T).15 H 2.436 (he \255a ar).4 F 2.436(gument is still appended on a match, and the)-.18 F -(def)189 160.2 Q(ault is still tak)-.1 E(en if the match f)-.1 E(ails.)-.1 E -(The)142 176.4 Q/F2 10/Times-Italic@0 SF(dbm)3.874 E F1 1.374 +(def)189 703.8 Q(ault is still tak)-.1 E(en if the match f)-.1 E(ails.)-.1 E EP +%%Page: 41 36 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q +(SMM:08-41)452.9 60 Q/F1 10/Times-Roman@0 SF(The)142 96 Q/F2 10/Times-Italic@0 +SF(dbm)3.874 E F1 1.374 (map appends the strings \231.pag\232 and \231.dir\232 to the gi)3.874 F -.15 -(ve)-.25 G 3.874<6e8c>.15 G 1.374(lename; the tw)420.268 176.4 R(o)-.1 E F2(db) -3.874 E F1(-)A(based maps append \231.db\232.)117 188.4 Q -.15(Fo)5 G 2.5(re) -.15 G(xample, the map speci\214cation)246.67 188.4 Q -.15(Ku)157 204.6 S +(ve)-.25 G 3.874<6e8c>.15 G 1.374(lename; the tw)420.268 96 R(o)-.1 E F2(db) +3.874 E F1(-)A(based maps append \231.db\232.)117 108 Q -.15(Fo)5 G 2.5(re).15 +G(xample, the map speci\214cation)246.67 108 Q -.15(Ku)157 124.2 S (ucp dbm \255o \255N /usr/lib/uucpmap).15 E .77 (speci\214es an optional map named \231uucp\232 of class \231dbm\232; it al)117 -220.8 R -.1(wa)-.1 G .77(ys has null bytes at the end of).1 F -2.15 -.25(ev e) -117 232.8 T(ry string, and the data is located in /usr/lib/uucpmap.{dir).25 E -(,pag}.)-.4 E .022(The program)142 249 R F2(mak)2.522 E(emap)-.1 E F1 .023 +140.4 R -.1(wa)-.1 G .77(ys has null bytes at the end of).1 F -2.15 -.25(ev e) +117 152.4 T(ry string, and the data is located in /usr/lib/uucpmap.{dir).25 E +(,pag}.)-.4 E .022(The program)142 168.6 R F2(mak)2.522 E(emap)-.1 E F1 .023 (\(8\) can be used to b)B .023(uild an)-.2 F 2.523(yo)-.15 G 2.523(ft)353.095 -249 S .023(he three database-oriented maps.)361.728 249 R(It)5.023 E(tak)117 -261 Q(es the follo)-.1 E(wing \215ags:)-.25 E 60.53(\255f F)117 277.2 R -(old upper to lo)-.15 E(wer case in the map.)-.25 E 56.64(\255N Include)117 -293.4 R(null bytes in k)2.5 E -.15(ey)-.1 G(s.).15 E 58.86(\255o Append)117 -309.6 R(to an e)2.5 E(xisting \(old\) \214le.)-.15 E 60.53(\255r Allo)117 325.8 -R 3.479(wr)-.25 G .979(eplacement of e)220.559 325.8 R .979(xisting k)-.15 F --.15(ey)-.1 G .979(s; normally).15 F 3.479(,r)-.65 G .979(e-inserting an e) -385.494 325.8 R .979(xisting k)-.15 F 1.279 -.15(ey i)-.1 H(s).15 E(an error) -189 337.8 Q(.)-.55 E 58.86(\255v Print)117 354 R(what is happening.)2.5 E(The) -117 370.2 Q F2(sendmail)2.772 E F1 .272(daemon does not ha)2.772 F .572 -.15 -(ve t)-.2 H 2.772(ob).15 G 2.772(er)282.144 370.2 S .272 -(estarted to read the ne)292.686 370.2 R 2.772(wm)-.25 G .273 -(aps as long as you change)399.046 370.2 R .042 -(them in place; \214le locking is used so that the maps w)117 384.2 R(on')-.1 E -2.542(tb)-.18 G 2.542(er)352.218 384.2 S .042(ead while the)362.53 384.2 R -2.542(ya)-.15 G .042(re being updated.)427.766 384.2 R/F3 7/Times-Roman@0 SF -(14)497 380.2 Q F1(There are also tw)142 400.4 Q 2.5(ob)-.1 G -(uiltin maps that are, strictly speaking, not database lookups.)223.34 400.4 Q -1.563(The \231host\232 map does host domain canoni\214cation; gi)142 416.6 R --.15(ve)-.25 G 4.063(nah).15 G 1.563(ost name it calls the name)392.587 416.6 R -(serv)117 428.6 Q(er to \214nd the canonical name for that host.)-.15 E .106 -(The \231dequote\232 map strips double quotes \("\) from a name.)142 444.8 R +168.6 S .023(he three database-oriented maps.)361.728 168.6 R(It)5.023 E(tak) +117 180.6 Q(es the follo)-.1 E(wing \215ags:)-.25 E 60.53(\255f F)117 196.8 R +(old upper to lo)-.15 E(wer case in the map.)-.25 E 56.64(\255N Include)117 213 +R(null bytes in k)2.5 E -.15(ey)-.1 G(s.).15 E 58.86(\255o Append)117 229.2 R +(to an e)2.5 E(xisting \(old\) \214le.)-.15 E 60.53(\255r Allo)117 245.4 R +3.479(wr)-.25 G .979(eplacement of e)220.559 245.4 R .979(xisting k)-.15 F -.15 +(ey)-.1 G .979(s; normally).15 F 3.479(,r)-.65 G .979(e-inserting an e)385.494 +245.4 R .979(xisting k)-.15 F 1.279 -.15(ey i)-.1 H(s).15 E(an error)189 257.4 +Q(.)-.55 E 58.86(\255v Print)117 273.6 R(what is happening.)2.5 E(The)117 289.8 +Q F2(sendmail)2.772 E F1 .272(daemon does not ha)2.772 F .572 -.15(ve t)-.2 H +2.772(ob).15 G 2.772(er)282.144 289.8 S .272(estarted to read the ne)292.686 +289.8 R 2.772(wm)-.25 G .273(aps as long as you change)399.046 289.8 R .042 +(them in place; \214le locking is used so that the maps w)117 303.8 R(on')-.1 E +2.542(tb)-.18 G 2.542(er)352.218 303.8 S .042(ead while the)362.53 303.8 R +2.542(ya)-.15 G .042(re being updated.)427.766 303.8 R/F3 7/Times-Roman@0 SF +(15)497 299.8 Q F1(There are also tw)142 320 Q 2.5(ob)-.1 G +(uiltin maps that are, strictly speaking, not database lookups.)223.34 320 Q +1.563(The \231host\232 map does host domain canoni\214cation; gi)142 336.2 R +-.15(ve)-.25 G 4.063(nah).15 G 1.563(ost name it calls the name)392.587 336.2 R +(serv)117 348.2 Q(er to \214nd the canonical name for that host.)-.15 E .106 +(The \231dequote\232 map strips double quotes \("\) from a name.)142 364.4 R .106(It does not strip backslashes.)5.106 F(It)5.106 E 1.838 -(will not strip quotes if the resulting string w)117 456.8 R 1.838 -(ould contain unscannable syntax \(that is, basic)-.1 F .6(errors lik)117 468.8 -R 3.1(eu)-.1 G .6(nbalanced angle brack)166.42 468.8 R .601 +(will not strip quotes if the resulting string w)117 376.4 R 1.838 +(ould contain unscannable syntax \(that is, basic)-.1 F .6(errors lik)117 388.4 +R 3.1(eu)-.1 G .6(nbalanced angle brack)166.42 388.4 R .601 (ets; more sophisticated errors such as unkno)-.1 F .601(wn hosts are not)-.25 -F(check)117 480.8 Q 3.399(ed\). The)-.1 F .899 +F(check)117 400.4 Q 3.399(ed\). The)-.1 F .899 (intent is for use when trying to accept mail from systems such as DECnet that) -3.399 F(routinely quote odd syntax such as)117 492.8 Q("49ers::ubell")157 509 Q -2.5(At)117 525.2 S(ypical usage is probably something lik)129.5 525.2 Q(e:)-.1 -E(Kdequote dequote)157 541.4 Q(...)157 565.4 Q 88.19(R$\255 $:)157 589.4 R -($\(dequote $1 $\))2.5 E(R$\255 $+)157 601.4 Q($: $>3 $1 $2)265 601.4 Q -(Care must be tak)117 617.6 Q(en to pre)-.1 E -.15(ve)-.25 G(nt une).15 E +3.399 F(routinely quote odd syntax such as)117 412.4 Q("49ers::ubell")157 428.6 +Q 2.5(At)117 444.8 S(ypical usage is probably something lik)129.5 444.8 Q(e:) +-.1 E(Kdequote dequote)157 461 Q(...)157 485 Q 88.19(R$\255 $:)157 509 R +($\(dequote $1 $\))2.5 E(R$\255 $+)157 521 Q($: $>3 $1 $2)265 521 Q +(Care must be tak)117 537.2 Q(en to pre)-.1 E -.15(ve)-.25 G(nt une).15 E (xpected results; for e)-.15 E(xample,)-.15 E("|someprogram < input > output") -157 633.8 Q .083(will ha)117 650 R .383 -.15(ve q)-.2 H .083(uotes stripped, b) -.15 F .083(ut the result is probably not what you had in mind.)-.2 F -.15(Fo) -5.084 G .084(rtunately these).15 F(cases are rare.)117 662 Q .32 LW 76 671.6 72 -671.6 DL 80 671.6 76 671.6 DL 84 671.6 80 671.6 DL 88 671.6 84 671.6 DL 92 -671.6 88 671.6 DL 96 671.6 92 671.6 DL 100 671.6 96 671.6 DL 104 671.6 100 -671.6 DL 108 671.6 104 671.6 DL 112 671.6 108 671.6 DL 116 671.6 112 671.6 DL -120 671.6 116 671.6 DL 124 671.6 120 671.6 DL 128 671.6 124 671.6 DL 132 671.6 -128 671.6 DL 136 671.6 132 671.6 DL 140 671.6 136 671.6 DL 144 671.6 140 671.6 -DL 148 671.6 144 671.6 DL 152 671.6 148 671.6 DL 156 671.6 152 671.6 DL 160 -671.6 156 671.6 DL 164 671.6 160 671.6 DL 168 671.6 164 671.6 DL 172 671.6 168 -671.6 DL 176 671.6 172 671.6 DL 180 671.6 176 671.6 DL 184 671.6 180 671.6 DL -188 671.6 184 671.6 DL 192 671.6 188 671.6 DL 196 671.6 192 671.6 DL 200 671.6 -196 671.6 DL 204 671.6 200 671.6 DL 208 671.6 204 671.6 DL 212 671.6 208 671.6 -DL 216 671.6 212 671.6 DL/F4 5/Times-Roman@0 SF(14)93.6 682 Q/F5 8 +157 553.4 Q .083(will ha)117 569.6 R .383 -.15(ve q)-.2 H .083 +(uotes stripped, b).15 F .083 +(ut the result is probably not what you had in mind.)-.2 F -.15(Fo)5.084 G .084 +(rtunately these).15 F(cases are rare.)117 581.6 Q(Ne)142 597.8 Q 2.5(wc)-.25 G +(lasses can be added in the routine)167.57 597.8 Q F0(setupmaps)2.5 E F1 +(in \214le)2.5 E F0(conf)2.5 E(.c)-.15 E F1(.)A F0 2.5(5.2. Building)87 621.8 R +2.5(aC)2.5 G(on\214guration File Fr)160.91 621.8 Q(om Scratch)-.18 E F1 1.518 +(Building a con\214guration table from scratch is an e)127 638 R 1.518 +(xtremely dif)-.15 F 1.517(\214cult job)-.25 F 6.517(.F)-.4 G(ortunately) +441.336 638 Q 4.017(,i)-.65 G 4.017(ti)490.533 638 S(s)500.11 638 Q 1.855 +(almost ne)102 650 R -.15(ve)-.25 G 4.355(rn).15 G 1.855 +(ecessary to do so; nearly e)164.19 650 R -.15(ve)-.25 G 1.855 +(ry situation that may come up may be resolv).15 F 1.855(ed by)-.15 F 1.381 +(changing an e)102 662 R 1.381(xisting table.)-.15 F 1.381(In an)6.381 F 3.881 +(yc)-.15 G 1.38 +(ase, it is critical that you understand what it is that you are)254.406 662 R +.32 LW 76 671.6 72 671.6 DL 80 671.6 76 671.6 DL 84 671.6 80 671.6 DL 88 671.6 +84 671.6 DL 92 671.6 88 671.6 DL 96 671.6 92 671.6 DL 100 671.6 96 671.6 DL 104 +671.6 100 671.6 DL 108 671.6 104 671.6 DL 112 671.6 108 671.6 DL 116 671.6 112 +671.6 DL 120 671.6 116 671.6 DL 124 671.6 120 671.6 DL 128 671.6 124 671.6 DL +132 671.6 128 671.6 DL 136 671.6 132 671.6 DL 140 671.6 136 671.6 DL 144 671.6 +140 671.6 DL 148 671.6 144 671.6 DL 152 671.6 148 671.6 DL 156 671.6 152 671.6 +DL 160 671.6 156 671.6 DL 164 671.6 160 671.6 DL 168 671.6 164 671.6 DL 172 +671.6 168 671.6 DL 176 671.6 172 671.6 DL 180 671.6 176 671.6 DL 184 671.6 180 +671.6 DL 188 671.6 184 671.6 DL 192 671.6 188 671.6 DL 196 671.6 192 671.6 DL +200 671.6 196 671.6 DL 204 671.6 200 671.6 DL 208 671.6 204 671.6 DL 212 671.6 +208 671.6 DL 216 671.6 212 671.6 DL/F4 5/Times-Roman@0 SF(15)93.6 682 Q/F5 8 /Times-Roman@0 SF .128(That is, don')3.2 J 2.128(tc)-.144 G .128(reate ne) 147.28 685.2 R 2.128(wm)-.2 G .128(aps and then use)186.432 685.2 R/F6 8 /Times-Italic@0 SF(mv)2.129 E F5 .129(\(1\) to mo)B .369 -.12(ve t)-.12 H .129 @@ -3318,894 +3368,886 @@ DL 216 671.6 212 671.6 DL/F4 5/Times-Roman@0 SF(14)93.6 682 Q/F5 8 BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-42 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(Ne)142 96 Q 2.5 -(wc)-.25 G(lasses can be added in the routine)167.57 96 Q F0(setupmaps)2.5 E F1 -(in \214le)2.5 E F0(conf)2.5 E(.c)-.15 E F1(.)A F0 2.5(5.2. Building)87 120 R -2.5(aC)2.5 G(on\214guration File Fr)160.91 120 Q(om Scratch)-.18 E F1 1.518 -(Building a con\214guration table from scratch is an e)127 136.2 R 1.518 -(xtremely dif)-.15 F 1.517(\214cult job)-.25 F 6.517(.F)-.4 G(ortunately) -441.336 136.2 Q 4.017(,i)-.65 G 4.017(ti)490.533 136.2 S(s)500.11 136.2 Q 1.855 -(almost ne)102 148.2 R -.15(ve)-.25 G 4.355(rn).15 G 1.855 -(ecessary to do so; nearly e)164.19 148.2 R -.15(ve)-.25 G 1.855 -(ry situation that may come up may be resolv).15 F 1.855(ed by)-.15 F .417 -(changing an e)102 160.2 R .417(xisting table.)-.15 F .417(In an)5.417 F 2.917 -(yc)-.15 G .416 -(ase, it is critical that you understand what it is that you are try-)248.622 -160.2 R 1.151(ing to do and come up with a philosoph)102 172.2 R 3.651(yf)-.05 -G 1.151(or the con\214guration table.)281.469 172.2 R 1.152 -(This section is intended to)6.151 F -.15(ex)102 184.2 S .67 +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .497 +(trying to do and come up with a philosoph)102 96 R 2.998(yf)-.05 G .498 +(or the con\214guration table.)286.696 96 R .498(This section is intended to) +5.498 F -.15(ex)102 108 S .67 (plain what the real purpose of a con\214guration table is and to gi).15 F .97 --.15(ve y)-.25 H .67(ou some ideas for what your).15 F(philosoph)102 196.2 Q -2.5(ym)-.05 G(ight be.)156.68 196.2 Q F0 1.32(Do not e)127 212.4 R -.1(ve)-.15 -G 3.82(nc).1 G(onsider)188.2 212.4 Q F1 1.32(writing your o)3.82 F 1.32 +-.15(ve y)-.25 H .67(ou some ideas for what your).15 F(philosoph)102 120 Q 2.5 +(ym)-.05 G(ight be.)156.68 120 Q F0 1.32(Do not e)127 136.2 R -.1(ve)-.15 G +3.82(nc).1 G(onsider)188.2 136.2 Q F1 1.32(writing your o)3.82 F 1.32 (wn con\214guration \214le without carefully studying RFC)-.25 F -(821, 822, and 1123.)102 224.4 Q -1.1(Yo)5 G 2.5(us)1.1 G -(hould also read RFC 976 if you are doing UUCP e)208.95 224.4 Q(xchange.)-.15 E -F0 2.5(5.2.1. What)102 248.4 R -.25(yo)2.5 G 2.5(ua).25 G .36 -.18(re t)178.7 -248.4 T(rying to do).18 E F1 .821 -(The con\214guration table has three major purposes.)142 264.6 R .82 -(The \214rst and simplest is to set up the)5.821 F(en)117 276.6 Q .35 +(821, 822, and 1123.)102 148.2 Q -1.1(Yo)5 G 2.5(us)1.1 G +(hould also read RFC 976 if you are doing UUCP e)208.95 148.2 Q(xchange.)-.15 E +F0 2.5(5.2.1. What)102 172.2 R -.25(yo)2.5 G 2.5(ua).25 G .36 -.18(re t)178.7 +172.2 T(rying to do).18 E F1 .821 +(The con\214guration table has three major purposes.)142 188.4 R .82 +(The \214rst and simplest is to set up the)5.821 F(en)117 200.4 Q .35 (vironment for)-.4 F/F2 10/Times-Italic@0 SF(sendmail)2.85 E F1 5.35(.T)C .35 -(his in)234.58 276.6 R -.2(vo)-.4 G(lv).2 E .35 +(his in)234.58 200.4 R -.2(vo)-.4 G(lv).2 E .35 (es setting the options, de\214ning a fe)-.15 F 2.85(wc)-.25 G .35 -(ritical macros, etc.)429.43 276.6 R(Since these are described in other places\ -, we will not go into more detail here.)117 288.6 Q .284 -(The second purpose is to re)142 304.8 R .284(write addresses in the message.) --.25 F .283(This should typically be done)5.283 F .213(in tw)117 316.8 R 2.713 -(op)-.1 G 2.713(hases. The)150.106 316.8 R .213 +(ritical macros, etc.)429.43 200.4 R(Since these are described in other places\ +, we will not go into more detail here.)117 212.4 Q .284 +(The second purpose is to re)142 228.6 R .284(write addresses in the message.) +-.25 F .283(This should typically be done)5.283 F .213(in tw)117 240.6 R 2.713 +(op)-.1 G 2.713(hases. The)150.106 240.6 R .213 (\214rst phase maps addresses in an)2.713 F 2.713(yf)-.15 G .213 -(ormat into a canonical form.)337.18 316.8 R .214(This should)5.214 F .157 -(be done in ruleset three.)117 328.8 R .157 +(ormat into a canonical form.)337.18 240.6 R .214(This should)5.214 F .157 +(be done in ruleset three.)117 252.6 R .157 (The second phase maps this canonical form into the syntax appropriate)5.157 F -1.997(for the recei)117 340.8 R 1.997(ving mailer)-.25 F(.)-.55 E F2(Sendmail) +1.997(for the recei)117 264.6 R 1.997(ving mailer)-.25 F(.)-.55 E F2(Sendmail) 6.997 E F1 1.997(does this in three subphases.)4.497 F 1.997 -(Rulesets one and tw)6.997 F 4.498(oa)-.1 G(re)496.23 340.8 Q .043 -(applied to all sender and recipient addresses respecti)117 352.8 R -.15(ve) +(Rulesets one and tw)6.997 F 4.498(oa)-.1 G(re)496.23 264.6 Q .043 +(applied to all sender and recipient addresses respecti)117 276.6 R -.15(ve) -.25 G(ly).15 E 5.043(.A)-.65 G .043(fter this, you may specify per)357.905 -352.8 R(-mailer)-.2 E 2.723 -(rulesets for both sender and recipient addresses; this allo)117 364.8 R 2.723 -(ws mailer)-.25 F 2.723(-speci\214c customization.)-.2 F(Finally)117 376.8 Q -2.5(,r)-.65 G(uleset four is applied to do an)153.02 376.8 Q 2.5(yd)-.15 G(ef) -283.69 376.8 Q(ault con)-.1 E -.15(ve)-.4 G(rsion to e).15 E(xternal form.)-.15 +276.6 R(-mailer)-.2 E 2.723 +(rulesets for both sender and recipient addresses; this allo)117 288.6 R 2.723 +(ws mailer)-.25 F 2.723(-speci\214c customization.)-.2 F(Finally)117 300.6 Q +2.5(,r)-.65 G(uleset four is applied to do an)153.02 300.6 Q 2.5(yd)-.15 G(ef) +283.69 300.6 Q(ault con)-.1 E -.15(ve)-.4 G(rsion to e).15 E(xternal form.)-.15 E .785(The third purpose is to map addresses into the actual set of instructio\ -ns necessary to get)142 393 R .153(the message deli)117 405 R -.15(ve)-.25 G -2.653(red. Ruleset).15 F .153(zero must resolv)2.653 F 2.653(et)-.15 G 2.653 -(ot)321.651 405 S .154(he internal form, which is in turn used as a)332.084 405 -R .447(pointer to a mailer descriptor)117 417 R 5.446(.T)-.55 G .446 -(he mailer descriptor describes the interf)248.382 417 R .446 -(ace requirements of the)-.1 F(mailer)117 429 Q(.)-.55 E F0 2.5 -(5.2.2. Philosoph)102 453 R(y)-.15 E F1 1.48(The particular philosoph)142 469.2 -R 3.98(yy)-.05 G 1.481(ou choose will depend hea)257.21 469.2 R 1.481 -(vily on the size and structure of)-.2 F .55(your or)117 481.2 R -.05(ga)-.18 G +ns necessary to get)142 316.8 R .153(the message deli)117 328.8 R -.15(ve)-.25 +G 2.653(red. Ruleset).15 F .153(zero must resolv)2.653 F 2.653(et)-.15 G 2.653 +(ot)321.651 328.8 S .154(he internal form, which is in turn used as a)332.084 +328.8 R .447(pointer to a mailer descriptor)117 340.8 R 5.446(.T)-.55 G .446 +(he mailer descriptor describes the interf)248.382 340.8 R .446 +(ace requirements of the)-.1 F(mailer)117 352.8 Q(.)-.55 E F0 2.5 +(5.2.2. Philosoph)102 376.8 R(y)-.15 E F1 1.48(The particular philosoph)142 393 +R 3.98(yy)-.05 G 1.481(ou choose will depend hea)257.21 393 R 1.481 +(vily on the size and structure of)-.2 F .55(your or)117 405 R -.05(ga)-.18 G 3.05(nization. I).05 F .55(will present a fe)3.05 F 3.05(wp)-.25 G .55 -(ossible philosophies here.)283.39 481.2 R .55(There are as man)5.55 F 3.05(yp) --.15 G(hiloso-)476.22 481.2 Q -(phies as there are con\214g designers; feel free to de)117 493.2 Q -.15(ve) --.25 G(lop your o).15 E(wn.)-.25 E .388 +(ossible philosophies here.)283.39 405 R .55(There are as man)5.55 F 3.05(yp) +-.15 G(hiloso-)476.22 405 Q +(phies as there are con\214g designers; feel free to de)117 417 Q -.15(ve)-.25 +G(lop your o).15 E(wn.)-.25 E .388 (One general point applies to all of these philosophies: it is almost al)142 -509.4 R -.1(wa)-.1 G .388(ys a mistak).1 F 2.889(et)-.1 G 2.889(ot)485.001 -509.4 S(ry)495.67 509.4 Q .176(to do full host route resolution.)117 521.4 R +433.2 R -.1(wa)-.1 G .388(ys a mistak).1 F 2.889(et)-.1 G 2.889(ot)485.001 +433.2 S(ry)495.67 433.2 Q .176(to do full host route resolution.)117 445.2 R -.15(Fo)5.176 G 2.676(re).15 G .176 -(xample, if you are on a UUCP-only site and you are trying)267.654 521.4 R +(xample, if you are on a UUCP-only site and you are trying)267.654 445.2 R 1.223(to get names of the form \231user@host\232 to the Internet, it does not \ -pay to route them to \231xyz-)117 533.4 R -.25(va)117 545.4 S(x!decv).25 E +pay to route them to \231xyz-)117 457.2 R -.25(va)117 469.2 S(x!decv).25 E (ax!ucb)-.25 E -.25(va)-.15 G .305 (x!c70!user@host\232 since you then depend on se).25 F -.15(ve)-.25 G .304 -(ral links not under your con-).15 F .996(trol, some of which are lik)117 557.4 +(ral links not under your con-).15 F .996(trol, some of which are lik)117 481.2 R .996(ely to misparse it an)-.1 F(yw)-.15 E(ay)-.1 E 5.996(.T)-.65 G .996 -(he best approach to this problem is to)347.318 557.4 R 1.049(simply forw)117 -569.4 R 1.049(ard the message for \231user@host\232 to \231xyzv)-.1 F 1.048 +(he best approach to this problem is to)347.318 481.2 R 1.049(simply forw)117 +493.2 R 1.049(ard the message for \231user@host\232 to \231xyzv)-.1 F 1.048 (ax\232 and let xyzv)-.25 F 1.048(ax w)-.25 F 1.048(orry about it from)-.1 F -3.605(there. In)117 581.4 R(summary)3.605 E 3.605(,j)-.65 G 1.106 +3.605(there. In)117 505.2 R(summary)3.605 E 3.605(,j)-.65 G 1.106 (ust get the message closer to the destination, rather than determining the) -202.985 581.4 R(full path.)117 593.4 Q F0 2.5(5.2.2.1. Lar)117 617.4 R -(ge site, many hosts \212 minimum inf)-.1 E(ormation)-.25 E F1(Berk)157 633.6 Q -(ele)-.1 E 3.019(yi)-.15 G 3.019(sa)198.649 633.6 S 3.018(ne)209.998 633.6 S -.518(xample of a lar)222.306 633.6 R .518(ge site, i.e., more than tw)-.18 F -3.018(oo)-.1 G 3.018(rt)400.268 633.6 S .518(hree hosts and multiple)409.396 -633.6 R .443(mail connections.)132 645.6 R 2.043 -.8(We h)5.443 H -2.25 -.2 +202.985 505.2 R(full path.)117 517.2 Q F0 2.5(5.2.2.1. Lar)117 541.2 R +(ge site, many hosts \212 minimum inf)-.1 E(ormation)-.25 E F1(Berk)157 557.4 Q +(ele)-.1 E 3.019(yi)-.15 G 3.019(sa)198.649 557.4 S 3.018(ne)209.998 557.4 S +.518(xample of a lar)222.306 557.4 R .518(ge site, i.e., more than tw)-.18 F +3.018(oo)-.1 G 3.018(rt)400.268 557.4 S .518(hree hosts and multiple)409.396 +557.4 R .443(mail connections.)132 569.4 R 2.043 -.8(We h)5.443 H -2.25 -.2 (av e).8 H .443(decided that the only reasonable philosoph)3.143 F 2.944(yi) --.05 G 2.944(no)429.632 645.6 S .444(ur en)442.576 645.6 R(vironment)-.4 E .312 -(is to designate one host as the guru for our site.)132 657.6 R .312 -(It must be able to resolv)5.312 F 2.812(ea)-.15 G .612 -.15(ny p)438.504 657.6 -T .312(iece of mail).15 F 1.082(it recei)132 669.6 R -.15(ve)-.25 G 3.582 +-.05 G 2.944(no)429.632 569.4 S .444(ur en)442.576 569.4 R(vironment)-.4 E .312 +(is to designate one host as the guru for our site.)132 581.4 R .312 +(It must be able to resolv)5.312 F 2.812(ea)-.15 G .612 -.15(ny p)438.504 581.4 +T .312(iece of mail).15 F 1.082(it recei)132 593.4 R -.15(ve)-.25 G 3.582 (s. The).15 F 1.083(other sites should ha)3.583 F 1.383 -.15(ve t)-.2 H 1.083 (he minimum amount of information the).15 F 3.583(yc)-.15 G 1.083(an get) -478.757 669.6 R -2.3 -.15(aw a)132 681.6 T 2.636(yw).15 G 2.636(ith. In)162.706 -681.6 R .136(addition, an)2.636 F 2.636(yi)-.15 G .135(nformation the)249.49 -681.6 R 2.635(yd)-.15 G 2.635(oh)321.27 681.6 S -2.25 -.2(av e)333.905 681.6 T -.135(should be hints rather than solid infor)2.835 F(-)-.2 E(mation.)132 693.6 -Q -.15(Fo)157 709.8 S 6.709(re).15 G 4.209 -(xample, a typical site on our local ether netw)181.739 709.8 R 4.21 -(ork is \231monet\232 \(actually)-.1 F(\231monet.CS.Berk)132 721.8 Q(ele)-.1 E +478.757 593.4 R -2.3 -.15(aw a)132 605.4 T 2.636(yw).15 G 2.636(ith. In)162.706 +605.4 R .136(addition, an)2.636 F 2.636(yi)-.15 G .135(nformation the)249.49 +605.4 R 2.635(yd)-.15 G 2.635(oh)321.27 605.4 S -2.25 -.2(av e)333.905 605.4 T +.135(should be hints rather than solid infor)2.835 F(-)-.2 E(mation.)132 617.4 +Q -.15(Fo)157 633.6 S 6.709(re).15 G 4.209 +(xample, a typical site on our local ether netw)181.739 633.6 R 4.21 +(ork is \231monet\232 \(actually)-.1 F(\231monet.CS.Berk)132 645.6 Q(ele)-.1 E -.65(y.)-.15 G 3.887(EDU\232\). When).65 F 1.387(monet recei)3.887 F -.15(ve) --.25 G 3.887(sm).15 G 1.387(ail for deli)354.258 721.8 R -.15(ve)-.25 G(ry).15 -E 3.887(,i)-.65 G 3.887(tc)424.579 721.8 S 1.387(hecks whether it)435.686 721.8 -R EP +-.25 G 3.887(sm).15 G 1.387(ail for deli)354.258 645.6 R -.15(ve)-.25 G(ry).15 +E 3.887(,i)-.65 G 3.887(tc)424.579 645.6 S 1.387(hecks whether it)435.686 645.6 +R(kno)132 657.6 Q 1.342(ws that the destination host is directly reachable; if\ + so, mail is sent to that host.)-.25 F 1.343(If it)6.343 F(recei)132 669.6 Q +-.15(ve)-.25 G 2.915(sm).15 G .415(ail for an)175.055 669.6 R 2.915(yu)-.15 G +(nkno)224.75 669.6 Q .415(wn host, it just passes it directly to \231ucb)-.25 F +-.25(va)-.15 G(x.CS.Berk).25 E(ele)-.1 E -.65(y.)-.15 G(EDU\232,).65 E .177 +(our master host.)132 681.6 R(Ucb)5.177 E -.25(va)-.15 G 2.677(xm).25 G .177 +(ay determine that the host name is ille)242.848 681.6 R -.05(ga)-.15 G 2.678 +(la).05 G .178(nd reject the message,)415.156 681.6 R .754 +(or may be able to do deli)132 693.6 R -.15(ve)-.25 G(ry).15 E 5.754(.H)-.65 G +-.25(ow)268.148 693.6 S -2.15 -.25(ev e).25 H 1.554 -.4(r, i).25 H 3.254(ti).4 +G 3.254(si)313.876 693.6 S .754(mportant to note that when a ne)323.8 693.6 R +3.253(wm)-.25 G .753(ail con-)472.977 693.6 R .164 +(nection is added, the only host that)132 705.6 R F2(must)2.664 E F1(ha)2.664 E +.464 -.15(ve i)-.2 H .164(ts tables updated is ucb).15 F -.25(va)-.15 G .164 +(x; the others).25 F F2(may)2.665 E F1(be)2.665 E(updated if con)132 717.6 Q +-.15(ve)-.4 G(nient, b).15 E(ut this is not critical.)-.2 E EP %%Page: 43 38 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-43)452.9 60 Q/F1 10/Times-Roman@0 SF(kno)132 96 Q 1.342(ws that the de\ -stination host is directly reachable; if so, mail is sent to that host.)-.25 F -1.343(If it)6.343 F(recei)132 108 Q -.15(ve)-.25 G 2.915(sm).15 G .415 -(ail for an)175.055 108 R 2.915(yu)-.15 G(nkno)224.75 108 Q .415 -(wn host, it just passes it directly to \231ucb)-.25 F -.25(va)-.15 G -(x.CS.Berk).25 E(ele)-.1 E -.65(y.)-.15 G(EDU\232,).65 E .177(our master host.) -132 120 R(Ucb)5.177 E -.25(va)-.15 G 2.677(xm).25 G .177 -(ay determine that the host name is ille)242.848 120 R -.05(ga)-.15 G 2.678(la) -.05 G .178(nd reject the message,)415.156 120 R .754(or may be able to do deli) -132 132 R -.15(ve)-.25 G(ry).15 E 5.754(.H)-.65 G -.25(ow)268.148 132 S -2.15 --.25(ev e).25 H 1.554 -.4(r, i).25 H 3.254(ti).4 G 3.254(si)313.876 132 S .754 -(mportant to note that when a ne)323.8 132 R 3.253(wm)-.25 G .753(ail con-) -472.977 132 R .164(nection is added, the only host that)132 144 R/F2 10 -/Times-Italic@0 SF(must)2.664 E F1(ha)2.664 E .464 -.15(ve i)-.2 H .164 -(ts tables updated is ucb).15 F -.25(va)-.15 G .164(x; the others).25 F F2(may) -2.665 E F1(be)2.665 E(updated if con)132 156 Q -.15(ve)-.4 G(nient, b).15 E -(ut this is not critical.)-.2 E 2.122 -(This picture is slightly muddied due to netw)157 172.2 R 2.121 -(ork connections that are not actually)-.1 F 2.361(located on ucb)132 184.2 R +(SMM:08-43)452.9 60 Q/F1 10/Times-Roman@0 SF 2.122 +(This picture is slightly muddied due to netw)157 96 R 2.121 +(ork connections that are not actually)-.1 F 2.361(located on ucb)132 108 R -.25(va)-.15 G 4.862(x. F).25 F 2.362(or e)-.15 F 2.362 (xample, some UUCP connections are currently on \231ucbarpa.)-.15 F<9a>-.7 E -(Ho)132 196.2 Q(we)-.25 E -.15(ve)-.25 G 1.045 -.4(r, m).15 H(onet).4 E F2 .245 -(does not)2.745 F F1(kno)2.745 E 2.745(wa)-.25 G .244 -(bout this; the information is hidden totally between ucb)266.345 196.2 R -.25 -(va)-.15 G(x).25 E 1.044(and ucbarpa.)132 208.2 R 1.045 +(Ho)132 120 Q(we)-.25 E -.15(ve)-.25 G 1.045 -.4(r, m).15 H(onet).4 E/F2 10 +/Times-Italic@0 SF .245(does not)2.745 F F1(kno)2.745 E 2.745(wa)-.25 G .244 +(bout this; the information is hidden totally between ucb)266.345 120 R -.25 +(va)-.15 G(x).25 E 1.044(and ucbarpa.)132 132 R 1.045 (Mail going from monet to a UUCP host is transferred via the ethernet from) -6.044 F 1.431(monet to ucb)132 220.2 R -.25(va)-.15 G 1.431 +6.044 F 1.431(monet to ucb)132 144 R -.25(va)-.15 G 1.431 (x, then via the ethernet from ucb).25 F -.25(va)-.15 G 3.931(xt).25 G 3.931 -(ou)355.709 220.2 S 1.43(cbarpa, and then is submitted to)369.64 220.2 R(UUCP) -132 232.2 Q 5(.A)-1.11 G(lthough this in)172.28 232.2 Q -.2(vo)-.4 G(lv).2 E -(es some e)-.15 E(xtra hops, we feel this is an acceptable tradeof)-.15 E(f.) --.25 E .825(An interesting point is that it w)157 248.4 R .826 +(ou)355.709 144 S 1.43(cbarpa, and then is submitted to)369.64 144 R(UUCP)132 +156 Q 5(.A)-1.11 G(lthough this in)172.28 156 Q -.2(vo)-.4 G(lv).2 E(es some e) +-.15 E(xtra hops, we feel this is an acceptable tradeof)-.15 E(f.)-.25 E .825 +(An interesting point is that it w)157 172.2 R .826 (ould be possible to update monet to send appropriate)-.1 F .127 -(UUCP mail directly to ucbarpa if the load got too high; if monet f)132 260.4 R -.127(ailed to note a host as con-)-.1 F .352(nected to ucbarpa it w)132 272.4 R -.352(ould go via ucb)-.1 F -.25(va)-.15 G 2.852(xa).25 G 2.853(sb)305.946 272.4 -S .353(efore, and if monet incorrectly sent a message)317.689 272.4 R .396 -(to ucbarpa it w)132 284.4 R .396(ould still be sent by ucbarpa to ucb)-.1 F --.25(va)-.15 G 2.896(xa).25 G 2.896(sb)356.656 284.4 S 2.896(efore. The)368.442 -284.4 R .395(only problem that can)2.896 F .9(occur is loops, for e)132 296.4 R +(UUCP mail directly to ucbarpa if the load got too high; if monet f)132 184.2 R +.127(ailed to note a host as con-)-.1 F .352(nected to ucbarpa it w)132 196.2 R +.352(ould go via ucb)-.1 F -.25(va)-.15 G 2.852(xa).25 G 2.853(sb)305.946 196.2 +S .353(efore, and if monet incorrectly sent a message)317.689 196.2 R .396 +(to ucbarpa it w)132 208.2 R .396(ould still be sent by ucbarpa to ucb)-.1 F +-.25(va)-.15 G 2.896(xa).25 G 2.896(sb)356.656 208.2 S 2.896(efore. The)368.442 +208.2 R .395(only problem that can)2.896 F .9(occur is loops, for e)132 220.2 R .901(xample, if ucbarpa thought that ucb)-.15 F -.25(va)-.15 G 3.401(xh).25 G -.901(ad the UUCP connection and)383.746 296.4 R(vice v)132 308.4 Q 2.5(ersa. F) +.901(ad the UUCP connection and)383.746 220.2 R(vice v)132 232.2 Q 2.5(ersa. F) -.15 F(or this reason, updates should)-.15 E F2(always)2.5 E F1 -(happen to the master host \214rst.)2.5 E .145(This philosoph)157 324.6 R 2.645 -(yr)-.05 G .145(esults as much from the need to ha)227.8 324.6 R .445 -.15 +(happen to the master host \214rst.)2.5 E .145(This philosoph)157 248.4 R 2.645 +(yr)-.05 G .145(esults as much from the need to ha)227.8 248.4 R .445 -.15 (ve a s)-.2 H .144(ingle source for the con\214gu-).15 F .288 -(ration \214les \(typically b)132 336.6 R .289(uilt using)-.2 F F2(m4)2.789 E +(ration \214les \(typically b)132 260.4 R .289(uilt using)-.2 F F2(m4)2.789 E F1 .289(\(1\) or some similar tool\) as an)1.666 F 2.789(yl)-.15 G .289 -(ogical need.)410.662 336.6 R(Maintain-)5.289 E +(ogical need.)410.662 260.4 R(Maintain-)5.289 E (ing more than three separate tables by hand is essentially an impossible job) -132 348.6 Q(.)-.4 E F0 2.5(5.2.2.2. Small)117 372.6 R(site \212 complete inf) -2.5 E(ormation)-.25 E F1 3.356(As)157 388.8 S .856(mall site \(tw)171.466 388.8 -R 3.356(oo)-.1 G 3.356(rt)236.434 388.8 S .856(hree hosts and fe)245.9 388.8 R +132 272.4 Q(.)-.4 E F0 2.5(5.2.2.2. Small)117 296.4 R(site \212 complete inf) +2.5 E(ormation)-.25 E F1 3.356(As)157 312.6 S .856(mall site \(tw)171.466 312.6 +R 3.356(oo)-.1 G 3.356(rt)236.434 312.6 S .856(hree hosts and fe)245.9 312.6 R 3.356(we)-.25 G .856(xternal connections\) may \214nd it more rea-)330.564 -388.8 R .435(sonable to ha)132 400.8 R .735 -.15(ve c)-.2 H .435 +312.6 R .435(sonable to ha)132 324.6 R .735 -.15(ve c)-.2 H .435 (omplete information at each host.).15 F .435(This w)5.435 F .435 -(ould require that each host kno)-.1 F(w)-.25 E -.15(ex)132 412.8 S .185 +(ould require that each host kno)-.1 F(w)-.25 E -.15(ex)132 336.6 S .185 (actly where each netw).15 F .185 (ork connection is, possibly including the names of each host on that)-.1 F -(netw)132 424.8 Q 4.34(ork. As)-.1 F 1.841 -(long as the site remains small and the the con\214guration remains relati)4.34 -F -.15(ve)-.25 G(ly).15 E -(static, the update problem will probably not be too great.)132 436.8 Q F0 2.5 -(5.2.2.3. Single)117 460.8 R(host)2.5 E F1 .117(This is in some sense the tri) -157 477 R .117(vial case.)-.25 F .117 -(The only major issue is trying to insure that you)5.117 F(don')132 489 Q 3.424 -(th)-.18 G -2.25 -.2(av e)161.354 489 T .924(to kno)3.624 F 3.424(wt)-.25 G -.925(oo much about your en)217.686 489 R 3.425(vironment. F)-.4 F .925(or e) --.15 F .925(xample, if you ha)-.15 F 1.225 -.15(ve a U)-.2 H(UCP).15 E .615 -(connection you might \214nd it useful to kno)132 501 R 3.115(wa)-.25 G .614 -(bout the names of hosts connected directly to)318.89 501 R(you, b)132 513 Q +(netw)132 348.6 Q 3.464(ork. As)-.1 F .965 +(long as the site remains small and the con\214guration remains relati)3.464 F +-.15(ve)-.25 G .965(ly static,).15 F +(the update problem will probably not be too great.)132 360.6 Q F0 2.5 +(5.2.2.3. Single)117 384.6 R(host)2.5 E F1 .117(This is in some sense the tri) +157 400.8 R .117(vial case.)-.25 F .117 +(The only major issue is trying to insure that you)5.117 F(don')132 412.8 Q +3.424(th)-.18 G -2.25 -.2(av e)161.354 412.8 T .924(to kno)3.624 F 3.424(wt) +-.25 G .925(oo much about your en)217.686 412.8 R 3.425(vironment. F)-.4 F .925 +(or e)-.15 F .925(xample, if you ha)-.15 F 1.225 -.15(ve a U)-.2 H(UCP).15 E +.615(connection you might \214nd it useful to kno)132 424.8 R 3.115(wa)-.25 G +.614(bout the names of hosts connected directly to)318.89 424.8 R(you, b)132 +436.8 Q (ut this is really not necessary since this may be determined from the syntax.) --.2 E F0 2.5(5.2.2.4. A)117 537 R(completely differ)2.5 E(ent philosoph)-.18 E -(y)-.15 E F1(This is adapted from Bruce Lilly)157 553.2 Q 5(.A)-.65 G .3 -.15 -(ny e)301.89 553.2 T(rrors in interpretation are mine.).15 E .064 -(Do minimal changes in ruleset 3: \214x some common b)157 569.4 R .065 +-.2 E F0 2.5(5.2.2.4. A)117 460.8 R(completely differ)2.5 E(ent philosoph)-.18 +E(y)-.15 E F1(This is adapted from Bruce Lilly)157 477 Q 5(.A)-.65 G .3 -.15 +(ny e)301.89 477 T(rrors in interpretation are mine.).15 E .064 +(Do minimal changes in ruleset 3: \214x some common b)157 493.2 R .065 (ut unambiguous errors \(e.g. trail-)-.2 F 2.758 -(ing dot on domains\) and hide bang paths foo!bar into bar@foo.UUCP)132 581.4 R -7.758(.T)-1.11 G 2.758(he resulting)454.302 581.4 R("canonical" form is an)132 -593.4 Q 2.5(yv)-.15 G(alid RFC822/RFC1123/RFC976 address.)233.63 593.4 Q 1.387 -(Ruleset 0 does the b)157 609.6 R 1.387(ulk of the w)-.2 F 3.887(ork. It)-.1 F +(ing dot on domains\) and hide bang paths foo!bar into bar@foo.UUCP)132 505.2 R +7.758(.T)-1.11 G 2.758(he resulting)454.302 505.2 R("canonical" form is an)132 +517.2 Q 2.5(yv)-.15 G(alid RFC822/RFC1123/RFC976 address.)233.63 517.2 Q 1.387 +(Ruleset 0 does the b)157 533.4 R 1.387(ulk of the w)-.2 F 3.887(ork. It)-.1 F (remo)3.887 E -.15(ve)-.15 G 3.887(st).15 G 1.387 -(he trailing "@.UUCP" that hides)367.47 609.6 R .661(bang paths, strips an)132 -621.6 R .661(ything not needed to resolv)-.15 F .661 +(he trailing "@.UUCP" that hides)367.47 533.4 R .661(bang paths, strips an)132 +545.4 R .661(ything not needed to resolv)-.15 F .661 (e, e.g. the phrase from phrase <route-addr>)-.15 F .496 -(and from named groups, rejects unparseable addresses using $#error)132 633.6 R -2.997(,a)-.4 G .497(nd \214nally resolv)419.049 633.6 R .497(es to)-.15 F 4.325 -(am)132 645.6 S 1.825(ailer/host/user triple.)148.545 645.6 R 1.825 -(Ruleset 0 is rather length)6.825 F 4.325(ya)-.05 G 4.325(si)360.97 645.6 S -4.325(th)371.965 645.6 S 1.824(as to handle 3 basic address)384.07 645.6 R -5.373(forms: RFC976 bang paths, RFC1123 %-hacks \(including v)132 657.6 R 5.374 +(and from named groups, rejects unparseable addresses using $#error)132 557.4 R +2.997(,a)-.4 G .497(nd \214nally resolv)419.049 557.4 R .497(es to)-.15 F 4.325 +(am)132 569.4 S 1.825(ailer/host/user triple.)148.545 569.4 R 1.825 +(Ruleset 0 is rather length)6.825 F 4.325(ya)-.05 G 4.325(si)360.97 569.4 S +4.325(th)371.965 569.4 S 1.824(as to handle 3 basic address)384.07 569.4 R +5.373(forms: RFC976 bang paths, RFC1123 %-hacks \(including v)132 581.4 R 5.374 (anilla RFC822 local-)-.25 F .137(part@domain\), and RFC822 source routes.)132 -669.6 R(It')5.137 E 2.637(sa)-.55 G .137(lso complicated by ha)329.512 669.6 R -.136(ving to handle named)-.2 F(lists.)132 681.6 Q .616(The header re)157 697.8 +593.4 R(It')5.137 E 2.637(sa)-.55 G .137(lso complicated by ha)329.512 593.4 R +.136(ving to handle named)-.2 F(lists.)132 605.4 Q .616(The header re)157 621.6 R .616(writing rulesets 1 and 2 remo)-.25 F .916 -.15(ve t)-.15 H .616 -(he trailing "@.UUCP" that hides bang).15 F 2.5(paths. Ruleset)132 709.8 R 2.5 -(2a)2.5 G(lso strips the $# mailer $@ host \(for test mode\).)205.05 709.8 Q EP +(he trailing "@.UUCP" that hides bang).15 F 2.5(paths. Ruleset)132 633.6 R 2.5 +(2a)2.5 G(lso strips the $# mailer $@ host \(for test mode\).)205.05 633.6 Q +(Ruleset 4 does absolutely nothing.)157 649.8 Q 1.317(The per)157 666 R 1.317 +(-mailer re)-.2 F 1.317(writing rulesets conform the en)-.25 F -.15(ve)-.4 G +1.316(lope and header addresses to the).15 F +(requirements of the speci\214c mailer)132 678 Q(.)-.55 E +(Lots of rulesets-as-subroutines are used.)157 694.2 Q .35(As a result, header\ + addresses are subject to minimal munging \(per RFC1123\), and the)157 710.4 R +(general plan is per RFC822 sect. 3.4.10.)132 722.4 Q EP %%Page: 44 39 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-44 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -(Ruleset 4 does absolutely nothing.)157 96 Q 1.317(The per)157 112.2 R 1.317 -(-mailer re)-.2 F 1.317(writing rulesets conform the en)-.25 F -.15(ve)-.4 G -1.316(lope and header addresses to the).15 F -(requirements of the speci\214c mailer)132 124.2 Q(.)-.55 E -(Lots of rulesets-as-subroutines are used.)157 140.4 Q .35(As a result, header\ - addresses are subject to minimal munging \(per RFC1123\), and the)157 156.6 R -(general plan is per RFC822 sect. 3.4.10.)132 168.6 Q F0 2.5(5.2.3. Rele)102 -192.6 R -.1(va)-.15 G(nt issues).1 E F1 .584(The canonical form you use should\ - almost certainly be as speci\214ed in the Internet proto-)142 208.8 R 2.603 -(cols RFC819 and RFC822.)117 220.8 R 2.603(Copies of these RFC')7.603 F 5.104 -(sa)-.55 G 2.604(re included on the)347.846 220.8 R/F2 10/Times-Italic@0 SF -(sendmail)5.104 E F1 2.604(tape as)5.104 F F2(doc/rfc819.lpr)117 232.8 Q F1 +(Installation and Operation Guide)2.5 E 2.5(5.2.3. Rele)102 96 R -.1(va)-.15 G +(nt issues).1 E/F1 10/Times-Roman@0 SF .584(The canonical form you use should \ +almost certainly be as speci\214ed in the Internet proto-)142 112.2 R 2.603 +(cols RFC819 and RFC822.)117 124.2 R 2.603(Copies of these RFC')7.603 F 5.104 +(sa)-.55 G 2.604(re included on the)347.846 124.2 R/F2 10/Times-Italic@0 SF +(sendmail)5.104 E F1 2.604(tape as)5.104 F F2(doc/rfc819.lpr)117 136.2 Q F1 (and)2.5 E F2(doc/rfc822.lpr)2.5 E F1(.)A 2.04 -(RFC822 describes the format of the mail message itself.)142 249 R F2(Sendmail) -7.04 E F1(follo)4.54 E 2.04(ws this RFC)-.25 F(closely)117 261 Q 2.983(,t)-.65 -G 2.983(ot)152.943 261 S .483(he e)163.706 261 R .483(xtent that man)-.15 F -2.983(yo)-.15 G 2.983(ft)251.438 261 S .483 -(he standards described in this document can not be changed)260.531 261 R -(without changing the code.)117 273 Q(In particular)5 E 2.5(,t)-.4 G(he follo) -286.85 273 Q(wing characters ha)-.25 E .3 -.15(ve s)-.2 H -(pecial interpretations:).15 E 2.5(<>\(\)"\\)157 289.2 S(An)117 305.4 Q 3.037 +(RFC822 describes the format of the mail message itself.)142 152.4 R F2 +(Sendmail)7.04 E F1(follo)4.54 E 2.04(ws this RFC)-.25 F(closely)117 164.4 Q +2.983(,t)-.65 G 2.983(ot)152.943 164.4 S .483(he e)163.706 164.4 R .483 +(xtent that man)-.15 F 2.983(yo)-.15 G 2.983(ft)251.438 164.4 S .483 +(he standards described in this document can not be changed)260.531 164.4 R +(without changing the code.)117 176.4 Q(In particular)5 E 2.5(,t)-.4 G +(he follo)286.85 176.4 Q(wing characters ha)-.25 E .3 -.15(ve s)-.2 H +(pecial interpretations:).15 E 2.5(<>\(\)"\\)157 192.6 S(An)117 208.8 Q 3.037 (ya)-.15 G .537(ttempt to use these characters for other than their RFC822 pur\ -pose in addresses is proba-)141.547 305.4 R(bly doomed to disaster)117 317.4 Q +pose in addresses is proba-)141.547 208.8 R(bly doomed to disaster)117 220.8 Q (.)-.55 E 1.326 -(RFC819 describes the speci\214cs of the domain-based addressing.)142 333.6 R -1.327(This is touched on in)6.327 F 1.44(RFC822 as well.)117 345.6 R 1.44 +(RFC819 describes the speci\214cs of the domain-based addressing.)142 237 R +1.327(This is touched on in)6.327 F 1.44(RFC822 as well.)117 249 R 1.44 (Essentially each host is gi)6.44 F -.15(ve)-.25 G 3.939(nan).15 G 1.439 -(ame which is a right-to-left dot quali\214ed)333.716 345.6 R .232 -(pseudo-path from a distinguished root.)117 357.6 R .232 +(ame which is a right-to-left dot quali\214ed)333.716 249 R .232 +(pseudo-path from a distinguished root.)117 261 R .232 (The elements of the path need not be ph)5.232 F .232(ysical hosts; the)-.05 F -2.366(domain is logical rather than ph)117 369.6 R 4.866(ysical. F)-.05 F 2.366 +2.366(domain is logical rather than ph)117 273 R 4.866(ysical. F)-.05 F 2.366 (or e)-.15 F 2.366(xample, at Berk)-.15 F(ele)-.1 E 4.866(yo)-.15 G 2.365 -(ne le)406.41 369.6 R -.05(ga)-.15 G 4.865(lh).05 G 2.365(ost might be)449.82 -369.6 R(\231a.CC.Berk)117 381.6 Q(ele)-.1 E -.65(y.)-.15 G .365 +(ne le)406.41 273 R -.05(ga)-.15 G 4.865(lh).05 G 2.365(ost might be)449.82 273 +R(\231a.CC.Berk)117 285 Q(ele)-.1 E -.65(y.)-.15 G .365 (EDU\232; reading from right to left, \231EDU\232 is a top le).65 F -.15(ve) --.25 G 2.866(ld).15 G .366(omain comprising edu-)410.498 381.6 R .562 -(cational institutions, \231Berk)117 393.6 R(ele)-.1 E .562 +-.25 G 2.866(ld).15 G .366(omain comprising edu-)410.498 285 R .562 +(cational institutions, \231Berk)117 297 R(ele)-.1 E .562 (y\232 is a logical domain name, \231CC\232 represents the Computer Cen-)-.15 F -(ter)117 405.6 Q 2.5(,\()-.4 G(in this case a strictly logical entity\), and \ -\231a\232 is a host in the Computer Center)135.48 405.6 Q(.)-.55 E(Be)142 421.8 -Q -.1(wa)-.25 G -(re when reading RFC819 that there are a number of errors in it.).1 E F0 2.5 -(5.2.4. Ho)102 445.8 R 2.5(wt)-.1 G 2.5(op)155.23 445.8 S -.18(ro)168.29 445.8 -S(ceed).18 E F1 .334(Once you ha)142 462 R .634 -.15(ve d)-.2 H .334 -(ecided on a philosoph).15 F 1.635 -.65(y, i)-.05 H 2.835(ti).65 G 2.835(sw) -319.435 462 S .335(orth e)333.28 462 R .335(xamining the a)-.15 F -.25(va)-.2 G -.335(ilable con\214guration).25 F .175(tables to decide if an)117 474 R 2.674 -(yo)-.15 G 2.674(ft)212.984 474 S .174 -(hem are close enough to steal major parts of.)221.768 474 R(Ev)5.174 E .174 -(en under the w)-.15 F .174(orst of)-.1 F(conditions, there is a f)117 486 Q +(ter)117 309 Q 2.5(,\()-.4 G(in this case a strictly logical entity\), and \ +\231a\232 is a host in the Computer Center)135.48 309 Q(.)-.55 E(Be)142 325.2 Q +-.1(wa)-.25 G(re when reading RFC819 that there are a number of errors in it.) +.1 E F0 2.5(5.2.4. Ho)102 349.2 R 2.5(wt)-.1 G 2.5(op)155.23 349.2 S -.18(ro) +168.29 349.2 S(ceed).18 E F1 .334(Once you ha)142 365.4 R .634 -.15(ve d)-.2 H +.334(ecided on a philosoph).15 F 1.635 -.65(y, i)-.05 H 2.835(ti).65 G 2.835 +(sw)319.435 365.4 S .335(orth e)333.28 365.4 R .335(xamining the a)-.15 F -.25 +(va)-.2 G .335(ilable con\214guration).25 F .175(tables to decide if an)117 +377.4 R 2.674(yo)-.15 G 2.674(ft)212.984 377.4 S .174 +(hem are close enough to steal major parts of.)221.768 377.4 R(Ev)5.174 E .174 +(en under the w)-.15 F .174(orst of)-.1 F(conditions, there is a f)117 389.4 Q (air amount of boiler plate that can be collected safely)-.1 E(.)-.65 E .329 -(The ne)142 502.2 R .329(xt step is to b)-.15 F .329(uild ruleset three.)-.2 F +(The ne)142 405.6 R .329(xt step is to b)-.15 F .329(uild ruleset three.)-.2 F .33(This will be the hardest part of the job)5.329 F 5.33(.B)-.4 G -2.1 -.25 -(ew a)469.32 502.2 T .33(re of).25 F .781 -(doing too much to the address in this ruleset, since an)117 514.2 R .781 -(ything you do will re\215ect through to the)-.15 F 2.743(message. In)117 526.2 +(ew a)469.32 405.6 T .33(re of).25 F .781 +(doing too much to the address in this ruleset, since an)117 417.6 R .781 +(ything you do will re\215ect through to the)-.15 F 2.743(message. In)117 429.6 R(particular)2.743 E 2.743(,s)-.4 G .243 -(tripping of local domains is best deferred, since this can lea)216.749 526.2 R +(tripping of local domains is best deferred, since this can lea)216.749 429.6 R .544 -.15(ve y)-.2 H .244(ou with).15 F 1.235 -(addresses with no domain spec at all.)117 538.2 R(Since)6.235 E F2(sendmail) +(addresses with no domain spec at all.)117 441.6 R(Since)6.235 E F2(sendmail) 3.735 E F1(lik)3.735 E 1.234(es to append the sending domain to)-.1 F .83 (addresses with no domain, this can change the semantics of addresses.)117 -550.2 R .83(Also try to a)5.83 F -.2(vo)-.2 G .83(id fully).2 F .343 -(qualifying domains in this ruleset.)117 562.2 R .342(Although technically le) +453.6 R .83(Also try to a)5.83 F -.2(vo)-.2 G .83(id fully).2 F .343 +(qualifying domains in this ruleset.)117 465.6 R .342(Although technically le) 5.342 F -.05(ga)-.15 G .342(l, this can lead to unpleasantly and).05 F 1.287 -(unnecessarily long addresses re\215ected into messages.)117 574.2 R 1.287 +(unnecessarily long addresses re\215ected into messages.)117 477.6 R 1.287 (The Berk)6.287 F(ele)-.1 E 3.787(yc)-.15 G 1.287 -(on\214guration \214les de\214ne)406.426 574.2 R .093 -(ruleset nine to qualify domain names and strip local domains.)117 586.2 R .093 +(on\214guration \214les de\214ne)406.426 477.6 R .093 +(ruleset nine to qualify domain names and strip local domains.)117 489.6 R .093 (This is called from ruleset zero to)5.093 F -(get all addresses into a cleaner form.)117 598.2 Q .317(Once you ha)142 614.4 +(get all addresses into a cleaner form.)117 501.6 Q .317(Once you ha)142 517.8 R .618 -.15(ve r)-.2 H .318 (uleset three \214nished, the other rulesets should be relati).15 F -.15(ve) -.25 G .318(ly tri).15 F 2.818(vial. If)-.25 F(you)2.818 E(need hints, e)117 -626.4 Q(xamine the supplied con\214guration tables.)-.15 E F0 2.5(5.2.5. T)102 -650.4 R(esting the r)-.92 E(ewriting rules \212 the \255bt \215ag)-.18 E F1 -1.076(When you b)142 666.6 R 1.075(uild a con\214guration table, you can do a \ -certain amount of testing using the)-.2 F(\231test mode\232 of)117 678.6 Q F2 -(sendmail)2.5 E F1 5(.F)C(or e)226.84 678.6 Q(xample, you could in)-.15 E -.2 -(vo)-.4 G -.1(ke).2 G F2(sendmail)2.6 E F1(as:)2.5 E -(sendmail \255bt \255Ctest.cf)157 694.8 Q .903(which w)117 711 R .903 +529.8 Q(xamine the supplied con\214guration tables.)-.15 E F0 2.5(5.2.5. T)102 +553.8 R(esting the r)-.92 E(ewriting rules \212 the \255bt \215ag)-.18 E F1 +1.076(When you b)142 570 R 1.075(uild a con\214guration table, you can do a ce\ +rtain amount of testing using the)-.2 F(\231test mode\232 of)117 582 Q F2 +(sendmail)2.5 E F1 5(.F)C(or e)226.84 582 Q(xample, you could in)-.15 E -.2(vo) +-.4 G -.1(ke).2 G F2(sendmail)2.6 E F1(as:)2.5 E(sendmail \255bt \255Ctest.cf) +157 598.2 Q .903(which w)117 614.4 R .903 (ould read the con\214guration \214le \231test.cf\232 and enter test mode.)-.1 -F .904(In this mode, you enter)5.904 F(lines of the form:)117 723 Q EP +F .904(In this mode, you enter)5.904 F(lines of the form:)117 626.4 Q +(rwset address)157 642.6 Q(where)117 658.8 Q F2(rwset)3.377 E F1 .877 +(is the re)3.377 F .877(writing set you w)-.25 F .876(ant to use and)-.1 F F2 +(addr)3.376 E(ess)-.37 E F1 .876(is an address to apply the set to.)3.376 F -.7 +(Te)117 670.8 S .169(st mode sho).7 F .169(ws you the steps it tak)-.25 F .169 +(es as it proceeds, \214nally sho)-.1 F .17(wing you the address it ends up) +-.25 F 3.635(with. Y)117 682.8 R 1.135(ou may use a comma separated list of rw\ +sets for sequential application of rules to an)-1.1 F 2.5(input. F)117 694.8 R +(or e)-.15 E(xample:)-.15 E(3,1,21,4 monet:bollard)157 711 Q EP %%Page: 45 40 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-45)452.9 60 Q/F1 10/Times-Roman@0 SF(rwset address)157 96 Q(where)117 -112.2 Q/F2 10/Times-Italic@0 SF(rwset)3.377 E F1 .877(is the re)3.377 F .877 -(writing set you w)-.25 F .876(ant to use and)-.1 F F2(addr)3.376 E(ess)-.37 E -F1 .876(is an address to apply the set to.)3.376 F -.7(Te)117 124.2 S .169 -(st mode sho).7 F .169(ws you the steps it tak)-.25 F .169 -(es as it proceeds, \214nally sho)-.1 F .17(wing you the address it ends up) --.25 F 3.635(with. Y)117 136.2 R 1.135(ou may use a comma separated list of rw\ -sets for sequential application of rules to an)-1.1 F 2.5(input. F)117 148.2 R -(or e)-.15 E(xample:)-.15 E(3,1,21,4 monet:bollard)157 164.4 Q .385 -(\214rst applies ruleset three to the input \231monet:bollard.)117 180.6 R -5.385<9a52>-.7 G .386(uleset one is then applied to the output)347.14 180.6 R -(of ruleset three, follo)117 192.6 Q +(SMM:08-45)452.9 60 Q/F1 10/Times-Roman@0 SF .385 +(\214rst applies ruleset three to the input \231monet:bollard.)117 96 R 5.385 +<9a52>-.7 G .386(uleset one is then applied to the output)347.14 96 R +(of ruleset three, follo)117 108 Q (wed similarly by rulesets twenty-one and four)-.25 E(.)-.55 E .202(If you nee\ d more detail, you can also use the \231\255d21\232 \215ag to turn on more deb) -142 208.8 R 2.701(ugging. F)-.2 F(or)-.15 E -.15(ex)117 220.8 S(ample,).15 E -(sendmail \255bt \255d21.99)157 237 Q .753 -(turns on an incredible amount of information; a single w)117 253.2 R .754 -(ord address is probably going to print)-.1 F(out se)117 265.2 Q -.15(ve)-.25 G -(ral pages w).15 E(orth of information.)-.1 E -1.1(Yo)142 281.4 S 3.235(us)1.1 -G .735(hould be w)165.245 281.4 R .735(arned that internally)-.1 F(,)-.65 E F2 -(sendmail)3.234 E F1 .734(applies ruleset 3 to all addresses.)3.234 F .734 -(In this)5.734 F -.15(ve)117 293.4 S 1.23(rsion of).15 F F2(sendmail)3.73 E F1 -3.73(,y)C 1.23(ou will ha)209.42 293.4 R 1.53 -.15(ve t)-.2 H 3.73(od).15 G -3.73(ot)281.21 293.4 S 1.23(hat manually)292.72 293.4 R 6.23(.F)-.65 G 1.23 -(or e)359.38 293.4 R 1.23(xample, older v)-.15 F 1.23(ersions allo)-.15 F(wed) --.25 E(you to use)117 305.4 Q 2.5(0b)157 321.6 S(ruce@broadcast.son)169.5 321.6 -Q -.65(y.)-.15 G(com).65 E(This v)117 337.8 Q(ersion requires that you use:) --.15 E(3,0 bruce@broadcast.son)157 354 Q -.65(y.)-.15 G(com).65 E F0 2.5 -(5.2.6. Building)102 382.2 R(mailer descriptions)2.5 E F1 1.887 -.8(To a)142 -398.4 T .287(dd an outgoing mailer to your mail system, you will ha).8 F .586 --.15(ve t)-.2 H 2.786(od).15 G .286(e\214ne the characteristics)409.568 398.4 R -(of the mailer)117 410.4 Q(.)-.55 E 1.48(Each mailer must ha)142 426.6 R 1.78 --.15(ve a)-.2 H 3.981(ni).15 G 1.481(nternal name.)257.641 426.6 R 1.481 +142 124.2 R 2.701(ugging. F)-.2 F(or)-.15 E -.15(ex)117 136.2 S(ample,).15 E +(sendmail \255bt \255d21.99)157 152.4 Q .753 +(turns on an incredible amount of information; a single w)117 168.6 R .754 +(ord address is probably going to print)-.1 F(out se)117 180.6 Q -.15(ve)-.25 G +(ral pages w).15 E(orth of information.)-.1 E -1.1(Yo)142 196.8 S 3.235(us)1.1 +G .735(hould be w)165.245 196.8 R .735(arned that internally)-.1 F(,)-.65 E/F2 +10/Times-Italic@0 SF(sendmail)3.234 E F1 .734 +(applies ruleset 3 to all addresses.)3.234 F .734(In this)5.734 F -.15(ve)117 +208.8 S 1.23(rsion of).15 F F2(sendmail)3.73 E F1 3.73(,y)C 1.23(ou will ha) +209.42 208.8 R 1.53 -.15(ve t)-.2 H 3.73(od).15 G 3.73(ot)281.21 208.8 S 1.23 +(hat manually)292.72 208.8 R 6.23(.F)-.65 G 1.23(or e)359.38 208.8 R 1.23 +(xample, older v)-.15 F 1.23(ersions allo)-.15 F(wed)-.25 E(you to use)117 +220.8 Q 2.5(0b)157 237 S(ruce@broadcast.son)169.5 237 Q -.65(y.)-.15 G(com).65 +E(This v)117 253.2 Q(ersion requires that you use:)-.15 E +(3,0 bruce@broadcast.son)157 269.4 Q -.65(y.)-.15 G(com).65 E F0 2.5 +(5.2.6. Building)102 297.6 R(mailer descriptions)2.5 E F1 1.887 -.8(To a)142 +313.8 T .287(dd an outgoing mailer to your mail system, you will ha).8 F .586 +-.15(ve t)-.2 H 2.786(od).15 G .286(e\214ne the characteristics)409.568 313.8 R +(of the mailer)117 325.8 Q(.)-.55 E 1.48(Each mailer must ha)142 342 R 1.78 +-.15(ve a)-.2 H 3.981(ni).15 G 1.481(nternal name.)257.641 342 R 1.481 (This can be arbitrary)6.481 F 3.981(,e)-.65 G 1.481(xcept that the names) -417.627 426.6 R(\231local\232 and \231prog\232 must be de\214ned.)117 438.6 Q -.128(The pathname of the mailer must be gi)142 454.8 R -.15(ve)-.25 G 2.628(ni) -.15 G 2.628(nt)317.044 454.8 S .128(he P \214eld.)327.452 454.8 R .127 +417.627 342 R(\231local\232 and \231prog\232 must be de\214ned.)117 354 Q .128 +(The pathname of the mailer must be gi)142 370.2 R -.15(ve)-.25 G 2.628(ni).15 +G 2.628(nt)317.044 370.2 S .128(he P \214eld.)327.452 370.2 R .127 (If this mailer should be accessed)5.127 F -(via an IPC connection, use the string \231[IPC]\232 instead.)117 466.8 Q .021 -(The F \214eld de\214nes the mailer \215ags.)142 483 R -1.1(Yo)5.021 G 2.521 +(via an IPC connection, use the string \231[IPC]\232 instead.)117 382.2 Q .021 +(The F \214eld de\214nes the mailer \215ags.)142 398.4 R -1.1(Yo)5.021 G 2.521 (us)1.1 G .021(hould specify an \231f\232 or \231r\232 \215ag to pass the name) -311.058 483 R .466(of the sender as a)117 495 R F0<ad66>2.966 E F1(or)2.965 E -F0<ad72>2.965 E F1 .465(\215ag respecti)2.965 F -.15(ve)-.25 G(ly).15 E 5.465 -(.T)-.65 G .465(hese \215ags are only passed if the)306.955 495 R 2.965(yw)-.15 -G .465(ere passed to)451.42 495 R F2(sendmail)117 507 Q F1 4.205(,s)C 4.205(ot) -163.705 507 S 1.705(hat mailers that gi)175.69 507 R 2.005 -.15(ve e)-.25 H -1.705(rrors under some circumstances can be placated.).15 F 1.705(If the)6.705 -F 1.363(mailer is not pick)117 519 R 3.863(yy)-.15 G 1.362 -(ou can just specify \231\255f $g\232 in the ar)204.522 519 R 1.362 +311.058 398.4 R .466(of the sender as a)117 410.4 R F0<ad66>2.966 E F1(or)2.965 +E F0<ad72>2.965 E F1 .465(\215ag respecti)2.965 F -.15(ve)-.25 G(ly).15 E 5.465 +(.T)-.65 G .465(hese \215ags are only passed if the)306.955 410.4 R 2.965(yw) +-.15 G .465(ere passed to)451.42 410.4 R F2(sendmail)117 422.4 Q F1 4.205(,s)C +4.205(ot)163.705 422.4 S 1.705(hat mailers that gi)175.69 422.4 R 2.005 -.15 +(ve e)-.25 H 1.705(rrors under some circumstances can be placated.).15 F 1.705 +(If the)6.705 F 1.363(mailer is not pick)117 434.4 R 3.863(yy)-.15 G 1.362 +(ou can just specify \231\255f $g\232 in the ar)204.522 434.4 R 1.362 (gv template.)-.18 F 1.362(If the mailer must be)6.362 F 1.707(called as)117 -531 R F0 -.18(ro)4.207 G(ot).18 E F1 1.707(the \231S\232 \215ag should be gi) +446.4 R F0 -.18(ro)4.207 G(ot).18 E F1 1.707(the \231S\232 \215ag should be gi) 4.207 F -.15(ve)-.25 G 1.707 -(n; this will not reset the userid before calling the).15 F(mailer)117 545 Q/F3 -7/Times-Roman@0 SF(15)142.55 541 Q F1 5.112(.I)149.55 545 S 2.612(ft)160.492 -545 S .112(his mailer is local \(i.e., will perform \214nal deli)169.214 545 R --.15(ve)-.25 G .112(ry rather than another netw).15 F .112(ork hop\))-.1 F .727 -(the \231l\232 \215ag should be gi)117 557 R -.15(ve)-.25 G 3.227(n. Quote).15 -F .728(characters \(backslashes and " marks\) can be stripped from)3.227 F .269 -(addresses if the \231s\232 \215ag is speci\214ed; if this is not gi)117 569 R --.15(ve)-.25 G 2.768(nt).15 G(he)344.254 569 Q 2.768(ya)-.15 G .268 -(re passed through.)365.752 569 R .268(If the mailer is)5.268 F .67(capable of\ - sending to more than one user on the same host in a single transaction the \ -\231m\232 \215ag)117 581 R 1.177(should be stated.)117 593 R 1.177 +(n; this will not reset the userid before calling the).15 F(mailer)117 460.4 Q +/F3 7/Times-Roman@0 SF(16)142.55 456.4 Q F1 5.112(.I)149.55 460.4 S 2.612(ft) +160.492 460.4 S .112(his mailer is local \(i.e., will perform \214nal deli) +169.214 460.4 R -.15(ve)-.25 G .112(ry rather than another netw).15 F .112 +(ork hop\))-.1 F .727(the \231l\232 \215ag should be gi)117 472.4 R -.15(ve) +-.25 G 3.227(n. Quote).15 F .728 +(characters \(backslashes and " marks\) can be stripped from)3.227 F .269 +(addresses if the \231s\232 \215ag is speci\214ed; if this is not gi)117 484.4 +R -.15(ve)-.25 G 2.768(nt).15 G(he)344.254 484.4 Q 2.768(ya)-.15 G .268 +(re passed through.)365.752 484.4 R .268(If the mailer is)5.268 F .67(capable \ +of sending to more than one user on the same host in a single transaction the \ +\231m\232 \215ag)117 496.4 R 1.177(should be stated.)117 508.4 R 1.177 (If this \215ag is on, then the ar)6.177 F 1.176(gv template containing)-.18 F F0($u)3.676 E F1 1.176(will be repeated for)3.676 F .088 -(each unique user on a gi)117 605 R -.15(ve)-.25 G 2.589(nh).15 G 2.589 -(ost. The)235.991 605 R .089 +(each unique user on a gi)117 520.4 R -.15(ve)-.25 G 2.589(nh).15 G 2.589 +(ost. The)235.991 520.4 R .089 (\231e\232 \215ag will mark the mailer as being \231e)2.589 F(xpensi)-.15 E --.15(ve)-.25 G 1.489 -.7(,\232 w).15 H(hich).7 E(will cause)117 619 Q F2 -(sendmail)2.5 E F1(to defer connection until a queue run)2.5 E F3(16)345.57 615 -Q F1(.)352.57 619 Q 2.037(An unusual case is the \231C\232 \215ag.)142 635.2 R -2.037(This \215ag applies to the mailer that the message is)7.037 F(recei)117 -647.2 Q -.15(ve)-.25 G 2.653(df).15 G .153(rom, rather than the mailer being s\ -ent to; if set, the domain spec of the sender \(i.e., the)156.453 647.2 R 1.52 -(\231@host.domain\232 part\) is sa)117 659.2 R -.15(ve)-.2 G 4.02(da).15 G -1.519(nd is appended to an)252.75 659.2 R 4.019(ya)-.15 G 1.519 -(ddresses in the message that do not)354.346 659.2 R .32 LW 76 668.8 72 668.8 -DL 80 668.8 76 668.8 DL 84 668.8 80 668.8 DL 88 668.8 84 668.8 DL 92 668.8 88 -668.8 DL 96 668.8 92 668.8 DL 100 668.8 96 668.8 DL 104 668.8 100 668.8 DL 108 -668.8 104 668.8 DL 112 668.8 108 668.8 DL 116 668.8 112 668.8 DL 120 668.8 116 -668.8 DL 124 668.8 120 668.8 DL 128 668.8 124 668.8 DL 132 668.8 128 668.8 DL -136 668.8 132 668.8 DL 140 668.8 136 668.8 DL 144 668.8 140 668.8 DL 148 668.8 -144 668.8 DL 152 668.8 148 668.8 DL 156 668.8 152 668.8 DL 160 668.8 156 668.8 -DL 164 668.8 160 668.8 DL 168 668.8 164 668.8 DL 172 668.8 168 668.8 DL 176 -668.8 172 668.8 DL 180 668.8 176 668.8 DL 184 668.8 180 668.8 DL 188 668.8 184 -668.8 DL 192 668.8 188 668.8 DL 196 668.8 192 668.8 DL 200 668.8 196 668.8 DL -204 668.8 200 668.8 DL 208 668.8 204 668.8 DL 212 668.8 208 668.8 DL 216 668.8 -212 668.8 DL/F4 5/Times-Roman@0 SF(15)93.6 679.2 Q/F5 8/Times-Italic@0 SF +-.15(ve)-.25 G 1.489 -.7(,\232 w).15 H(hich).7 E(will cause)117 534.4 Q F2 +(sendmail)2.5 E F1(to defer connection until a queue run)2.5 E F3(17)345.57 +530.4 Q F1(.)352.57 534.4 Q 2.037(An unusual case is the \231C\232 \215ag.)142 +550.6 R 2.037(This \215ag applies to the mailer that the message is)7.037 F +(recei)117 562.6 Q -.15(ve)-.25 G 2.653(df).15 G .153(rom, rather than the mai\ +ler being sent to; if set, the domain spec of the sender \(i.e., the)156.453 +562.6 R 1.52(\231@host.domain\232 part\) is sa)117 574.6 R -.15(ve)-.2 G 4.02 +(da).15 G 1.519(nd is appended to an)252.75 574.6 R 4.019(ya)-.15 G 1.519 +(ddresses in the message that do not)354.346 574.6 R +(already contain a domain spec.)117 586.6 Q -.15(Fo)5 G 2.5(re).15 G +(xample, a message of the form:)266.11 586.6 Q(From: eric@v)157 602.8 Q +(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -.8(To)157 614.8 S +2.5(:w).8 G(nj@monet.CS.Berk)179.81 614.8 Q(ele)-.1 E -.65(y.)-.15 G +(EDU, mckusick).65 E(will be modi\214ed to:)117 631 Q .32 LW 76 665.2 72 665.2 +DL 80 665.2 76 665.2 DL 84 665.2 80 665.2 DL 88 665.2 84 665.2 DL 92 665.2 88 +665.2 DL 96 665.2 92 665.2 DL 100 665.2 96 665.2 DL 104 665.2 100 665.2 DL 108 +665.2 104 665.2 DL 112 665.2 108 665.2 DL 116 665.2 112 665.2 DL 120 665.2 116 +665.2 DL 124 665.2 120 665.2 DL 128 665.2 124 665.2 DL 132 665.2 128 665.2 DL +136 665.2 132 665.2 DL 140 665.2 136 665.2 DL 144 665.2 140 665.2 DL 148 665.2 +144 665.2 DL 152 665.2 148 665.2 DL 156 665.2 152 665.2 DL 160 665.2 156 665.2 +DL 164 665.2 160 665.2 DL 168 665.2 164 665.2 DL 172 665.2 168 665.2 DL 176 +665.2 172 665.2 DL 180 665.2 176 665.2 DL 184 665.2 180 665.2 DL 188 665.2 184 +665.2 DL 192 665.2 188 665.2 DL 196 665.2 192 665.2 DL 200 665.2 196 665.2 DL +204 665.2 200 665.2 DL 208 665.2 204 665.2 DL 212 665.2 208 665.2 DL 216 665.2 +212 665.2 DL/F4 5/Times-Roman@0 SF(16)93.6 675.6 Q/F5 8/Times-Italic@0 SF (Sendmail)3.2 I/F6 8/Times-Roman@0 SF -(must be running setuid to root for this to w)2 E(ork.)-.08 E F4(16)93.6 692.8 +(must be running setuid to root for this to w)2 E(ork.)-.08 E F4(17)93.6 689.2 Q F6(The \231c\232 con\214guration option must be gi)3.2 I -.12(ve)-.2 G 2(nf) -.12 G(or this to be ef)242.04 696 Q(fecti)-.2 E -.12(ve)-.2 G(.).12 E EP +.12 G(or this to be ef)242.04 692.4 Q(fecti)-.2 E -.12(ve)-.2 G(.).12 E EP %%Page: 46 41 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-46 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF -(already contain a domain spec.)117 96 Q -.15(Fo)5 G 2.5(re).15 G -(xample, a message of the form:)266.11 96 Q(From: eric@v)157 112.2 Q -(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -.8(To)157 124.2 S -2.5(:w).8 G(nj@monet.CS.Berk)179.81 124.2 Q(ele)-.1 E -.65(y.)-.15 G -(EDU, mckusick).65 E(will be modi\214ed to:)117 140.4 Q(From: eric@v)157 156.6 -Q(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -.8(To)157 168.6 S -2.5(:w).8 G(nj@monet.CS.Berk)179.81 168.6 Q(ele)-.1 E -.65(y.)-.15 G +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(From: eric@v)157 +96 Q(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -.8(To)157 108 S +2.5(:w).8 G(nj@monet.CS.Berk)179.81 108 Q(ele)-.1 E -.65(y.)-.15 G (EDU, mckusick@v).65 E(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E -/F2 10/Times-Italic@0 SF 9.364(if and only if)117 184.8 R F1 9.365 -(the \231C\232 \215ag is de\214ned in the mailer corresponding to)207.796 184.8 -R(\231eric@v)117 196.8 Q(angogh.CS.Berk)-.25 E(ele)-.1 E -.65(y.)-.15 G(EDU.) -.65 E<9a>-.7 E(Other \215ags are described in Appendix C.)142 213 Q .538 -(The S and R \214elds in the mailer description are per)142 229.2 R .538 +/F2 10/Times-Italic@0 SF 6.607(if and only if)117 124.2 R F1 6.607 +(the \231C\232 \215ag is de\214ned in the mailer resolv)9.107 F 6.608 +(ed to by running)-.15 F(\231eric@v)117 136.2 Q(angogh.CS.Berk)-.25 E(ele)-.1 E +-.65(y.)-.15 G(EDU\232 through rulesets 3 and 0.).65 E +(Other \215ags are described in Appendix C.)142 152.4 Q .538 +(The S and R \214elds in the mailer description are per)142 168.6 R .538 (-mailer re)-.2 F .538(writing sets to be applied to)-.25 F 2.252 -(sender and recipient addresses respecti)117 241.2 R -.15(ve)-.25 G(ly).15 E -7.252(.T)-.65 G 2.253(hese are applied after the sending domain is)312.99 241.2 -R .547(appended and the general re)117 253.2 R .547 +(sender and recipient addresses respecti)117 180.6 R -.15(ve)-.25 G(ly).15 E +7.252(.T)-.65 G 2.253(hese are applied after the sending domain is)312.99 180.6 +R .547(appended and the general re)117 192.6 R .547 (writing sets \(numbers one and tw)-.25 F .546(o\) are applied, b)-.1 F .546 -(ut before the out-)-.2 F .457(put re)117 265.2 R .457 +(ut before the out-)-.2 F .457(put re)117 204.6 R .457 (write \(ruleset four\) is applied.)-.25 F 2.957(At)5.457 G .458 -(ypical use is to append the current domain to addresses)279.639 265.2 R -(that do not already ha)117 277.2 Q .3 -.15(ve a d)-.2 H 2.5(omain. F).15 F -(or e)-.15 E(xample, a header of the form:)-.15 E(From: eric)157 293.4 Q -(might be changed to be:)117 309.6 Q(From: eric@v)157 325.8 Q(angogh.CS.Berk) --.25 E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E(or)117 342 Q(From: ucb)157 358.2 Q --.25(va)-.15 G(x!eric).25 E .186 -(depending on the domain it is being shipped into.)117 374.4 R .186 -(These sets can also be used to do special pur)5.186 F(-)-.2 E(pose output re) -117 386.4 Q(writing in cooperation with ruleset four)-.25 E(.)-.55 E .025 -(The S and R \214elds can be speci\214ed as tw)142 402.6 R 2.526(on)-.1 G .026 -(umbers separated by a slash \(e.g., \231S=10/11\232\),)318.244 402.6 R 2.916 -(meaning that all en)117 414.6 R -.15(ve)-.4 G 2.915 +(ypical use is to append the current domain to addresses)279.639 204.6 R +(that do not already ha)117 216.6 Q .3 -.15(ve a d)-.2 H 2.5(omain. F).15 F +(or e)-.15 E(xample, a header of the form:)-.15 E(From: eric)157 232.8 Q +(might be changed to be:)117 249 Q(From: eric@v)157 265.2 Q(angogh.CS.Berk)-.25 +E(ele)-.1 E -.65(y.)-.15 G(EDU).65 E(or)117 281.4 Q(From: ucb)157 297.6 Q -.25 +(va)-.15 G(x!eric).25 E .186(depending on the domain it is being shipped into.) +117 313.8 R .186(These sets can also be used to do special pur)5.186 F(-)-.2 E +(pose output re)117 325.8 Q(writing in cooperation with ruleset four)-.25 E(.) +-.55 E .025(The S and R \214elds can be speci\214ed as tw)142 342 R 2.526(on) +-.1 G .026(umbers separated by a slash \(e.g., \231S=10/11\232\),)318.244 342 R +2.916(meaning that all en)117 354 R -.15(ve)-.4 G 2.915 (lope addresses will be processed through ruleset 10 and all header).15 F .402 -(addresses will be processed through ruleset 11.)117 426.6 R -.4(Wi)5.402 G -.403(th only one number speci\214ed, both en).4 F -.15(ve)-.4 G(lope).15 E -(and header re)117 438.6 Q(writing sets are set to the indicated ruleset.)-.25 -E .228(The E \214eld de\214nes the string to use as an end-of-line indication.) -142 454.8 R 2.728(As)5.228 G .228(tring containing only)419.654 454.8 R(ne)117 -466.8 Q(wline is the def)-.25 E 2.5(ault. The)-.1 F +(addresses will be processed through ruleset 11.)117 366 R -.4(Wi)5.402 G .403 +(th only one number speci\214ed, both en).4 F -.15(ve)-.4 G(lope).15 E +(and header re)117 378 Q(writing sets are set to the indicated ruleset.)-.25 E +.228(The E \214eld de\214nes the string to use as an end-of-line indication.) +142 394.2 R 2.728(As)5.228 G .228(tring containing only)419.654 394.2 R(ne)117 +406.2 Q(wline is the def)-.25 E 2.5(ault. The)-.1 F (usual backslash escapes \(\\r)2.5 E 2.5(,\\)-.4 G(n, \\f, \\b\) may be used.) -342.87 466.8 Q(Finally)142 483 Q 2.648(,a)-.65 G 2.648(na)179.278 483 S -.18 -(rg)191.366 483 S 2.648(vt).18 G .149(emplate is gi)209.944 483 R -.15(ve)-.25 -G 2.649(na).15 G 2.649(st)282.481 483 S .149(he E \214eld.)291.8 483 R .149 -(It may ha)5.149 F .449 -.15(ve e)-.2 H .149(mbedded spaces.).15 F .149 -(If there is)5.149 F .204(no ar)117 495 R .204(gv with a)-.18 F F0($u)2.704 E -F1 .204(macro in it,)2.704 F F2(sendmail)2.704 E F1 .204 -(will speak SMTP to the mailer)2.704 F 5.203(.I)-.55 G 2.703(ft)412.648 495 S -.203(he pathname for this)421.461 495 R(mailer is \231[IPC],)117 507 Q 2.5 -<9a74>-.7 G(he ar)192.4 507 Q(gv should be)-.18 E(IPC $h [)157 523.2 Q F2(port) -2.5 E F1(])2.5 E(where)117 539.4 Q F2(port)2.5 E F1 -(is the optional port number to connect to.)2.5 E -.15(Fo)142 555.6 S 2.5(re) -.15 G(xample, the speci\214cations:)162.53 555.6 Q(Mlocal, P=/bin/mail, F=rlsm) -157 571.8 Q(S=10, R=20, A=mail \255d $u)5 E(Mether)157 583.8 Q 2.35(,P)-.4 G -13.9(=[IPC], F=meC,)195.89 583.8 R(S=11, R=21, A=IPC $h, M=100000)1.39 E 1.643 -(speci\214es a mailer to do local deli)117 600 R -.15(ve)-.25 G 1.644 +342.87 406.2 Q(Finally)142 422.4 Q 2.583(,a)-.65 G 2.583(na)179.213 422.4 S +-.18(rg)191.236 422.4 S 2.583(vt).18 G .083(emplate is gi)209.749 422.4 R -.15 +(ve)-.25 G 2.583(na).15 G 2.583(st)282.088 422.4 S .083(he A \214eld.)291.341 +422.4 R .084(It may ha)5.084 F .384 -.15(ve e)-.2 H .084(mbedded spaces.).15 F +.084(If there is)5.084 F .204(no ar)117 434.4 R .204(gv with a)-.18 F F0($u) +2.704 E F1 .204(macro in it,)2.704 F F2(sendmail)2.704 E F1 .204 +(will speak SMTP to the mailer)2.704 F 5.203(.I)-.55 G 2.703(ft)412.648 434.4 S +.203(he pathname for this)421.461 434.4 R(mailer is \231[IPC],)117 446.4 Q 2.5 +<9a74>-.7 G(he ar)192.4 446.4 Q(gv should be)-.18 E(IPC $h [)157 462.6 Q F2 +(port)2.5 E F1(])2.5 E(where)117 478.8 Q F2(port)2.5 E F1 +(is the optional port number to connect to.)2.5 E -.15(Fo)142 495 S 2.5(re).15 +G(xample, the speci\214cations:)162.53 495 Q(Mlocal, P=/bin/mail, F=rlsm)157 +511.2 Q(S=10, R=20, A=mail \255d $u)5 E(Mether)157 523.2 Q 2.35(,P)-.4 G 13.9 +(=[IPC], F=meC,)195.89 523.2 R(S=11, R=21, A=IPC $h, M=100000)1.39 E 1.643 +(speci\214es a mailer to do local deli)117 539.4 R -.15(ve)-.25 G 1.644 (ry and a mailer for ethernet deli).15 F -.15(ve)-.25 G(ry).15 E 6.644(.T)-.65 -G 1.644(he \214rst is called)436.018 600 R(\231local,)117 612 Q 2.649<9a69>-.7 -G 2.649(sl)152.549 612 S .149(ocated in the \214le \231/bin/mail,)161.868 612 R -2.649<9a74>-.7 G(ak)283.573 612 Q .149(es a pick)-.1 F(y)-.15 E F0<ad72>2.649 E -F1 .148(\215ag, does local deli)2.649 F -.15(ve)-.25 G(ry).15 E 2.648(,q)-.65 G -.148(uotes should)453.572 612 R 1.016 -(be stripped from addresses, and multiple users can be deli)117 624 R -.15(ve) --.25 G 1.017(red at once; ruleset ten should be).15 F 1.417(applied to sender \ -addresses in the message and ruleset twenty should be applied to recipient)117 -636 R .122(addresses; the ar)117 648 R .123 +G 1.644(he \214rst is called)436.018 539.4 R(\231local,)117 551.4 Q 2.649<9a69> +-.7 G 2.649(sl)152.549 551.4 S .149(ocated in the \214le \231/bin/mail,)161.868 +551.4 R 2.649<9a74>-.7 G(ak)283.573 551.4 Q .149(es a pick)-.1 F(y)-.15 E F0 +<ad72>2.649 E F1 .148(\215ag, does local deli)2.649 F -.15(ve)-.25 G(ry).15 E +2.648(,q)-.65 G .148(uotes should)453.572 551.4 R 1.016 +(be stripped from addresses, and multiple users can be deli)117 563.4 R -.15 +(ve)-.25 G 1.017(red at once; ruleset ten should be).15 F 1.417(applied to sen\ +der addresses in the message and ruleset twenty should be applied to recipient) +117 575.4 R .122(addresses; the ar)117 587.4 R .123 (gv to send to a message will be the w)-.18 F .123(ord \231mail,)-.1 F 2.623 -<9a74>-.7 G .123(he w)383.125 648 R .123(ord \231\255d,)-.1 F 2.623<9a61>-.7 G -.123(nd w)446.644 648 R .123(ords con-)-.1 F 1.484 -(taining the name of the recei)117 660 R 1.484(ving user)-.25 F 6.484(.I)-.55 G -3.984(fa)288.498 660 S F0<ad72>A F1 1.484 +<9a74>-.7 G .123(he w)383.125 587.4 R .123(ord \231\255d,)-.1 F 2.623<9a61>-.7 +G .123(nd w)446.644 587.4 R .123(ords con-)-.1 F 1.484 +(taining the name of the recei)117 599.4 R 1.484(ving user)-.25 F 6.484(.I)-.55 +G 3.984(fa)288.498 599.4 S F0<ad72>A F1 1.484 (\215ag is inserted it will be between the w)3.984 F(ords)-.1 E .288 -(\231mail\232 and \231\255d.)117 672 R 5.288<9a54>-.7 G .289 -(he second mailer is called \231ether)196.394 672 R 1.689 -.7(,\232 i)-.4 H -2.789(ts).7 G .289(hould be connected to via an IPC con-)348.947 672 R .932(ne\ -ction, it can handle multiple users at once, connections should be deferred, a\ -nd an)117 684 R 3.432(yd)-.15 G(omain)479 684 Q 1.458 -(from the sender address should be appended to an)117 696 R 3.958(yr)-.15 G -(ecei)340.2 696 Q -.15(ve)-.25 G 3.958(rn).15 G 1.458 -(ame without a domain; sender)377.628 696 R .74 -(addresses should be processed by ruleset ele)117 708 R -.15(ve)-.25 G 3.24(na) -.15 G .74(nd recipient addresses by ruleset twenty-one.)320.34 708 R -(There is a 100,000 byte limit on messages passed through this mailer)117 720 Q -(.)-.55 E EP +(\231mail\232 and \231\255d.)117 611.4 R 5.288<9a54>-.7 G .289 +(he second mailer is called \231ether)196.394 611.4 R 1.689 -.7(,\232 i)-.4 H +2.789(ts).7 G .289(hould be connected to via an IPC con-)348.947 611.4 R .932(\ +nection, it can handle multiple users at once, connections should be deferred,\ + and an)117 623.4 R 3.432(yd)-.15 G(omain)479 623.4 Q 1.458 +(from the sender address should be appended to an)117 635.4 R 3.958(yr)-.15 G +(ecei)340.2 635.4 Q -.15(ve)-.25 G 3.958(rn).15 G 1.458 +(ame without a domain; sender)377.628 635.4 R .74 +(addresses should be processed by ruleset ele)117 647.4 R -.15(ve)-.25 G 3.24 +(na).15 G .74(nd recipient addresses by ruleset twenty-one.)320.34 647.4 R +(There is a 100,000 byte limit on messages passed through this mailer)117 659.4 +Q(.)-.55 E F0 2.5(5.3. The)87 683.4 R(User Database)2.5 E F1 .108(If you ha)127 +699.6 R .408 -.15(ve a ve)-.2 H .109(rsion of).15 F F2(sendmail)2.609 E F1 .109 +(with the user database package compiled in, the handling of)2.609 F +(sender and recipient addresses is modi\214ed.)102 711.6 Q EP %%Page: 47 42 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-47)452.9 60 Q 2.5(5.3. The)87 96 R(User Database)2.5 E/F1 10 -/Times-Roman@0 SF .108(If you ha)127 112.2 R .408 -.15(ve a ve)-.2 H .109 -(rsion of).15 F/F2 10/Times-Italic@0 SF(sendmail)2.609 E F1 .109 -(with the user database package compiled in, the handling of)2.609 F -(sender and recipient addresses is modi\214ed.)102 124.2 Q -(The location of this database is controlled with the)127 140.4 Q F0(U)2.5 E F1 -(option.)2.5 E F0 2.5(5.3.1. Structur)102 164.4 R 2.5(eo)-.18 G 2.5(ft)177.92 -164.4 S(he user database)187.08 164.4 Q F1(The database is a sorted \(BT)142 -180.6 Q(ree-based\) structure.)-.35 E(User records are stored with the k)5 E --.15(ey)-.1 G(:).15 E F2(user)157 196.8 Q(-name)-.2 E F0(:)A F2(\214eld-name)A -F1 .128 +(SMM:08-47)452.9 60 Q/F1 10/Times-Roman@0 SF +(The location of this database is controlled with the)127 96 Q F0(U)2.5 E F1 +(option.)2.5 E F0 2.5(5.3.1. Structur)102 120 R 2.5(eo)-.18 G 2.5(ft)177.92 120 +S(he user database)187.08 120 Q F1(The database is a sorted \(BT)142 136.2 Q +(ree-based\) structure.)-.35 E(User records are stored with the k)5 E -.15(ey) +-.1 G(:).15 E/F2 10/Times-Italic@0 SF(user)157 152.4 Q(-name)-.2 E F0(:)A F2 +(\214eld-name)A F1 .128 (The sorted database format ensures that user records are clustered together) -117 213 R 5.128(.M)-.55 G .128(eta-information is)432.492 213 R(al)117 225 Q --.1(wa)-.1 G(ys stored with a leading colon.).1 E -(Field names de\214ne both the syntax and semantics of the v)142 241.2 Q 2.5 -(alue. De\214ned)-.25 F(\214elds include:)2.5 E 33.39(maildrop The)117 257.4 R +117 168.6 R 5.128(.M)-.55 G .128(eta-information is)432.492 168.6 R(al)117 +180.6 Q -.1(wa)-.1 G(ys stored with a leading colon.).1 E +(Field names de\214ne both the syntax and semantics of the v)142 196.8 Q 2.5 +(alue. De\214ned)-.25 F(\214elds include:)2.5 E 33.39(maildrop The)117 213 R (deli)4.872 E -.15(ve)-.25 G 2.372(ry address for this user).15 F 7.372(.T)-.55 -G 2.373(here may be multiple v)349.472 257.4 R 2.373(alues of this)-.25 F 2.675 -(record. In)189 269.4 R(particular)2.675 E 2.675(,m)-.4 G .175 -(ailing lists will ha)284.095 269.4 R .475 -.15(ve o)-.2 H(ne).15 E F2(maildr) -2.675 E(op)-.45 E F1 .175(record for each user)2.675 F(on the list.)189 281.4 Q -30.06(mailname The)117 297.6 R 1.026(outgoing mailname for this user)3.526 F -6.026(.F)-.55 G 1.027(or each outgoing name, there should)353.336 297.6 R .08 -(be an appropriate)189 309.6 R F2(maildr)2.58 E(op)-.45 E F1 .08 +G 2.373(here may be multiple v)349.472 213 R 2.373(alues of this)-.25 F 2.675 +(record. In)189 225 R(particular)2.675 E 2.675(,m)-.4 G .175 +(ailing lists will ha)284.095 225 R .475 -.15(ve o)-.2 H(ne).15 E F2(maildr) +2.675 E(op)-.45 E F1 .175(record for each user)2.675 F(on the list.)189 237 Q +30.06(mailname The)117 253.2 R 1.026(outgoing mailname for this user)3.526 F +6.026(.F)-.55 G 1.027(or each outgoing name, there should)353.336 253.2 R .08 +(be an appropriate)189 265.2 R F2(maildr)2.58 E(op)-.45 E F1 .08 (record for that name to allo)2.58 F 2.58(wr)-.25 G .08(eturn mail.)422.38 -309.6 R .08(See also)5.08 F F2(:default:mailname)189 321.6 Q F1(.)A 25.62 -(mailsender Changes)117 337.8 R(an)3.447 E 3.447(ym)-.15 G .947 -(ail sent to this address to ha)252.404 337.8 R 1.248 -.15(ve t)-.2 H .948 +265.2 R .08(See also)5.08 F F2(:default:mailname)189 277.2 Q F1(.)A 25.62 +(mailsender Changes)117 293.4 R(an)3.447 E 3.447(ym)-.15 G .947 +(ail sent to this address to ha)252.404 293.4 R 1.248 -.15(ve t)-.2 H .948 (he indicated en).15 F -.15(ve)-.4 G .948(lope sender).15 F(.)-.55 E .498(This\ is intended for mailing lists, and will normally be the name of an appro-)189 -349.8 R .754(priate -request address.)189 361.8 R .754(It is v)5.754 F .755 +305.4 R .754(priate -request address.)189 317.4 R .754(It is v)5.754 F .755 (ery similar to the o)-.15 F(wner)-.25 E(-)-.2 E F2(list)A F1 .755 -(syntax in the alias)3.255 F(\214le.)189 373.8 Q 33.95(fullname The)117 390 R -(full name of the user)2.5 E(.)-.55 E(of)117 406.2 Q 13.66(\214ce-address The) --.25 F(of)2.5 E(\214ce address for this user)-.25 E(.)-.55 E(of)117 422.4 Q -19.21(\214ce-phone The)-.25 F(of)2.5 E(\214ce phone number for this user)-.25 E -(.)-.55 E(of)117 438.6 Q(\214ce-f)-.25 E 30.98(ax The)-.1 F(of)2.5 E(\214ce F) --.25 E(AX number for this user)-.74 E(.)-.55 E 13.96(home-address The)117 454.8 -R(home address for this user)2.5 E(.)-.55 E 19.51(home-phone The)117 471 R -(home phone number for this user)2.5 E(.)-.55 E(home-f)117 487.2 Q 31.28 +(syntax in the alias)3.255 F(\214le.)189 329.4 Q 33.95(fullname The)117 345.6 R +(full name of the user)2.5 E(.)-.55 E(of)117 361.8 Q 13.66(\214ce-address The) +-.25 F(of)2.5 E(\214ce address for this user)-.25 E(.)-.55 E(of)117 378 Q 19.21 +(\214ce-phone The)-.25 F(of)2.5 E(\214ce phone number for this user)-.25 E(.) +-.55 E(of)117 394.2 Q(\214ce-f)-.25 E 30.98(ax The)-.1 F(of)2.5 E(\214ce F)-.25 +E(AX number for this user)-.74 E(.)-.55 E 13.96(home-address The)117 410.4 R +(home address for this user)2.5 E(.)-.55 E 19.51(home-phone The)117 426.6 R +(home phone number for this user)2.5 E(.)-.55 E(home-f)117 442.8 Q 31.28 (ax The)-.1 F(home F)2.5 E(AX number for this user)-.74 E(.)-.55 E 41.73 -(project A)117 503.4 R .856 +(project A)117 459 R .856 (\(short\) description of the project this person is af)3.356 F .855 -(\214liated with.)-.25 F .855(In the Uni-)5.855 F -.15(ve)189 515.4 S +(\214liated with.)-.25 F .855(In the Uni-)5.855 F -.15(ve)189 471 S (rsity this is often just the name of their graduate advisor).15 E(.)-.55 E -52.28(plan A)117 531.6 R +52.28(plan A)117 487.2 R (pointer to a \214le from which plan information can be g)2.5 E(athered.)-.05 E -.924(As of this writing, only a fe)142 547.8 R 3.424(wo)-.25 G 3.424(ft)273.208 -547.8 S .925(hese \214elds are actually being used by)282.742 547.8 R F2 -(sendmail)3.425 E F1(:)A F2(mail-)3.425 E(dr)117 559.8 Q(op)-.45 E F1(and)2.5 E -F2(mailname)2.5 E F1 5(.A)C F2(\214ng)211.54 559.8 Q(er)-.1 E F1 +.924(As of this writing, only a fe)142 503.4 R 3.424(wo)-.25 G 3.424(ft)273.208 +503.4 S .925(hese \214elds are actually being used by)282.742 503.4 R F2 +(sendmail)3.425 E F1(:)A F2(mail-)3.425 E(dr)117 515.4 Q(op)-.45 E F1(and)2.5 E +F2(mailname)2.5 E F1 5(.A)C F2(\214ng)211.54 515.4 Q(er)-.1 E F1 (program that uses the other \214elds is planned.)2.5 E F0 2.5(5.3.2. User)102 -583.8 R(database semantics)2.5 E F1 .996(When the re)142 600 R .995 +539.4 R(database semantics)2.5 E F1 .996(When the re)142 555.6 R .995 (writing rules submit an address to the local mailer)-.25 F 3.495(,t)-.4 G .995 -(he user name is passed)408.93 600 R .78(through the alias \214le.)117 612 R -.781 +(he user name is passed)408.93 555.6 R .78(through the alias \214le.)117 567.6 +R .781 (If no alias is found \(or if the alias points back to the same address\), the) 5.78 F 1.778(name \(with \231:maildrop\232 appended\) is then used as a k)117 -624 R 2.077 -.15(ey i)-.1 H 4.277(nt).15 G 1.777(he user database.)375.985 624 -R 1.777(If no match)6.777 F -(occurs \(or if the maildrop points at the same address\), forw)117 636 Q -(arding is tried.)-.1 E .55(If the \214rst tok)142 652.2 R .551(en of the user\ +579.6 R 2.077 -.15(ey i)-.1 H 4.277(nt).15 G 1.777(he user database.)375.985 +579.6 R 1.777(If no match)6.777 F +(occurs \(or if the maildrop points at the same address\), forw)117 591.6 Q +(arding is tried.)-.1 E .55(If the \214rst tok)142 607.8 R .551(en of the user\ name returned by ruleset 0 is an \231@\232 sign, the user database)-.1 F .626 -(lookup is skipped.)117 664.2 R .625 +(lookup is skipped.)117 619.8 R .625 (The intent is that the user database will act as a set of def)5.626 F .625 (aults for a cluster)-.1 F 1.533(\(in our case, the Computer Science Di)117 -676.2 R 1.533(vision\); mail sent to a speci\214c machine should ignore)-.25 F -(these def)117 688.2 Q(aults.)-.1 E .351 -(When mail is sent, the name of the sending user is look)142 704.4 R .351 +631.8 R 1.533(vision\); mail sent to a speci\214c machine should ignore)-.25 F +(these def)117 643.8 Q(aults.)-.1 E .351 +(When mail is sent, the name of the sending user is look)142 660 R .351 (ed up in the database.)-.1 F .351(If that user)5.351 F .04 -(has a \231mailname\232 record, the v)117 716.4 R .041 +(has a \231mailname\232 record, the v)117 672 R .041 (alue of that record is used as their outgoing name.)-.25 F -.15(Fo)5.041 G -2.541(re).15 G .041(xample, I)466.189 716.4 R EP +2.541(re).15 G .041(xample, I)466.189 672 R(might ha)117 684 Q .3 -.15(ve a r) +-.2 H(ecord:).15 E 25.94(eric:mailname Eric.Allman@CS.Berk)157 700.2 R(ele)-.1 +E -.65(y.)-.15 G(EDU).65 E(This w)117 716.4 Q +(ould cause my outgoing mail to be sent as Eric.Allman.)-.1 E EP %%Page: 48 43 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-48 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(might ha)117 96 -Q .3 -.15(ve a r)-.2 H(ecord:).15 E 25.94(eric:mailname Eric.Allman@CS.Berk)157 -112.2 R(ele)-.1 E -.65(y.)-.15 G(EDU).65 E(This w)117 128.4 Q -(ould cause my outgoing mail to be sent as Eric.Allman.)-.1 E .757 -(If a \231maildrop\232 is found for the user)142 144.6 R 3.257(,b)-.4 G .757 -(ut no corresponding \231maildrop\232 record e)301.588 144.6 R .757(xists, the) --.15 F 1.127(record \231:def)117 156.6 R 1.127(ault:mailname\232 is consulted.) +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .52 +(If a \231maildrop\232 is found for the user)142 96 R 3.019(,b)-.4 G .519 +(ut no corresponding \231mailname\232 record e)299.686 96 R .519(xists, the) +-.15 F 1.127(record \231:def)117 108 R 1.127(ault:mailname\232 is consulted.) -.1 F 1.127(If present, this is the name of a host to o)6.127 F -.15(ve)-.15 G -1.128(rride the).15 F .625(local host.)117 168.6 R -.15(Fo)5.625 G 3.125(re).15 -G .625(xample, in our case we w)185.515 168.6 R .625 -(ould set it to \231CS.Berk)-.1 F(ele)-.1 E -.65(y.)-.15 G 3.125(EDU\232. The) -.65 F(ef)3.125 E .625(fect is that)-.25 F(an)117 180.6 Q .881(yone kno)-.15 F -.882(wn in the database gets their outgoing mail stamped as \231user@CS.Berk) --.25 F(ele)-.1 E -.65(y.)-.15 G(EDU\232,).65 E -.2(bu)117 192.6 S 2.5(tp).2 G -(eople not listed in the database use the local hostname.)137.08 192.6 Q F0 2.5 -(5.3.3. Cr)102 218.6 R(eating the database)-.18 E/F2 7/Times-Bold@0 SF(17)223.2 -214.6 Q F1 .375(The user database is b)142 234.8 R .375(uilt from a te)-.2 F -.375(xt \214le using the)-.15 F/F3 10/Times-Italic@0 SF(mak)2.875 E(emap)-.1 E -F1 .375(utility \(in the distrib)2.875 F .375(ution in)-.2 F 1.039(the mak)117 -246.8 R 1.039(emap subdirectory\).)-.1 F 1.039(The te)6.039 F 1.038 +1.128(rride the).15 F .625(local host.)117 120 R -.15(Fo)5.625 G 3.125(re).15 G +.625(xample, in our case we w)185.515 120 R .625(ould set it to \231CS.Berk)-.1 +F(ele)-.1 E -.65(y.)-.15 G 3.125(EDU\232. The).65 F(ef)3.125 E .625 +(fect is that)-.25 F(an)117 132 Q .881(yone kno)-.15 F .882 +(wn in the database gets their outgoing mail stamped as \231user@CS.Berk)-.25 F +(ele)-.1 E -.65(y.)-.15 G(EDU\232,).65 E -.2(bu)117 144 S 2.5(tp).2 G +(eople not listed in the database use the local hostname.)137.08 144 Q F0 2.5 +(5.3.3. Cr)102 170 R(eating the database)-.18 E/F2 7/Times-Bold@0 SF(18)223.2 +166 Q F1 .375(The user database is b)142 186.2 R .375(uilt from a te)-.2 F .375 +(xt \214le using the)-.15 F/F3 10/Times-Italic@0 SF(mak)2.875 E(emap)-.1 E F1 +.375(utility \(in the distrib)2.875 F .375(ution in)-.2 F 1.039(the mak)117 +198.2 R 1.039(emap subdirectory\).)-.1 F 1.039(The te)6.039 F 1.038 (xt \214le is a series of lines corresponding to userdb records;)-.15 F 1.588 -(each line has a k)117 258.8 R 1.889 -.15(ey a)-.1 H 1.589(nd a v).15 F 1.589 +(each line has a k)117 210.2 R 1.889 -.15(ey a)-.1 H 1.589(nd a v).15 F 1.589 (alue separated by white space.)-.25 F 1.589(The k)6.589 F 1.889 -.15(ey i)-.1 -H 4.089(sa).15 G -.1(lwa)421.943 258.8 S 1.589(ys in the format).1 F -(described abo)117 270.8 Q .3 -.15(ve \212 f)-.15 H(or e).15 E(xample:)-.15 E -(eric:maildrop)157 287 Q .448 -(This \214le is normally installed in a system directory; for e)117 303.2 R +H 4.089(sa).15 G -.1(lwa)421.943 210.2 S 1.589(ys in the format).1 F +(described abo)117 222.2 Q .3 -.15(ve \212 f)-.15 H(or e).15 E(xample:)-.15 E +(eric:maildrop)157 238.4 Q .448 +(This \214le is normally installed in a system directory; for e)117 254.6 R .447(xample, it might be called)-.15 F F3(/etc/user)2.947 E(db)-.37 E F1(.)A -1.6 -.8(To m)117 315.2 T(ak).8 E 2.5(et)-.1 G(he database v)156.65 315.2 Q -(ersion of the map, run the program:)-.15 E(mak)157 331.4 Q +1.6 -.8(To m)117 266.6 T(ak).8 E 2.5(et)-.1 G(he database v)156.65 266.6 Q +(ersion of the map, run the program:)-.15 E(mak)157 282.8 Q (emap btree /etc/userdb)-.1 E(.db < /etc/userdb)-.4 E .077 -(Then create a con\214g \214le that uses this.)117 347.6 R -.15(Fo)5.077 G -2.577(re).15 G .077(xample, using the V8 M4 con\214guration, include the) -296.531 347.6 R(follo)117 359.6 Q(wing line in your .mc \214le:)-.25 E -(de\214ne\(\222confUSERDB_SPEC\264, /etc/userdb)157 375.8 Q(.db\))-.4 E F0 2.5 -(6. O)72 404 R(THER CONFIGURA)-.4 E(TION)-.95 E F1 .907 +(Then create a con\214g \214le that uses this.)117 299 R -.15(Fo)5.077 G 2.577 +(re).15 G .077(xample, using the V8 M4 con\214guration, include the)296.531 299 +R(follo)117 311 Q(wing line in your .mc \214le:)-.25 E +(de\214ne\(\222confUSERDB_SPEC\264, /etc/userdb)157 327.2 Q(.db\))-.4 E F0 2.5 +(6. O)72 355.4 R(THER CONFIGURA)-.4 E(TION)-.95 E F1 .907 (There are some con\214guration changes that can be made by recompiling)112 -420.2 R F3(sendmail)3.407 E F1 5.907(.T)C .906(his section)460.594 420.2 R +371.6 R F3(sendmail)3.407 E F1 5.907(.T)C .906(his section)460.594 371.6 R (describes what changes can be made and what has to be modi\214ed to mak)87 -432.2 Q 2.5(et)-.1 G(hem.)387.95 432.2 Q F0 2.5(6.1. P)87 456.2 R +383.6 Q 2.5(et)-.1 G(hem.)387.95 383.6 Q F0 2.5(6.1. P)87 407.6 R (arameters in sr)-.1 E(c/Mak)-.18 E(e\214le)-.1 E F1 .92 -(These parameters are intended to describe the compilation en)127 472.4 R .92 +(These parameters are intended to describe the compilation en)127 423.8 R .92 (vironment, not site polic)-.4 F 2.22 -.65(y, a)-.15 H(nd).65 E -(should normally be de\214ned in src/Mak)102 484.4 Q(e\214le.)-.1 E 39.5 -(NDBM If)102 500.6 R .665(set, the ne)3.165 F 3.165(wv)-.25 G .664 -(ersion of the DBM library that allo)240.41 500.6 R .664 -(ws multiple databases will be)-.25 F 2.542(used. If)174 512.6 R .042 +(should normally be de\214ned in src/Mak)102 435.8 Q(e\214le.)-.1 E 39.5 +(NDBM If)102 452 R .665(set, the ne)3.165 F 3.165(wv)-.25 G .664 +(ersion of the DBM library that allo)240.41 452 R .664 +(ws multiple databases will be)-.25 F 2.542(used. If)174 464 R .042 (neither NDBM nor NEWDB are set, a much less ef)2.542 F .043 -(\214cient method of alias)-.25 F(lookup is used.)174 524.6 Q 32.84(NEWDB If) -102 540.8 R .142(set, use the ne)2.642 F 2.642(wd)-.25 G .142 -(atabase package from Berk)254.44 540.8 R(ele)-.1 E 2.641(y\()-.15 G .141 -(from 4.4BSD\).)385.817 540.8 R .141(This package)5.141 F .266 -(is substantially f)174 552.8 R .267(aster than DBM or NDBM.)-.1 F .267 -(If NEWDB and NDBM are both set,)5.267 F F3(sendmail)174 564.8 Q F1 +(\214cient method of alias)-.25 F(lookup is used.)174 476 Q 32.84(NEWDB If)102 +492.2 R .142(set, use the ne)2.642 F 2.642(wd)-.25 G .142 +(atabase package from Berk)254.44 492.2 R(ele)-.1 E 2.641(y\()-.15 G .141 +(from 4.4BSD\).)385.817 492.2 R .141(This package)5.141 F .266 +(is substantially f)174 504.2 R .267(aster than DBM or NDBM.)-.1 F .267 +(If NEWDB and NDBM are both set,)5.267 F F3(sendmail)174 516.2 Q F1 (will read DBM \214les, b)2.5 E(ut will create and use NEWDB \214les.)-.2 E -53.39(NIS Include)102 581 R .12(support for NIS.)2.62 F .119 +53.39(NIS Include)102 532.4 R .12(support for NIS.)2.62 F .119 (If set together with)5.119 F F3(both)2.619 E F1 .119(NEWDB and NDBM,)2.619 F F3(sendmail)2.619 E F1 1.076 -(will create both DBM and NEWDB \214les if and only if the \214le /v)174 593 R -(ar/yp/Mak)-.25 E(e\214le)-.1 E -.15(ex)174 605 S .293(ists and is readable.) -.15 F .293(This is intended for compatibility with Sun Microsystems')5.293 F F3 -(mkalias)174 617 Q F1(program used on YP masters.)2.5 E 25.05(SYSTEM5 Set)102 -633.2 R(all of the compilation parameters appropriate for System V)2.5 E(.) --1.29 E 36.72(LOCKF Use)102 649.4 R .299(System V)2.799 F F0(lockf)2.799 E F1 -.299(instead of Berk)2.799 F(ele)-.1 E(y)-.15 E F0(\215ock)2.799 E F1 5.299(.D) -C .3(ue to the highly unusual seman-)375.012 649.4 R 1.572 -(tics of locks across forks in)174 661.4 R F0(lockf)4.072 E F1 4.072(,t)C 1.571 -(his should ne)325.544 661.4 R -.15(ve)-.25 G 4.071(rb).15 G 4.071(eu)402.907 -661.4 S 1.571(sed unless absolutely)416.418 661.4 R .32 LW 76 671 72 671 DL 80 -671 76 671 DL 84 671 80 671 DL 88 671 84 671 DL 92 671 88 671 DL 96 671 92 671 -DL 100 671 96 671 DL 104 671 100 671 DL 108 671 104 671 DL 112 671 108 671 DL -116 671 112 671 DL 120 671 116 671 DL 124 671 120 671 DL 128 671 124 671 DL 132 -671 128 671 DL 136 671 132 671 DL 140 671 136 671 DL 144 671 140 671 DL 148 671 -144 671 DL 152 671 148 671 DL 156 671 152 671 DL 160 671 156 671 DL 164 671 160 -671 DL 168 671 164 671 DL 172 671 168 671 DL 176 671 172 671 DL 180 671 176 671 -DL 184 671 180 671 DL 188 671 184 671 DL 192 671 188 671 DL 196 671 192 671 DL -200 671 196 671 DL 204 671 200 671 DL 208 671 204 671 DL 212 671 208 671 DL 216 -671 212 671 DL/F4 5/Times-Roman@0 SF(17)93.6 681.4 Q/F5 8/Times-Roman@0 SF .289 -(These instructions are kno)3.2 J .289(wn to be incomplete.)-.2 F 2.289(Af) -4.289 G .289(uture v)266.464 684.6 R .289 -(ersion of the user database is planned including things such as \214n-)-.12 F -(ger service \212 and good documentation.)72 694.2 Q EP +(will create both DBM and NEWDB \214les if and only if the \214le /v)174 544.4 +R(ar/yp/Mak)-.25 E(e\214le)-.1 E -.15(ex)174 556.4 S .293 +(ists and is readable.).15 F .293 +(This is intended for compatibility with Sun Microsystems')5.293 F F3(mkalias) +174 568.4 Q F1(program used on YP masters.)2.5 E 25.05(SYSTEM5 Set)102 584.6 R +(all of the compilation parameters appropriate for System V)2.5 E(.)-1.29 E +36.72(LOCKF Use)102 600.8 R .299(System V)2.799 F F0(lockf)2.799 E F1 .299 +(instead of Berk)2.799 F(ele)-.1 E(y)-.15 E F0(\215ock)2.799 E F1 5.299(.D)C .3 +(ue to the highly unusual seman-)375.012 600.8 R .052 +(tics of locks across forks in)174 612.8 R F0(lockf)2.552 E F1 2.551(,t)C .051 +(his should ne)314.903 612.8 R -.15(ve)-.25 G 2.551(rb).15 G 2.551(eu)387.706 +612.8 S .051(sed unless absolutely nec-)399.697 612.8 R(essary)174 624.8 Q 5 +(.S)-.65 G(et by def)211.4 624.8 Q(ault if SYSTEM5 is set.)-.1 E 33.94 +(SYS5TZ Use)102 641 R(System V time zone semantics.)2.5 E(HASINITGR)102 657.2 Q +(OUPS)-.4 E 2.391(Set this if your system has the)174 669.2 R F3(initgr)4.892 E +(oups\(\))-.45 E F1 2.392(call \(if you ha)4.892 F 2.692 -.15(ve m)-.2 H 2.392 +(ultiple group).15 F .32 LW 76 678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 +80 678.8 DL 88 678.8 84 678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 +678.8 96 678.8 DL 104 678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 +678.8 DL 116 678.8 112 678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL +128 678.8 124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 +136 678.8 DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 678.8 +DL 156 678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 678.8 160 678.8 DL 168 +678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 678.8 DL 180 678.8 176 +678.8 DL 184 678.8 180 678.8 DL 188 678.8 184 678.8 DL 192 678.8 188 678.8 DL +196 678.8 192 678.8 DL 200 678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 +204 678.8 DL 212 678.8 208 678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 +SF(18)93.6 689.2 Q/F5 8/Times-Roman@0 SF .289(These instructions are kno)3.2 J +.289(wn to be incomplete.)-.2 F 2.289(Af)4.289 G .289(uture v)266.464 692.4 R +.289(ersion of the user database is planned including things such as \214n-) +-.12 F(ger service \212 and good documentation.)72 702 Q EP %%Page: 49 44 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-49)452.9 60 Q/F1 10/Times-Roman@0 SF(necessary)174 96 Q 5(.S)-.65 G -(et by def)225.28 96 Q(ault if SYSTEM5 is set.)-.1 E 33.94(SYS5TZ Use)102 112.2 -R(System V time zone semantics.)2.5 E(HASINITGR)102 128.4 Q(OUPS)-.4 E .812 -(Set this if your system has the)174 140.4 R/F2 10/Times-Italic@0 SF(initgr) -3.312 E(oups\(\))-.45 E F1 .812(call \(if you ha)3.312 F 1.112 -.15(ve m)-.2 H -.813(ultiple group sup-).15 F 2.5(port\). This)174 152.4 R(is the def)2.5 E -(ault if SYSTEM5 is)-.1 E F2(not)2.5 E F1(de\214ned or if you are on HPUX.)2.5 -E(HASUN)102 168.6 Q 13.19(AME Set)-.35 F .89(this if you ha)3.39 F 1.19 -.15 -(ve t)-.2 H(he).15 E F2(uname)3.39 E F1 .89 -(\(2\) system call \(or corresponding library routine\).)B(Set by def)174 180.6 -Q(ault if SYSTEM5 is set.)-.1 E(HASST)102 196.8 Q -1.11(AT)-.93 G 15.42(FS Set) +(SMM:08-49)452.9 60 Q/F1 10/Times-Roman@0 SF 2.5(support\). This)174 96 R +(is the def)2.5 E(ault if SYSTEM5 is)-.1 E/F2 10/Times-Italic@0 SF(not)2.5 E F1 +(de\214ned or if you are on HPUX.)2.5 E(HASUN)102 112.2 Q 13.19(AME Set)-.35 F +.89(this if you ha)3.39 F 1.19 -.15(ve t)-.2 H(he).15 E F2(uname)3.39 E F1 .89 +(\(2\) system call \(or corresponding library routine\).)B(Set by def)174 124.2 +Q(ault if SYSTEM5 is set.)-.1 E(HASST)102 140.4 Q -1.11(AT)-.93 G 15.42(FS Set) 1.11 F .202(this if you ha)2.701 F .502 -.15(ve t)-.2 H(he).15 E F2(statfs) 2.702 E F1 .202(\(2\) system call.)B .202(This will allo)5.202 F 2.702(wy)-.25 -G .202(ou to gi)425.822 196.8 R .502 -.15(ve a t)-.25 H(empo-).15 E .108 -(rary f)174 208.8 R .108(ailure message to incoming SMTP email when you are lo) --.1 F 2.608(wo)-.25 G 2.608(nd)441.188 208.8 S .107(isk space.)453.796 208.8 R -(It)5.107 E(is set by def)174 220.8 Q(ault on 4.4BSD and OSF/1 systems.)-.1 E -(HASUST)102 237 Q 21.54 -1.11(AT S)-.93 H .593(et if you ha)1.11 F .894 -.15 +G .202(ou to gi)425.822 140.4 R .502 -.15(ve a t)-.25 H(empo-).15 E .108 +(rary f)174 152.4 R .108(ailure message to incoming SMTP email when you are lo) +-.1 F 2.608(wo)-.25 G 2.608(nd)441.188 152.4 S .107(isk space.)453.796 152.4 R +(It)5.107 E(is set by def)174 164.4 Q(ault on 4.4BSD and OSF/1 systems.)-.1 E +(HASUST)102 180.6 Q 21.54 -1.11(AT S)-.93 H .593(et if you ha)1.11 F .894 -.15 (ve t)-.2 H(he).15 E F2(ustat)3.094 E F1 .594(\(2\) system call.)B .594 (This is an alternati)5.594 F .894 -.15(ve i)-.25 H .594(mplementation of).15 F -.525(disk space control.)174 249 R -1.1(Yo)5.525 G 3.025(us)1.1 G .525 -(hould only set one of HASST)278.32 249 R -1.11(AT)-.93 G .525(FS or HASUST) -1.11 F -.83 -1.11(AT ;)-.93 H(the)4.135 E(\214rst is preferred.)174 261 Q(_P) -102 277.2 Q -1.11(AT)-.92 G(H_SENDMAILCF)1.11 E -(The pathname of the sendmail.cf \214le.)174 289.2 Q(_P)102 305.4 Q -1.11(AT) --.92 G(H_SENDMAILPID)1.11 E(The pathname of the sendmail.pid \214le.)174 317.4 -Q 26.17(LA_TYPE The)102 333.6 R(load a)2.5 E -.15(ve)-.2 G(rage type.).15 E -(Details are described belo)5 E -.65(w.)-.25 G 1.146(The are four b)102 349.8 R -1.146(uilt-in w)-.2 F 1.146(ays of computing the load a)-.1 F -.15(ve)-.2 G -(rage.).15 E F2(Sendmail)6.147 E F1 1.147(tries to auto-con\214gure them)3.647 -F .267(based on imperfect guesses; you can select one using the)102 361.8 R F2 -(cc)2.766 E F1(option)2.766 E F0(\255DLA_TYPE=)2.766 E F2(type)A F1 2.766(,w)C -(here)467.364 361.8 Q F2(type)2.766 E F1(is:)102 373.8 Q 34.51(LA_INT The)102 -390 R -.1(ke)2.978 G .478(rnel stores the load a).1 F -.15(ve)-.2 G .479 +.525(disk space control.)174 192.6 R -1.1(Yo)5.525 G 3.025(us)1.1 G .525 +(hould only set one of HASST)278.32 192.6 R -1.11(AT)-.93 G .525(FS or HASUST) +1.11 F -.83 -1.11(AT ;)-.93 H(the)4.135 E(\214rst is preferred.)174 204.6 Q(_P) +102 220.8 Q -1.11(AT)-.92 G(H_SENDMAILCF)1.11 E +(The pathname of the sendmail.cf \214le.)174 232.8 Q(_P)102 249 Q -1.11(AT)-.92 +G(H_SENDMAILPID)1.11 E(The pathname of the sendmail.pid \214le.)174 261 Q 26.17 +(LA_TYPE The)102 277.2 R(load a)2.5 E -.15(ve)-.2 G(rage type.).15 E +(Details are described belo)5 E -.65(w.)-.25 G .342(The are se)102 293.4 R -.15 +(ve)-.25 G .342(ral b).15 F .342(uilt-in w)-.2 F .342 +(ays of computing the load a)-.1 F -.15(ve)-.2 G(rage.).15 E F2(Sendmail)5.342 +E F1 .343(tries to auto-con\214gure them)2.842 F .267 +(based on imperfect guesses; you can select one using the)102 305.4 R F2(cc) +2.766 E F1(option)2.766 E F0(\255DLA_TYPE=)2.766 E F2(type)A F1 2.766(,w)C +(here)467.364 305.4 Q F2(type)2.766 E F1(is:)102 317.4 Q 34.51(LA_INT The)102 +333.6 R -.1(ke)2.978 G .478(rnel stores the load a).1 F -.15(ve)-.2 G .479 (rage in the k).15 F .479(ernel as an array of long inte)-.1 F 2.979(gers. The) --.15 F(actual v)174 402 Q(alues are scaled by a f)-.25 E(actor FSCALE \(def)-.1 -E(ault 256\).)-.1 E(LA_SHOR)102 418.2 Q 21.49(TT)-.6 G .331(he k)180.11 418.2 R -.331(ernel stores the load a)-.1 F -.15(ve)-.2 G .331(rage in the k).15 F .33 -(ernel as an array of short inte)-.1 F 2.83(gers. The)-.15 F(actual v)174 430.2 -Q(alues are scaled by a f)-.25 E(actor FSCALE \(def)-.1 E(ault 256\).)-.1 E -(LA_FLO)102 446.4 Q 22.63 -1.11(AT T)-.35 H 1.117(he k)1.11 F 1.117 +-.15 F(actual v)174 345.6 Q(alues are scaled by a f)-.25 E(actor FSCALE \(def) +-.1 E(ault 256\).)-.1 E(LA_SHOR)102 361.8 Q 21.49(TT)-.6 G .331(he k)180.11 +361.8 R .331(ernel stores the load a)-.1 F -.15(ve)-.2 G .331(rage in the k).15 +F .33(ernel as an array of short inte)-.1 F 2.83(gers. The)-.15 F(actual v)174 +373.8 Q(alues are scaled by a f)-.25 E(actor FSCALE \(def)-.1 E(ault 256\).)-.1 +E(LA_FLO)102 390 Q 22.63 -1.11(AT T)-.35 H 1.117(he k)1.11 F 1.117 (ernel stores the load a)-.1 F -.15(ve)-.2 G 1.117(rage in the k).15 F 1.117 -(ernel as an array of double precision)-.1 F(\215oats.)174 458.4 Q 25.05 -(LA_SUBR Call)102 474.6 R(the)2.5 E F2 -.1(ge)2.5 G(tloadavg).1 E F1 +(ernel as an array of double precision)-.1 F(\215oats.)174 402 Q(LA_MA)102 +418.2 Q 21.57(CH Use)-.4 F(MA)2.5 E(CH-style load a)-.4 E -.15(ve)-.2 G(rages.) +.15 E 25.05(LA_SUBR Call)102 434.4 R(the)2.5 E F2 -.1(ge)2.5 G(tloadavg).1 E F1 (routine to get the load a)2.5 E -.15(ve)-.2 G(rage as an array of doubles.).15 -E(LA_ZER)102 490.8 Q 27.96(OA)-.4 G -.1(lwa)181.22 490.8 S +E(LA_ZER)102 450.6 Q 27.96(OA)-.4 G -.1(lwa)181.22 450.6 S (ys return zero as the load a).1 E -.15(ve)-.2 G 2.5(rage. This).15 F(is the f) -2.5 E(allback case.)-.1 E .494(If type)102 507 R/F3 9/Times-Roman@0 SF(LA_INT) -2.994 E F1(,)A F3(LA_SHOR)2.994 E(T)-.54 E F1 2.994(,o)C(r)224.806 507 Q F3 -(LA_FLO)2.993 E -.999(AT)-.315 G F1 .493 +2.5 E(allback case.)-.1 E .494(If type)102 466.8 R/F3 9/Times-Roman@0 SF +(LA_INT)2.994 E F1(,)A F3(LA_SHOR)2.994 E(T)-.54 E F1 2.994(,o)C(r)224.806 +466.8 Q F3(LA_FLO)2.993 E -.999(AT)-.315 G F1 .493 (is speci\214ed, you may also need to specify)3.992 F F3(_P)2.993 E -.999(AT) --.828 G(H_UNIX).999 E F1 .948(\(the path to your system binary\) and)102 519 R -F3(LA_A)3.448 E(VENR)-1.215 E(UN)-.36 E F1 .949(\(the name of the v)3.448 F -.949(ariable containing the load)-.25 F -2.25 -.2(av e)102 531 T(rage in the k) -.2 E(ernel; usually \231_a)-.1 E -.15(ve)-.2 G(nrun\232 or \231a).15 E -.15(ve) --.2 G(nrun\232\).).15 E 1.44(There are also se)127 547.2 R -.15(ve)-.25 G 1.439 +-.828 G(H_UNIX).999 E F1 .948(\(the path to your system binary\) and)102 478.8 +R F3(LA_A)3.448 E(VENR)-1.215 E(UN)-.36 E F1 .949(\(the name of the v)3.448 F +.949(ariable containing the load)-.25 F -2.25 -.2(av e)102 490.8 T +(rage in the k).2 E(ernel; usually \231_a)-.1 E -.15(ve)-.2 G +(nrun\232 or \231a).15 E -.15(ve)-.2 G(nrun\232\).).15 E 1.44 +(There are also se)127 507 R -.15(ve)-.25 G 1.439 (ral compilation \215ags to indicate the en).15 F 1.439 -(vironment such as \231_AIX3\232 and)-.4 F 2.5(\231_SCO_unix_\232. See)102 -559.2 R(the READ_ME \214le for the latest scoop on these \215ags.)2.5 E F0 2.5 -(6.2. P)87 583.2 R(arameters in sr)-.1 E(c/conf)-.18 E(.h)-.15 E F1 -.15(Pa)127 -599.4 S .895(rameters and compilation options are de\214ned in conf.h.).15 F -.896(Most of these need not normally)5.895 F .193(be tweak)102 611.4 R .192 +(vironment such as \231_AIX3\232 and)-.4 F 2.5(\231_SCO_unix_\232. See)102 519 +R(the READ_ME \214le for the latest scoop on these \215ags.)2.5 E F0 2.5 +(6.2. P)87 543 R(arameters in sr)-.1 E(c/conf)-.18 E(.h)-.15 E F1 -.15(Pa)127 +559.2 S .895(rameters and compilation options are de\214ned in conf.h.).15 F +.896(Most of these need not normally)5.895 F .193(be tweak)102 571.2 R .192 (ed; common parameters are all in sendmail.cf.)-.1 F(Ho)5.192 E(we)-.25 E -.15 (ve)-.25 G .992 -.4(r, t).15 H .192(he sizes of certain primiti).4 F .492 -.15 -(ve ve)-.25 H(c-).15 E(tors, etc., are included in this \214le.)102 623.4 Q +(ve ve)-.25 H(c-).15 E(tors, etc., are included in this \214le.)102 583.2 Q (The numbers follo)5 E(wing the parameters are their def)-.25 E(ault v)-.1 E -(alue.)-.25 E 1.909(MAXLINE [1024])102 639.6 R 1.909 -(The maximum line length of an)190.309 639.6 R 4.409(yi)-.15 G 1.909 -(nput line.)338.273 639.6 R 1.91(If message lines e)6.909 F 1.91(xceed this) --.15 F .575(length the)188.4 651.6 R 3.075(yw)-.15 G .575 -(ill still be processed correctly; ho)243.84 651.6 R(we)-.25 E -.15(ve)-.25 G +(alue.)-.25 E 1.909(MAXLINE [1024])102 599.4 R 1.909 +(The maximum line length of an)190.309 599.4 R 4.409(yi)-.15 G 1.909 +(nput line.)338.273 599.4 R 1.91(If message lines e)6.909 F 1.91(xceed this) +-.15 F .575(length the)188.4 611.4 R 3.075(yw)-.15 G .575 +(ill still be processed correctly; ho)243.84 611.4 R(we)-.25 E -.15(ve)-.25 G 1.375 -.4(r, h).15 H .575(eader lines, con\214gura-).4 F (tion \214le lines, alias lines, etc., must \214t within this limit.)188.4 -663.6 Q(MAXN)102 679.8 Q(AME [256])-.35 E(The maximum length of an)9.82 E 2.5 -(yn)-.15 G(ame, such as a host or a user name.)309.63 679.8 Q .23(MAXPV [40]) -102 696 R .231(The maximum number of parameters to an)188.63 696 R 2.731(ym) --.15 G(ailer)376.455 696 Q 5.231(.T)-.55 G .231(his limits the number of) -407.516 696 R .376(recipients that may be passed in one transaction.)188.4 708 -R .375(It can be set to an)5.376 F 2.875(ya)-.15 G(rbitrary)474.01 708 Q .875 -(number abo)188.4 720 R 1.175 -.15(ve a)-.15 H .876(bout 10, since).15 F F2 -(sendmail)3.376 E F1 .876(will break up a deli)3.376 F -.15(ve)-.25 G .876 -(ry into smaller).15 F EP +623.4 Q(MAXN)102 639.6 Q(AME [256])-.35 E(The maximum length of an)9.82 E 2.5 +(yn)-.15 G(ame, such as a host or a user name.)309.63 639.6 Q .23(MAXPV [40]) +102 655.8 R .231(The maximum number of parameters to an)188.63 655.8 R 2.731 +(ym)-.15 G(ailer)376.455 655.8 Q 5.231(.T)-.55 G .231(his limits the number of) +407.516 655.8 R .376(recipients that may be passed in one transaction.)188.4 +667.8 R .375(It can be set to an)5.376 F 2.875(ya)-.15 G(rbitrary)474.01 667.8 +Q .875(number abo)188.4 679.8 R 1.175 -.15(ve a)-.15 H .876(bout 10, since).15 +F F2(sendmail)3.376 E F1 .876(will break up a deli)3.376 F -.15(ve)-.25 G .876 +(ry into smaller).15 F .887(batches as needed.)188.4 691.8 R 3.387(Ah)5.887 G +.887(igher number may reduce load on your system, ho)285.808 691.8 R(w-)-.25 E +-2.15 -.25(ev e)188.4 703.8 T -.55(r.).25 G EP %%Page: 50 45 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 193.36(SMM:08-50 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF .887 -(batches as needed.)188.4 96 R 3.387(Ah)5.887 G .887 -(igher number may reduce load on your system, ho)285.808 96 R(w-)-.25 E -2.15 --.25(ev e)188.4 108 T -.55(r.).25 G(MAXA)102 124.2 Q -.18(TO)-1.11 G 2.558(M[) -.18 G 8.26(100] The)159.368 124.2 R .058(maximum number of atoms \(tok)2.558 F -.059(ens\) in a single address.)-.1 F -.15(Fo)5.059 G 2.559(re).15 G .059 -(xample, the)457.281 124.2 R(address \231eric@CS.Berk)188.4 136.2 Q(ele)-.1 E --.65(y.)-.15 G(EDU\232 is se).65 E -.15(ve)-.25 G 2.5(na).15 G(toms.)367.93 -136.2 Q .113(MAXMAILERS [25])102 152.4 R .112(The maximum number of mailers th\ -at may be de\214ned in the con\214guration \214le.).02 F(MAXR)102 168.6 Q -(WSETS [100])-.55 E(The maximum number of re).01 E -(writing sets that may be de\214ned.)-.25 E(MAXPRIORITIES [25])102 184.8 Q -2.481(The maximum number of v)188.4 196.8 R 2.482 -(alues for the \231Precedence:\232 \214eld that may be)-.25 F -(de\214ned \(using the)188.4 208.8 Q F0(P)2.5 E F1(line in sendmail.cf\).)2.5 E -(MAXUSERENVIR)102 225 Q(ON [40])-.4 E .399 -(The maximum number of items in the user en)188.4 237 R .399 -(vironment that will be passed to)-.4 F(subordinate mailers.)188.4 249 Q -.1 -(QU)102 265.2 S(EUESIZE [1000]).1 E +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF(MAXA)102 96 Q +-.18(TO)-1.11 G 2.558(M[).18 G 8.26(100] The)159.368 96 R .058 +(maximum number of atoms \(tok)2.558 F .059(ens\) in a single address.)-.1 F +-.15(Fo)5.059 G 2.559(re).15 G .059(xample, the)457.281 96 R +(address \231eric@CS.Berk)188.4 108 Q(ele)-.1 E -.65(y.)-.15 G(EDU\232 is se) +.65 E -.15(ve)-.25 G 2.5(na).15 G(toms.)367.93 108 Q .113(MAXMAILERS [25])102 +124.2 R .112(The maximum number of mailers that may be de\214ned in the con\ +\214guration \214le.).02 F(MAXR)102 140.4 Q(WSETS [100])-.55 E +(The maximum number of re).01 E(writing sets that may be de\214ned.)-.25 E +(MAXPRIORITIES [25])102 156.6 Q 2.481(The maximum number of v)188.4 168.6 R +2.482(alues for the \231Precedence:\232 \214eld that may be)-.25 F +(de\214ned \(using the)188.4 180.6 Q F0(P)2.5 E F1(line in sendmail.cf\).)2.5 E +(MAXUSERENVIR)102 196.8 Q(ON [40])-.4 E .399 +(The maximum number of items in the user en)188.4 208.8 R .399 +(vironment that will be passed to)-.4 F(subordinate mailers.)188.4 220.8 Q -.1 +(QU)102 237 S(EUESIZE [1000]).1 E (The maximum number of entries that will be processed in a single queue run.) -2.35 E(MAXMXHOSTS [20])102 281.4 Q -(The maximum number of MX records we will accept for an)188.4 293.4 Q 2.5(ys) --.15 G(ingle host.)439.03 293.4 Q 2.85(An)102 309.6 S .35 -(umber of other compilation options e)117.07 309.6 R 2.851(xist. These)-.15 F +2.35 E(MAXMXHOSTS [20])102 253.2 Q +(The maximum number of MX records we will accept for an)188.4 265.2 Q 2.5(ys) +-.15 G(ingle host.)439.03 265.2 Q 2.85(An)102 281.4 S .35 +(umber of other compilation options e)117.07 281.4 R 2.851(xist. These)-.15 F .351(specify whether or not speci\214c code should be)2.851 F(compiled in.)102 -321.6 Q(DEB)102 337.8 Q 49.56(UG If)-.1 F 1.227(set, deb)3.727 F 1.227 +293.4 Q(DEB)102 309.6 Q 49.56(UG If)-.1 F 1.227(set, deb)3.727 F 1.227 (ugging information is compiled in.)-.2 F 2.826 -.8(To a)6.226 H 1.226 -(ctually get the deb).8 F(ugging)-.2 E .4(output, the)188.4 349.8 R F0<ad64>2.9 +(ctually get the deb).8 F(ugging)-.2 E .4(output, the)188.4 321.6 R F0<ad64>2.9 E F1 .4(\215ag must be used.)2.9 F F0 .4(WE STR)5.4 F(ONGL)-.3 E 2.9(YR)-.92 G -.4(ECOMMEND THA)412.05 349.8 R(T)-.95 E .97(THIS BE LEFT ON.)188.4 361.8 R F1 +.4(ECOMMEND THA)412.05 321.6 R(T)-.95 E .97(THIS BE LEFT ON.)188.4 333.6 R F1 .97(Some people, belie)5.97 F .97(ving that it w)-.25 F .97 -(as a security hole \(it)-.1 F -.1(wa)188.4 373.8 S(s, once\) ha).1 E .3 -.15 -(ve t)-.2 H(urned it of).15 E 2.5(fa)-.25 G(nd thus crippled deb)309.05 373.8 Q -(uggers.)-.2 E 41.69(NETINET If)102 390 R .829 +(as a security hole \(it)-.1 F -.1(wa)188.4 345.6 S(s, once\) ha).1 E .3 -.15 +(ve t)-.2 H(urned it of).15 E 2.5(fa)-.25 G(nd thus crippled deb)309.05 345.6 Q +(uggers.)-.2 E 41.69(NETINET If)102 361.8 R .829 (set, support for Internet protocol netw)3.329 F .829(orking is compiled in.) --.1 F(Pre)5.829 E .83(vious v)-.25 F(er)-.15 E(-)-.2 E .178(sions of)188.4 402 -R/F2 10/Times-Italic@0 SF(sendmail)2.678 E F1 .178(referred to this as)2.678 F -/F3 9/Times-Roman@0 SF -.36(DA)2.678 G(EMON).36 E F1 2.677(;t)C .177 -(his old usage is no)381.715 402 R 2.677(wi)-.25 G(ncorrect.)468.74 402 Q 48.35 -(NETISO If)102 418.2 R .142(set, support for ISO protocol netw)2.642 F .143 +-.1 F(Pre)5.829 E .83(vious v)-.25 F(er)-.15 E(-)-.2 E .178(sions of)188.4 +373.8 R/F2 10/Times-Italic@0 SF(sendmail)2.678 E F1 .178(referred to this as) +2.678 F/F3 9/Times-Roman@0 SF -.36(DA)2.678 G(EMON).36 E F1 2.677(;t)C .177 +(his old usage is no)381.715 373.8 R 2.677(wi)-.25 G(ncorrect.)468.74 373.8 Q +48.35(NETISO If)102 390 R .142(set, support for ISO protocol netw)2.642 F .143 (orking is compiled in \(it may be appropri-)-.1 F -(ate to #de\214ne this in the Mak)188.4 430.2 Q(e\214le instead of conf.h\).) --.1 E 63.35(LOG If)102 446.4 R .5(set, the)3 F F2(syslo)3 E(g)-.1 E F1 .5 +(ate to #de\214ne this in the Mak)188.4 402 Q(e\214le instead of conf.h\).)-.1 +E 63.35(LOG If)102 418.2 R .5(set, the)3 F F2(syslo)3 E(g)-.1 E F1 .5 (routine in use at some sites is used.)3 F .5(This mak)5.5 F .5(es an informa-) --.1 F .504(tional log record for each message processed, and mak)188.4 458.4 R +-.1 F .504(tional log record for each message processed, and mak)188.4 430.2 R .504(es a higher priority log)-.1 F(record for internal system errors.)188.4 -470.4 Q(MA)102 486.6 Q 16.12(TCHGECOS Compile)-1.11 F 3.555 +442.2 Q(MA)102 458.4 Q 16.12(TCHGECOS Compile)-1.11 F 3.555 (in the code to do `)6.055 F 3.555(`fuzzy matching')-.74 F 6.055('o)-.74 G -6.055(nt)404.22 486.6 S 3.555(he GECOS \214eld in)418.055 486.6 R 2.5 -(/etc/passwd. This)188.4 498.6 R(also requires that option G be turned on.)2.5 -E -.35(NA)102 514.8 S 18.15(MED_BIND Compile).35 F .412 +6.055(nt)404.22 458.4 S 3.555(he GECOS \214eld in)418.055 458.4 R 2.5 +(/etc/passwd. This)188.4 470.4 R(also requires that option G be turned on.)2.5 +E -.35(NA)102 486.6 S 18.15(MED_BIND Compile).35 F .412 (in code to use the Berk)2.912 F(ele)-.1 E 2.913(yI)-.15 G .413 -(nternet Name Domain \(BIND\) serv)342.405 514.8 R .413(er to)-.15 F(resolv) -188.4 526.8 Q 2.5(eT)-.15 G(CP/IP host names.)225.74 526.8 Q(NO)102 543 Q 38.76 -(TUNIX If)-.4 F .248 +(nternet Name Domain \(BIND\) serv)342.405 486.6 R .413(er to)-.15 F(resolv) +188.4 498.6 Q 2.5(eT)-.15 G(CP/IP host names.)225.74 498.6 Q(NO)102 514.8 Q +38.76(TUNIX If)-.4 F .248 (you are using a non-UNIX mail format, you can set this \215ag to turn of)2.748 -F 2.747(fs)-.25 G(pe-)491.23 543 Q -(cial processing of UNIX-style \231From \232 lines.)188.4 555 Q -.1(QU)102 -571.2 S 50.12(EUE This).1 F 1.559 +F 2.747(fs)-.25 G(pe-)491.23 514.8 Q +(cial processing of UNIX-style \231From \232 lines.)188.4 526.8 Q -.1(QU)102 +543 S 50.12(EUE This).1 F 1.559 (\215ag should be set to compile in the queueing code.)4.059 F 1.56 (If this is not set,)6.56 F (mailers must accept the mail immediately or it will be returned to the sender) -188.4 583.2 Q(.)-.55 E(SETPR)102 599.4 Q 12.63(OCTITLE If)-.4 F(de\214ned,) -3.881 E F2(sendmail)3.881 E F1 1.381(will change its)3.881 F F2(ar)3.881 E(gv) --.37 E F1 1.381(array to indicate its current status.)3.881 F .206 -(This can be used in conjunction with the)188.4 611.4 R F2(ps)2.707 E F1 .207 -(command to \214nd out just what it')2.707 F(s)-.55 E(up to.)188.4 623.4 Q -57.78(SMTP If)102 639.6 R .756(set, the code to handle user and serv)3.256 F +188.4 555 Q(.)-.55 E(SETPR)102 571.2 Q 12.63(OCTITLE If)-.4 F(de\214ned,)3.881 +E F2(sendmail)3.881 E F1 1.381(will change its)3.881 F F2(ar)3.881 E(gv)-.37 E +F1 1.381(array to indicate its current status.)3.881 F .206 +(This can be used in conjunction with the)188.4 583.2 R F2(ps)2.707 E F1 .207 +(command to \214nd out just what it')2.707 F(s)-.55 E(up to.)188.4 595.2 Q +57.78(SMTP If)102 611.4 R .756(set, the code to handle user and serv)3.256 F .756(er SMTP will be compiled in.)-.15 F .756(This is)5.756 F 2.507 (only necessary if your machine has some mailer that speaks SMTP \(this)188.4 -651.6 R(means most machines e)188.4 663.6 Q -.15(ve)-.25 G(rywhere\).).15 E -(UGL)102 679.8 Q 30.46(YUUCP If)-1 F 1.024(you ha)3.524 F 1.324 -.15(ve a U)-.2 +623.4 R(means most machines e)188.4 635.4 Q -.15(ve)-.25 G(rywhere\).).15 E +(UGL)102 651.6 Q 30.46(YUUCP If)-1 F 1.024(you ha)3.524 F 1.324 -.15(ve a U)-.2 H 1.023(UCP host adjacent to you which is not running a reasonable).15 F -.15 -(ve)188.4 691.8 S .112(rsion of).15 F F2(rmail)2.612 E F1 2.612(,y)C .112 -(ou will ha)263.026 691.8 R .412 -.15(ve t)-.2 H 2.612(os).15 G .112 -(et this \215ag to include the \231remote from sys-)329.234 691.8 R .032 -(name\232 info on the from line.)188.4 703.8 R .031 +(ve)188.4 663.6 S .112(rsion of).15 F F2(rmail)2.612 E F1 2.612(,y)C .112 +(ou will ha)263.026 663.6 R .412 -.15(ve t)-.2 H 2.612(os).15 G .112 +(et this \215ag to include the \231remote from sys-)329.234 663.6 R .032 +(name\232 info on the from line.)188.4 675.6 R .031 (Otherwise, UUCP gets confused about where the)5.032 F(mail came from.)188.4 -715.8 Q EP +687.6 Q 44.45(USERDB Include)102 703.8 R(the)3.448 E F0(experimental)3.448 E F1 +(Berk)3.449 E(ele)-.1 E 3.449(yu)-.15 G .949(ser information database package.) +341.354 703.8 R(This)5.949 E .27(adds a ne)188.4 715.8 R 2.77(wl)-.25 G -2.15 +-.25(ev e)238.67 715.8 T 2.77(lo).25 G 2.77(fl)262.7 715.8 S .27(ocal name e) +271.58 715.8 R .27(xpansion between aliasing and forw)-.15 F 2.77(arding. It) +-.1 F EP %%Page: 51 46 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-51)452.9 60 Q/F1 10/Times-Roman@0 SF 44.45(USERDB Include)102 96 R(the) -3.448 E F0(experimental)3.448 E F1(Berk)3.449 E(ele)-.1 E 3.449(yu)-.15 G .949 -(ser information database package.)341.354 96 R(This)5.949 E .27(adds a ne) -188.4 108 R 2.77(wl)-.25 G -2.15 -.25(ev e)238.67 108 T 2.77(lo).25 G 2.77(fl) -262.7 108 S .27(ocal name e)271.58 108 R .27 -(xpansion between aliasing and forw)-.15 F 2.77(arding. It)-.1 F -(also uses the NEWDB package.)188.4 120 Q(This may change in future releases.)5 -E(IDENTPR)102 136.2 Q -1.88 -.4(OT O)-.4 H .375 -(Compile in the IDENT protocol as de\214ned in RFC 1413.)188.4 136.2 R .376 -(This def)5.376 F .376(aults on for)-.1 F 1.053(all systems e)188.4 148.2 R -1.053(xcept Ultrix, which apparently has the interesting \231feature\232 that) --.15 F .83(when it recei)188.4 160.2 R -.15(ve)-.25 G 3.33(sa\231).15 G .83 -(host unreachable\232 message it closes all open connections)270.18 160.2 R -1.922(to that host.)188.4 172.2 R 1.922(Since some \214re)6.922 F -.1(wa)-.25 G +(SMM:08-51)452.9 60 Q/F1 10/Times-Roman@0 SF(also uses the NEWDB package.)188.4 +96 Q(This may change in future releases.)5 E(IDENTPR)102 112.2 Q -1.88 -.4 +(OT O)-.4 H .375(Compile in the IDENT protocol as de\214ned in RFC 1413.)188.4 +112.2 R .376(This def)5.376 F .376(aults on for)-.1 F 1.053(all systems e)188.4 +124.2 R 1.053 +(xcept Ultrix, which apparently has the interesting \231feature\232 that)-.15 F +.83(when it recei)188.4 136.2 R -.15(ve)-.25 G 3.33(sa\231).15 G .83 +(host unreachable\232 message it closes all open connections)270.18 136.2 R +1.922(to that host.)188.4 148.2 R 1.922(Since some \214re)6.922 F -.1(wa)-.25 G 1.922(ll g).1 F(ate)-.05 E -.1(wa)-.25 G 1.921 (ys send this error code when you).1 F 2.055 (access an unauthorized port \(such as 113, used by IDENT\), Ultrix cannot) -188.4 184.2 R(recei)188.4 196.2 Q .3 -.15(ve e)-.25 H(mail from such hosts.).15 -E F0 2.5(6.3. Con\214guration)87 220.2 R(in sr)2.5 E(c/conf)-.18 E(.c)-.15 E F1 -(The follo)127 236.4 Q(wing changes can be made in conf.c.)-.25 E F0 2.5 -(6.3.1. Built-in)102 260.4 R(Header Semantics)2.5 E F1 1.248 +188.4 160.2 R(recei)188.4 172.2 Q .3 -.15(ve e)-.25 H(mail from such hosts.).15 +E F0 2.5(6.3. Con\214guration)87 196.2 R(in sr)2.5 E(c/conf)-.18 E(.c)-.15 E F1 +(The follo)127 212.4 Q(wing changes can be made in conf.c.)-.25 E F0 2.5 +(6.3.1. Built-in)102 236.4 R(Header Semantics)2.5 E F1 1.248 (Not all header semantics are de\214ned in the con\214guration \214le.)142 -276.6 R 1.247(Header lines that should)6.247 F .305(only be included by certai\ +252.6 R 1.247(Header lines that should)6.247 F .305(only be included by certai\ n mailers \(as well as other more obscure semantics\) must be speci\214ed)117 -288.6 R .047(in the)117 300.6 R/F2 10/Times-Italic@0 SF(HdrInfo)2.547 E F1 .047 +264.6 R .047(in the)117 276.6 R/F2 10/Times-Italic@0 SF(HdrInfo)2.547 E F1 .047 (table in)2.547 F F2(conf)2.547 E(.c)-.15 E F1 5.047(.T)C .046 -(his table contains the header name \(which should be in all lo)246.842 300.6 R +(his table contains the header name \(which should be in all lo)246.842 276.6 R (wer)-.25 E(case\) and a set of header control \215ags \(described belo)117 -312.6 Q(w\), The \215ags are:)-.25 E(H_A)117 328.8 Q 30.97(CHECK Normally)-.4 F +288.6 Q(w\), The \215ags are:)-.25 E(H_A)117 304.8 Q 30.97(CHECK Normally)-.4 F .007(when the check is made to see if a header line is compatible with)2.507 F -2.941(am)203.4 340.8 S(ailer)218.561 340.8 Q(,)-.4 E F2(sendmail)2.941 E F1 +2.941(am)203.4 316.8 S(ailer)218.561 316.8 Q(,)-.4 E F2(sendmail)2.941 E F1 .441(will not delete an e)2.941 F .441(xisting line.)-.15 F .44 -(If this \215ag is set,)5.441 F F2(send-)2.94 E(mail)203.4 352.8 Q F1 .152 +(If this \215ag is set,)5.441 F F2(send-)2.94 E(mail)203.4 328.8 Q F1 .152 (will delete e)2.652 F -.15(ve)-.25 G 2.652(ne).15 G .152 -(xisting header lines.)293.998 352.8 R .152 +(xisting header lines.)293.998 328.8 R .152 (That is, if this bit is set and the)5.152 F 1.425(mailer does not ha)203.4 -364.8 R 1.725 -.15(ve \215)-.2 H 1.425 +340.8 R 1.725 -.15(ve \215)-.2 H 1.425 (ag bits set that intersect with the required mailer).15 F 2.204 (\215ags in the header de\214nition in sendmail.cf, the header line is)203.4 -376.8 R F2(always)4.704 E F1(deleted.)203.4 388.8 Q 51.13(H_EOH If)117 405 R +352.8 R F2(always)4.704 E F1(deleted.)203.4 364.8 Q 51.13(H_EOH If)117 381 R .206(this header \214eld is set, treat it lik)2.706 F 2.706(eab)-.1 G .206 -(lank line, i.e., it will signal the end)363.95 405 R(of the header and the be) -203.4 417 Q(ginning of the message te)-.15 E(xt.)-.15 E 39.45(H_FORCE Add)117 -433.2 R 2.038(this header entry e)4.538 F -.15(ve)-.25 G 4.538(ni).15 G 4.538 -(fo)326.22 433.2 S 2.038(ne e)339.088 433.2 R 2.039 +(lank line, i.e., it will signal the end)363.95 381 R(of the header and the be) +203.4 393 Q(ginning of the message te)-.15 E(xt.)-.15 E 39.45(H_FORCE Add)117 +409.2 R 2.038(this header entry e)4.538 F -.15(ve)-.25 G 4.538(ni).15 G 4.538 +(fo)326.22 409.2 S 2.038(ne e)339.088 409.2 R 2.039 (xisted in the message before.)-.15 F 2.039(If a)7.039 F 2.189 -(header entry does not ha)203.4 445.2 R 2.488 -.15(ve t)-.2 H 2.188 +(header entry does not ha)203.4 421.2 R 2.488 -.15(ve t)-.2 H 2.188 (his bit set,).15 F F2(sendmail)4.688 E F1 2.188(will not add another)4.688 F -.62(header line if a header line of this name already e)203.4 457.2 R 3.12 +.62(header line if a header line of this name already e)203.4 433.2 R 3.12 (xisted. This)-.15 F -.1(wo)3.12 G .62(uld nor).1 F(-)-.2 E -(mally be used to stamp the message by e)203.4 469.2 Q -.15(ve)-.25 G -(ryone who handled it.).15 E(H_TRA)117 485.4 Q 39.3(CE If)-.4 F 1.044 +(mally be used to stamp the message by e)203.4 445.2 Q -.15(ve)-.25 G +(ryone who handled it.).15 E(H_TRA)117 461.4 Q 39.3(CE If)-.4 F 1.044 (set, this is a timestamp \(trace\) \214eld.)3.544 F 1.043 -(If the number of trace \214elds in a)6.043 F .705(message e)203.4 497.4 R .705 +(If the number of trace \214elds in a)6.043 F .705(message e)203.4 473.4 R .705 (xceeds a preset amount the message is returned on the assump-)-.15 F -(tion that it has an aliasing loop.)203.4 509.4 Q 46.67(H_RCPT If)117 525.6 R +(tion that it has an aliasing loop.)203.4 485.4 Q 46.67(H_RCPT If)117 501.6 R .332(set, this \214eld contains recipient addresses.)2.833 F .332 (This is used by the)5.332 F F0<ad74>2.832 E F1 .332(\215ag to)2.832 F 1.349 (determine who to send to when it is collecting recipients from the mes-)203.4 -537.6 R(sage.)203.4 549.6 Q(H_FR)117 565.8 Q 43.74(OM This)-.4 F 1.673 +513.6 R(sage.)203.4 525.6 Q(H_FR)117 541.8 Q 43.74(OM This)-.4 F 1.673 (\215ag indicates that this \214eld speci\214es a sender)4.174 F 6.673(.T)-.55 -G 1.673(he order of these)432.061 565.8 R .898(\214elds in the)203.4 577.8 R F2 +G 1.673(he order of these)432.061 541.8 R .898(\214elds in the)203.4 553.8 R F2 (HdrInfo)3.398 E F1 .898(table speci\214es)3.398 F F2(sendmail)3.398 E F1 1.998 -.55('s p)D .898(reference for which \214eld).55 F -(to return error messages to.)203.4 589.8 Q(Let')117 606 Q 2.5(sl)-.55 G -(ook at a sample)142.28 606 Q F2(HdrInfo)2.5 E F1(speci\214cation:)2.5 E EP +(to return error messages to.)203.4 565.8 Q(Let')117 582 Q 2.5(sl)-.55 G +(ook at a sample)142.28 582 Q F2(HdrInfo)2.5 E F1(speci\214cation:)2.5 E EP %%Page: 52 47 %%BeginPageSetup BP @@ -4255,7 +4297,7 @@ F2(HdrInfo)3.24 E F1 .74(structure ha)3.24 F 1.04 -.15(ve d)-.2 H(ef).15 E .74 226.554 476.4 R .481 (xample, the \231Sender:\232 and \231From:\232 \214elds are al)-.15 F -.1(wa) -.1 G .48(ys scanned on).1 F(ARP)117 490.4 Q .751 -(ANET mail to determine the sender)-.92 F/F3 7/Times-Roman@0 SF(18)282.315 +(ANET mail to determine the sender)-.92 F/F3 7/Times-Roman@0 SF(19)282.315 486.4 Q F1 3.251(;t)289.315 490.4 S .75 (his is used to perform the \231return to sender\232 func-)298.126 490.4 R 2.976(tion. The)117 502.4 R .476(\231From:\232 and \231Full-Name:\232 \214elds\ @@ -4289,7 +4331,7 @@ DL 168 669.2 164 669.2 DL 172 669.2 168 669.2 DL 176 669.2 172 669.2 DL 180 669.2 176 669.2 DL 184 669.2 180 669.2 DL 188 669.2 184 669.2 DL 192 669.2 188 669.2 DL 196 669.2 192 669.2 DL 200 669.2 196 669.2 DL 204 669.2 200 669.2 DL 208 669.2 204 669.2 DL 212 669.2 208 669.2 DL 216 669.2 212 669.2 DL/F5 5 -/Times-Roman@0 SF(18)93.6 679.6 Q/F6 8/Times-Roman@0 SF(Actually)3.2 I 2.631 +/Times-Roman@0 SF(19)93.6 679.6 Q/F6 8/Times-Roman@0 SF(Actually)3.2 I 2.631 (,t)-.52 G .631 (his is no longer true in SMTP; this information is contained in the en)132.487 682.8 R -.12(ve)-.32 G 2.632(lope. The).12 F .632(older ARP)2.632 F .632 @@ -4490,7 +4532,7 @@ c\) and RFC 1427 \(SIZE\); and limited support for RFC 1426 \(BOD)102 527.4 Q (or compatibility with RFC 822, you can set option `7' to get se).4 E -.15(ve) -.25 G 2.5(nb).15 G(it stripping.)418.86 579.6 Q(Indi)127 595.8 Q (vidual mailers can still produce se)-.25 E -.15(ve)-.25 G 2.5(nb).15 G -(it out put using the `7' mailer \215ag.)300.77 595.8 Q F0 2.5(7.6. User)87 +(it output using the `7' mailer \215ag.)300.77 595.8 Q F0 2.5(7.6. User)87 619.8 R(Database)2.5 E F1 1.072(The user database is an as-yet e)127 636 R 1.072(xperimental attempt to pro)-.15 F 1.073(vide uni\214ed lar)-.15 F 1.073 (ge-site name sup-)-.18 F 2.5(port. W)102 648 R 2.5(ea)-.8 G @@ -4852,13 +4894,11 @@ F 2.5(lems. This)144 716.4 R(produces a lot of data v)2.5 E BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-61)452.9 60 Q/F1 10/Times-Roman@0 SF 1.118 -(There are a number of options that may be speci\214ed as primiti)97 96 R 1.418 --.15(ve \215)-.25 H 1.118(ags \(pro).15 F 1.118(vided for compatibility)-.15 F -(with)72 108 Q/F2 10/Times-Italic@0 SF(delivermail)2.5 E F1 2.5(\). These)B -(are the e, i, m, and v options.)2.5 E -(Also, the f option may be speci\214ed as the)5 E F0<ad73>2.5 E F1(\215ag.)2.5 -E EP +(SMM:08-61)452.9 60 Q/F1 10/Times-Roman@0 SF .638 +(There are a number of options that may be speci\214ed as primiti)97 96 R .937 +-.15(ve \215)-.25 H 3.137(ags. These).15 F .637(are the e, i, m, and v)3.137 F +2.5(options. Also,)72 108 R(the f option may be speci\214ed as the)2.5 E F0 +<ad73>2.5 E F1(\215ag.)2.5 E EP %%Page: 62 57 %%BeginPageSetup BP @@ -5109,69 +5149,69 @@ eue ..........................................................................\ ..............................................................................\ ...... 12)2.94 F 2.5(1.3.8. /etc/sendmail.st)102 326.4 R 23.5(................\ ..............................................................................\ -............... 13)3.5 F 2.5(1.3.9. /usr/bin/ne)102 340.8 R -.1(wa)-.25 G 2.19 +............... 12)3.5 F 2.5(1.3.9. /usr/bin/ne)102 340.8 R -.1(wa)-.25 G 2.19 (liases ......................................................................\ -.................................).1 F(13)494 340.8 Q 2.5 +.................................).1 F(12)494 340.8 Q 2.5 (1.3.10. /usr/bin/mailq)102 355.2 R 23.5(.....................................\ -........................................................................ 13) +........................................................................ 12) 4.88 F 2.5(2. NORMAL)72 369.6 R(OPERA)2.5 E 1.56(TIONS .......................\ ..............................................................................\ -........)-1.11 F(13)494 369.6 Q 2.5(2.1. The)87 384 R(System Log)2.5 E 23.5(..\ +........)-1.11 F(12)494 369.6 Q 2.5(2.1. The)87 384 R(System Log)2.5 E 23.5(..\ ..............................................................................\ -.................................... 13)4.89 F 2.5(2.1.1. F)102 398.4 R 2.26(o\ +.................................... 12)4.89 F 2.5(2.1.1. F)102 398.4 R 2.26(o\ rmat .........................................................................\ -.................................................)-.15 F(13)494 398.4 Q 2.5 +.................................................)-.15 F(12)494 398.4 Q 2.5 (2.1.2. Le)102 412.8 R -.15(ve)-.25 G 2.24(ls ................................\ ..............................................................................\ -.............).15 F(13)494 412.8 Q 2.5(2.2. The)87 427.2 R(Mail Queue)2.5 E +.............).15 F(12)494 412.8 Q 2.5(2.2. The)87 427.2 R(Mail Queue)2.5 E 23.5(.........................................................................\ -............................................ 13)2.96 F 2.5(2.2.1. Printing)102 +............................................ 12)2.96 F 2.5(2.2.1. Printing)102 441.6 R(the queue)2.5 E 23.5(.................................................\ ........................................................ 13)2.67 F 2.5 (2.2.2. F)102 456 R(orcing the queue)-.15 E 23.5(.............................\ ............................................................................ 1\ -4)3.94 F 2.5(2.3. The)87 470.4 R(Alias Database)2.5 E 23.5(...................\ +3)3.94 F 2.5(2.3. The)87 470.4 R(Alias Database)2.5 E 23.5(...................\ ..............................................................................\ -............... 14)2.69 F 2.5(2.3.1. Reb)102 484.8 R +............... 13)2.69 F 2.5(2.3.1. Reb)102 484.8 R (uilding the alias database)-.2 E 23.5(.......................................\ -................................................ 15)4.27 F 2.5 +................................................ 14)4.27 F 2.5 (2.3.2. Potential)102 499.2 R .72(problems ...................................\ -.....................................................................)2.5 F(15) +.....................................................................)2.5 F(14) 494 499.2 Q 2.5(2.3.3. List)102 513.6 R -.25(ow)2.5 G 1.81(ners ..............\ ..............................................................................\ -.......................).25 F(15)494 513.6 Q 2.5(2.4. User)87 528 R +.......................).25 F(14)494 513.6 Q 2.5(2.4. User)87 528 R (Information Database)2.5 E 23.5(.............................................\ -....................................................... 16)2.7 F 2.5(2.5. Per) +....................................................... 15)2.7 F 2.5(2.5. Per) 87 542.4 R(-User F)-.2 E(orw)-.15 E(arding \(.forw)-.1 E(ard Files\))-.1 E 23.5 (.............................................................................\ -...... 16)4.09 F 2.5(2.6. Special)87 556.8 R(Header Lines)2.5 E 23.5(.........\ +...... 15)4.09 F 2.5(2.6. Special)87 556.8 R(Header Lines)2.5 E 23.5(.........\ ..............................................................................\ -...................... 16)2.97 F 2.5(2.6.1. Return-Receipt-T)102 571.2 R .98(o\ +...................... 15)2.97 F 2.5(2.6.1. Return-Receipt-T)102 571.2 R .98(o\ : ............................................................................\ -...........................)-.8 F(16)494 571.2 Q 2.5(2.6.2. Errors-T)102 585.6 +...........................)-.8 F(15)494 571.2 Q 2.5(2.6.2. Errors-T)102 585.6 R 2.09(o: ....................................................................\ .................................................)-.8 F(16)494 585.6 Q 2.5 (2.6.3. Apparently-T)102 600 R 2.09(o: .......................................\ ......................................................................)-.8 F -(17)494 600 Q 2.5(2.7. IDENT)87 614.4 R(Protocol Support)2.5 E 23.5(..........\ +(16)494 600 Q 2.5(2.7. IDENT)87 614.4 R(Protocol Support)2.5 E 23.5(..........\ ..............................................................................\ -............... 17)2.95 F 2.5(3. ARGUMENTS)72 628.8 R 23.5(...................\ +............... 16)2.95 F 2.5(3. ARGUMENTS)72 628.8 R 23.5(...................\ ..............................................................................\ -.............................. 17)3.78 F 2.5(3.1. Queue)87 643.2 R(Interv)2.5 E +.............................. 16)3.78 F 2.5(3.1. Queue)87 643.2 R(Interv)2.5 E 1.55(al ......................................................................\ -.................................................)-.25 F(17)494 643.2 Q 2.5 +.................................................)-.25 F(16)494 643.2 Q 2.5 (3.2. Daemon)87 657.6 R 1.29(Mode ............................................\ ...........................................................................)2.5 F(17)494 657.6 Q 2.5(3.3. F)87 672 R(orcing the Queue)-.15 E 23.5(............\ ..............................................................................\ -....................... 18)4.22 F 2.5(3.4. Deb)87 686.4 R 1.76(ugging ........\ +....................... 17)4.22 F 2.5(3.4. Deb)87 686.4 R 1.76(ugging ........\ ..............................................................................\ -.......................................)-.2 F(18)494 686.4 Q 2.5(3.5. T)87 +.......................................)-.2 F(17)494 686.4 Q 2.5(3.5. T)87 700.8 R(rying a Dif)-.35 E(ferent Con\214guration File)-.25 E 23.5(...........\ -........................................................................ 18) +........................................................................ 17) 4.67 F 2.5(3.6. Changing)87 715.2 R(the V)2.5 E(alues of Options)-1.11 E 23.5(\ ..............................................................................\ -.............. 18)3.23 F EP +.............. 17)3.23 F EP %%Page: 4 62 %%BeginPageSetup BP @@ -5180,251 +5220,252 @@ BP (Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 2.5 (3.7. Logging)87 96 R -.35(Tr)2.5 G(af).35 E .5(\214c ........................\ ..............................................................................\ -................)-.25 F(18)494 96 Q 2.5(4. TUNING)72 110.4 R 23.5(............\ +................)-.25 F(18)494 96 Q 2.5(3.8. Dumping)87 110.4 R .72(State ....\ ..............................................................................\ -............................................... 19)2.68 F 2.5(4.1. T)87 124.8 R -1.07(imeouts .................................................................\ -...............................................................)-.35 F(19)494 -124.8 Q 2.5(4.1.1. Queue)102 139.2 R(interv)2.5 E 2.1(al .....................\ +.....................................)2.5 F(18)494 110.4 Q 2.5(4. TUNING)72 +124.8 R 23.5(.................................................................\ +........................................................................ 18) +2.68 F 2.5(4.1. T)87 139.2 R 1.07(imeouts ....................................\ ..............................................................................\ -...........)-.25 F(19)494 139.2 Q 2.5(4.1.2. Read)102 153.6 R 1(timeouts .....\ +..............)-.35 F(18)494 139.2 Q 2.5(4.1.1. Queue)102 153.6 R(interv)2.5 E +2.1(al .......................................................................\ +.......................................)-.25 F(18)494 153.6 Q 2.5(4.1.2. Read) +102 168 R 1(timeouts .........................................................\ +......................................................)2.5 F(18)494 168 Q 2.5 +(4.1.3. Message)102 182.4 R 1.56(timeouts ....................................\ +.....................................................................)2.5 F(19) +494 182.4 Q 2.5(4.2. F)87 196.8 R(orking During Queue Runs)-.15 E 23.5(.......\ ..............................................................................\ -............................)2.5 F(19)494 153.6 Q 2.5(4.1.3. Message)102 168 R -1.56(timeouts ................................................................\ -.........................................)2.5 F(20)494 168 Q 2.5(4.2. F)87 -182.4 R(orking During Queue Runs)-.15 E 23.5(.................................\ -................................................................ 21)4.49 F 2.5 -(4.3. Queue)87 196.8 R .73(Priorities ........................................\ -.............................................................................) -2.5 F(21)494 196.8 Q 2.5(4.4. Load)87 211.2 R .44(Limiting ...................\ +............ 20)4.49 F 2.5(4.3. Queue)87 211.2 R .73(Priorities ..............\ ..............................................................................\ -.......................)2.5 F(21)494 211.2 Q 2.5(4.5. Deli)87 225.6 R -.15(ve) --.25 G(ry Mode).15 E 23.5(....................................................\ -................................................................... 21)3.08 F -2.5(4.6. Log)87 240 R(Le)2.5 E -.15(ve)-.25 G 2.52(l.).15 G 23.5(.............\ +.........................)2.5 F(20)494 211.2 Q 2.5(4.4. Load)87 225.6 R .44(Li\ +miting .......................................................................\ +.................................................)2.5 F(20)494 225.6 Q 2.5 +(4.5. Deli)87 240 R -.15(ve)-.25 G(ry Mode).15 E 23.5(........................\ ..............................................................................\ -................................... 22)153 240 R 2.5(4.7. File)87 254.4 R .72(\ -Modes ........................................................................\ -.....................................................)2.5 F(22)494 254.4 Q 2.5 -(4.7.1. T)102 268.8 R 2.5(os)-.8 G(uid or not to suid?)146.2 268.8 Q 23.5(....\ +................. 21)3.08 F 2.5(4.6. Log)87 254.4 R(Le)2.5 E -.15(ve)-.25 G +2.52(l.).15 G 23.5(...........................................................\ +................................................................... 21)153 +254.4 R 2.5(4.7. File)87 268.8 R .72(Modes ...................................\ ..............................................................................\ -............... 22)6.52 F 2.5(4.7.2. Should)102 283.2 R -(my alias database be writable?)2.5 E 23.5 +............)2.5 F(22)494 268.8 Q 2.5(4.7.1. T)102 283.2 R 2.5(os)-.8 G +(uid or not to suid?)146.2 283.2 Q 23.5(......................................\ +........................................................... 22)6.52 F 2.5 +(4.7.2. Should)102 297.6 R(my alias database be writable?)2.5 E 23.5 (........................................................................ 22) -5.47 F 2.5(4.8. Connection)87 297.6 R 1.56(Caching ...........................\ +5.47 F 2.5(4.8. Connection)87 312 R 1.56(Caching .............................\ ..............................................................................\ -.....)2.5 F(23)494 297.6 Q 2.5(4.9. Name)87 312 R(Serv)2.5 E(er Access)-.15 E +...)2.5 F(22)494 312 Q 2.5(4.9. Name)87 326.4 R(Serv)2.5 E(er Access)-.15 E 23.5(.........................................................................\ -..................................... 23)2.85 F 2.5(4.10. Mo)87 326.4 R +..................................... 22)2.85 F 2.5(4.10. Mo)87 340.8 R (ving the Per)-.15 E(-User F)-.2 E(orw)-.15 E(ard Files)-.1 E 23.5(...........\ -......................................................................... 24) -3.84 F 2.5(4.11. Free)87 340.8 R 1.85(Space ..................................\ +......................................................................... 23) +3.84 F 2.5(4.11. Free)87 355.2 R 1.85(Space ..................................\ ..............................................................................\ -...........)2.5 F(24)494 340.8 Q 2.5(4.12. Pri)87 355.2 R -.25(va)-.25 G .3 +...........)2.5 F(23)494 355.2 Q 2.5(4.12. Pri)87 369.6 R -.25(va)-.25 G .3 -.15(cy F).25 H 1.93(lags ....................................................\ ...................................................................).15 F(24) -494 355.2 Q 2.5(4.13. Send)87 369.6 R(to Me T)2.5 E 2.08(oo ..................\ +494 369.6 Q 2.5(4.13. Send)87 384 R(to Me T)2.5 E 2.08(oo ....................\ ..............................................................................\ -...................)-.8 F(25)494 369.6 Q 2.5(5. THE)72 384 R +.................)-.8 F(24)494 384 Q 2.5(5. THE)72 398.4 R (WHOLE SCOOP ON THE CONFIGURA)2.5 E(TION FILE)-1.11 E 23.5 -(........................................................ 25)4.64 F 2.5 -(5.1. Con\214guration)87 398.4 R(File Lines)2.5 E 23.5(.......................\ +(........................................................ 24)4.64 F 2.5 +(5.1. Con\214guration)87 412.8 R(File Lines)2.5 E 23.5(.......................\ ..............................................................................\ -... 25)2.66 F 2.5(5.1.1. R)102 412.8 R(and S \212 re)2.5 E(writing rules)-.25 E +... 24)2.66 F 2.5(5.1.1. R)102 427.2 R(and S \212 re)2.5 E(writing rules)-.25 E 23.5(.........................................................................\ -................... 25)3.48 F 2.5(5.1.1.1. The)117 427.2 R(left hand side)2.5 E +................... 24)3.48 F 2.5(5.1.1.1. The)117 441.6 R(left hand side)2.5 E 23.5(.........................................................................\ -....................... 25)4.07 F 2.5(5.1.1.2. The)117 441.6 R(right hand side) +....................... 25)4.07 F 2.5(5.1.1.2. The)117 456 R(right hand side) 2.5 E 23.5(...................................................................\ -........................... 26)3.51 F 2.5(5.1.1.3. Semantics)117 456 R(of re) +........................... 25)3.51 F 2.5(5.1.1.3. Semantics)117 470.4 R(of re) 2.5 E(writing rule sets)-.25 E 23.5 -(.......................................................................... 27) -4.6 F 2.5(5.1.1.4. IPC)117 470.4 R 1(mailers .................................\ +(.......................................................................... 26) +4.6 F 2.5(5.1.1.4. IPC)117 484.8 R 1(mailers .................................\ .........................................................................)2.5 F -(28)494 470.4 Q 2.5(5.1.2. D)102 484.8 R 2.5<8a64>2.5 G(e\214ne macro)156.72 -484.8 Q 23.5(.................................................................\ -....................................... 28)4.35 F 2.5(5.1.3. C)102 499.2 R +(27)494 484.8 Q 2.5(5.1.2. D)102 499.2 R 2.5<8a64>2.5 G(e\214ne macro)156.72 +499.2 Q 23.5(.................................................................\ +....................................... 28)4.35 F 2.5(5.1.3. C)102 513.6 R (and F \212 de\214ne classes)2.5 E 23.5(......................................\ -....................................................... 31)4.62 F 2.5(5.1.4. M) -102 513.6 R 2.5<8a64>2.5 G(e\214ne mailer)158.39 513.6 Q 23.5(................\ +....................................................... 30)4.62 F 2.5(5.1.4. M) +102 528 R 2.5<8a64>2.5 G(e\214ne mailer)158.39 528 Q 23.5(....................\ ..............................................................................\ -......... 31)4.62 F 2.5(5.1.5. H)102 528 R 2.5<8a64>2.5 G(e\214ne header)156.72 -528 Q 23.5(...................................................................\ -..................................... 34)2.69 F 2.5(5.1.6. O)102 542.4 R 2.5 -<8a73>2.5 G(et option)155.61 542.4 Q 23.5(....................................\ -......................................................................... 34) -4.61 F 2.5(5.1.7. P)102 556.8 R 2.5<8a70>2.5 G(recedence de\214nitions)155.06 -556.8 Q 23.5(.................................................................\ -......................... 38)3.24 F 2.5(5.1.8. V)102 571.2 R 2.5<8a63>2.5 G -(on\214guration v)156.16 571.2 Q(ersion le)-.15 E -.15(ve)-.25 G 4.62(l.).15 G +..... 31)4.62 F 2.5(5.1.5. H)102 542.4 R 2.5<8a64>2.5 G(e\214ne header)156.72 +542.4 Q 23.5(.................................................................\ +....................................... 33)2.69 F 2.5(5.1.6. O)102 556.8 R 2.5 +<8a73>2.5 G(et option)155.61 556.8 Q 23.5(....................................\ +......................................................................... 33) +4.61 F 2.5(5.1.7. P)102 571.2 R 2.5<8a70>2.5 G(recedence de\214nitions)155.06 +571.2 Q 23.5(.................................................................\ +......................... 38)3.24 F 2.5(5.1.8. V)102 585.6 R 2.5<8a63>2.5 G +(on\214guration v)156.16 585.6 Q(ersion le)-.15 E -.15(ve)-.25 G 4.62(l.).15 G 23.5(.........................................................................\ -........ 39)265.5 571.2 R 2.5(5.1.9. K)102 585.6 R 2.5<8a6b>2.5 G .3 -.15 -(ey \214)156.62 585.6 T(le declaration).15 E 23.5(............................\ -.................................................................. 40)4.88 F -2.5(5.2. Building)87 600 R 2.5(aC)2.5 G(on\214guration File From Scratch)158.12 -600 Q 23.5 -(......................................................................... 42) -3.77 F 2.5(5.2.1. What)102 614.4 R(you are trying to do)2.5 E 23.5(...........\ +........ 39)265.5 585.6 R 2.5(5.1.9. K)102 600 R 2.5<8a6b>2.5 G .3 -.15 +(ey \214)156.62 600 T(le declaration).15 E 23.5(..............................\ +................................................................ 39)4.88 F 2.5 +(5.2. Building)87 614.4 R 2.5(aC)2.5 G(on\214guration File From Scratch)158.12 +614.4 Q 23.5 +(......................................................................... 41) +3.77 F 2.5(5.2.1. What)102 628.8 R(you are trying to do)2.5 E 23.5(...........\ ..............................................................................\ -.... 42)2.96 F 2.5(5.2.2. Philosoph)102 628.8 R 3.54(y.)-.05 G 23.5(..........\ +.... 42)2.96 F 2.5(5.2.2. Philosoph)102 643.2 R 3.54(y.)-.05 G 23.5(..........\ ..............................................................................\ -........................... 42)180.5 628.8 R 2.5(5.2.2.1. Lar)117 643.2 R -(ge site, man)-.18 E 2.5(yh)-.15 G(osts \212 minimum information)226.1 643.2 Q +........................... 42)180.5 643.2 R 2.5(5.2.2.1. Lar)117 657.6 R +(ge site, man)-.18 E 2.5(yh)-.15 G(osts \212 minimum information)226.1 657.6 Q 23.5(................................................ 42)2.72 F 2.5 -(5.2.2.2. Small)117 657.6 R(site \212 complete information)2.5 E 23.5 +(5.2.2.2. Small)117 672 R(site \212 complete information)2.5 E 23.5 (.................................................................... 43)4.89 F -2.5(5.2.2.3. Single)117 672 R 1.27(host ......................................\ -.....................................................................)2.5 F(43) -494 672 Q 2.5(5.2.2.4. A)117 686.4 R(completely dif)2.5 E(ferent philosoph)-.25 -E 3.26(y.)-.05 G 23.5 +2.5(5.2.2.3. Single)117 686.4 R 1.27(host ....................................\ +.......................................................................)2.5 F +(43)494 686.4 Q 2.5(5.2.2.4. A)117 700.8 R(completely dif)2.5 E +(ferent philosoph)-.25 E 3.26(y.)-.05 G 23.5 (..................................................................... 43)295.5 -686.4 R 2.5(5.2.3. Rele)102 700.8 R -.25(va)-.25 G(nt issues).25 E 23.5(......\ +700.8 R 2.5(5.2.3. Rele)102 715.2 R -.25(va)-.25 G(nt issues).25 E 23.5(......\ ..............................................................................\ -......................... 44)4.56 F 2.5(5.2.4. Ho)102 715.2 R 2.5(wt)-.25 G 2.5 -(op)153.97 715.2 S 2.38(roceed ...............................................\ -.............................................................)166.47 715.2 R -(44)494 715.2 Q EP +......................... 44)4.56 F EP %%Page: 5 63 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF(Sendmail Installation and Operation Guide)72 60 Q -(SMM:08-5)457.9 60 Q/F1 10/Times-Roman@0 SF 2.5(5.2.5. T)102 96 R -(esting the re)-.7 E(writing rules \212 the \255bt \215ag)-.25 E 23.5 +(SMM:08-5)457.9 60 Q/F1 10/Times-Roman@0 SF 2.5(5.2.4. Ho)102 96 R 2.5(wt)-.25 +G 2.5(op)153.97 96 S 2.38(roceed .............................................\ +...............................................................)166.47 96 R(44) +494 96 Q 2.5(5.2.5. T)102 110.4 R(esting the re)-.7 E +(writing rules \212 the \255bt \215ag)-.25 E 23.5 (.................................................................... 44)2.99 F -2.5(5.2.6. Building)102 110.4 R(mailer descriptions)2.5 E 23.5(...............\ +2.5(5.2.6. Building)102 124.8 R(mailer descriptions)2.5 E 23.5(...............\ ......................................................................... 45) -4.61 F 2.5(5.3. The)87 124.8 R(User Database)2.5 E 23.5(......................\ +4.61 F 2.5(5.3. The)87 139.2 R(User Database)2.5 E 23.5(......................\ ..............................................................................\ -............ 47)4.92 F 2.5(5.3.1. Structure)102 139.2 R(of the user database) -2.5 E 23.5(...................................................................\ -.................... 47)2.7 F 2.5(5.3.2. User)102 153.6 R(database semantics) +............ 46)4.92 F 2.5(5.3.1. Structure)102 153.6 R(of the user database) 2.5 E 23.5(...................................................................\ -............................ 47)3.25 F 2.5(5.3.3. Creating)102 170 R -(the database)2.5 E/F2 7/Times-Roman@0 SF(17)215.59 166 Q F1 23.5(............\ +.................... 47)2.7 F 2.5(5.3.2. User)102 168 R(database semantics)2.5 +E 23.5(.......................................................................\ +........................ 47)3.25 F 2.5(5.3.3. Creating)102 184.4 R +(the database)2.5 E/F2 7/Times-Roman@0 SF(18)215.59 180.4 Q F1 23.5(..........\ ..............................................................................\ -....... 48)225.5 170 R 2.5(6. O)72 184.4 R(THER CONFIGURA)-.4 E 1.97(TION ....\ +......... 48)225.5 184.4 R 2.5(6. O)72 198.8 R(THER CONFIGURA)-.4 E 1.97(TION \ ..............................................................................\ -.......................)-1.11 F(48)494 184.4 Q 2.5(6.1. P)87 198.8 R +...........................)-1.11 F(48)494 198.8 Q 2.5(6.1. P)87 213.2 R (arameters in src/Mak)-.15 E 1.55(e\214le ....................................\ ................................................................)-.1 F(48)494 -198.8 Q 2.5(6.2. P)87 213.2 R(arameters in src/conf.h)-.15 E 23.5(............\ +213.2 Q 2.5(6.2. P)87 227.6 R(arameters in src/conf.h)-.15 E 23.5(............\ ..............................................................................\ -.............. 49)4.23 F 2.5(6.3. Con\214guration)87 227.6 R(in src/conf.c)2.5 -E 23.5(.......................................................................\ -............................. 51)3.51 F 2.5(6.3.1. Built-in)102 242 R +.............. 49)4.23 F 2.5(6.3. Con\214guration)87 242 R(in src/conf.c)2.5 E +23.5(.........................................................................\ +........................... 51)3.51 F 2.5(6.3.1. Built-in)102 256.4 R (Header Semantics)2.5 E 23.5(.................................................\ .......................................... 51)4.9 F 2.5(6.3.2. Restricting)102 -256.4 R(Use of Email)2.5 E 23.5(..............................................\ +270.8 R(Use of Email)2.5 E 23.5(..............................................\ ................................................ 52)4.34 F 2.5(6.3.3. Load)102 -270.8 R -1.17 -.74(Av e)2.5 H(rage Computation).74 E 23.5(....................\ +285.2 R -1.17 -.74(Av e)2.5 H(rage Computation).74 E 23.5(....................\ ...................................................................... 53)2.74 -F 2.5(6.3.4. Ne)102 285.2 R 2.5(wD)-.25 G(atabase Map Classes)157.85 285.2 Q +F 2.5(6.3.4. Ne)102 299.6 R 2.5(wD)-.25 G(atabase Map Classes)157.85 299.6 Q 23.5(.........................................................................\ -................ 53)4.89 F 2.5(6.3.5. Queueing)102 299.6 R 1.56(Function .....\ +................ 53)4.89 F 2.5(6.3.5. Queueing)102 314 R 1.56(Function .......\ ..............................................................................\ -....................)2.5 F(53)494 299.6 Q 2.5(6.3.6. Refusing)102 314 R +..................)2.5 F(53)494 314 Q 2.5(6.3.6. Refusing)102 328.4 R (Incoming SMTP Connections)2.5 E 23.5 (....................................................................... 54) -2.94 F 2.5(6.3.7. Load)102 328.4 R -1.17 -.74(Av e)2.5 H(rage Computation).74 E +2.94 F 2.5(6.3.7. Load)102 342.8 R -1.17 -.74(Av e)2.5 H(rage Computation).74 E 23.5(.........................................................................\ -................. 54)2.74 F 2.5(6.4. Con\214guration)87 342.8 R +................. 54)2.74 F 2.5(6.4. Con\214guration)87 357.2 R (in src/daemon.c)2.5 E 23.5(..................................................\ -............................................ 54)4.62 F 2.5(7. CHANGES)72 357.2 +............................................ 54)4.62 F 2.5(7. CHANGES)72 371.6 R(IN VERSION 8)2.5 E 23.5(....................................................\ ...................................................... 54)4.9 F 2.5 -(7.1. Connection)87 371.6 R 1.56(Caching .....................................\ -.........................................................................)2.5 F -(55)494 371.6 Q 2.5(7.2. MX)87 386 R 2.39(Piggybacking .......................\ +(7.1. Connection)87 386 R 1.56(Caching .......................................\ +.......................................................................)2.5 F +(55)494 386 Q 2.5(7.2. MX)87 400.4 R 2.39(Piggybacking .......................\ ..............................................................................\ -............)2.5 F(55)494 386 Q 2.5(7.3. RFC)87 400.4 R(1123 Compliance)2.5 E +............)2.5 F(55)494 400.4 Q 2.5(7.3. RFC)87 414.8 R(1123 Compliance)2.5 E 23.5(.........................................................................\ -................................. 55)3.77 F 2.5(7.4. Extended)87 414.8 R +................................. 55)3.77 F 2.5(7.4. Extended)87 429.2 R (SMTP Support)2.5 E 23.5(.....................................................\ .................................................. 55)2.94 F 2.5 -(7.5. Eight-Bit)87 429.2 R .44(Clean .........................................\ +(7.5. Eight-Bit)87 443.6 R .44(Clean .........................................\ .............................................................................) -2.5 F(55)494 429.2 Q 2.5(7.6. User)87 443.6 R .47(Database ...................\ +2.5 F(55)494 443.6 Q 2.5(7.6. User)87 458 R .47(Database .....................\ ..............................................................................\ -.......................)2.5 F(55)494 443.6 Q 2.5(7.7. Impro)87 458 R -.15(ve) --.15 G 2.5(dB).15 G(IND Support)154.75 458 Q 23.5(............................\ -........................................................................... 55) -3.81 F 2.5(7.8. K)87 472.4 R -.15(ey)-.25 G(ed Files).15 E 23.5(..............\ +.....................)2.5 F(55)494 458 Q 2.5(7.7. Impro)87 472.4 R -.15(ve)-.15 +G 2.5(dB).15 G(IND Support)154.75 472.4 Q 23.5(...............................\ +........................................................................ 55) +3.81 F 2.5(7.8. K)87 486.8 R -.15(ey)-.25 G(ed Files).15 E 23.5(..............\ ..............................................................................\ -................................ 56)3.35 F 2.5(7.9. Multi-W)87 486.8 R +................................ 56)3.35 F 2.5(7.9. Multi-W)87 501.2 R (ord Classes)-.8 E 23.5(......................................................\ ......................................................... 56)3.47 F 2.5 -(7.10. Deferred)87 501.2 R(Macro Expansion)2.5 E 23.5(........................\ +(7.10. Deferred)87 515.6 R(Macro Expansion)2.5 E 23.5(........................\ ......................................................................... 56) -4.65 F 2.5(7.11. IDENT)87 515.6 R(Protocol Support)2.5 E 23.5(................\ +4.65 F 2.5(7.11. IDENT)87 530 R(Protocol Support)2.5 E 23.5(..................\ ..............................................................................\ -....... 56)2.95 F 2.5(7.12. P)87 530 R(arsing Bug Fix)-.15 E .46(es ..........\ +..... 56)2.95 F 2.5(7.12. P)87 544.4 R(arsing Bug Fix)-.15 E .46(es ..........\ ..............................................................................\ -........................)-.15 F(56)494 530 Q 2.5(7.13. Separate)87 544.4 R(En) -2.5 E -.15(ve)-.4 G(lope/Header Processing).15 E 23.5(........................\ -........................................................ 56)4.37 F 2.5 -(7.14. Owner)87 558.8 R(-List Propag)-.2 E(ates to En)-.05 E -.15(ve)-.4 G 1.27 +........................)-.15 F(56)494 544.4 Q 2.5(7.13. Separate)87 558.8 R +(En)2.5 E -.15(ve)-.4 G(lope/Header Processing).15 E 23.5(....................\ +............................................................ 56)4.37 F 2.5 +(7.14. Owner)87 573.2 R(-List Propag)-.2 E(ates to En)-.05 E -.15(ve)-.4 G 1.27 (lope ........................................................................\ -............).15 F(56)494 558.8 Q 2.5(7.15. Dynamic)87 573.2 R +............).15 F(56)494 573.2 Q 2.5(7.15. Dynamic)87 587.6 R (Header Allocation)2.5 E 23.5(................................................\ -................................................ 56)3.25 F 2.5(7.16. Ne)87 -587.6 R 2.5(wC)-.25 G(ommand Line Flags)139.8 587.6 Q 23.5(...................\ -..............................................................................\ -. 56)3.2 F 2.5(7.17. Enhanced)87 602 R(Command Line Flags)2.5 E 23.5(.........\ -..............................................................................\ -.. 56)4.9 F 2.5(7.18. Ne)87 616.4 R 2.5(wa)-.25 G -(nd Old Con\214guration Line T)137.57 616.4 Q .4(ypes ........................\ -......................................................)-.8 F(57)494 616.4 Q 2.5 -(7.19. Ne)87 630.8 R 2.5(wO)-.25 G .7(ptions .................................\ -..............................................................................\ -.........)140.35 630.8 R(57)494 630.8 Q 2.5(7.20. Extended)87 645.2 R 1.56(Opt\ -ions .........................................................................\ -.......................................)2.5 F(57)494 645.2 Q 2.5(7.21. Ne)87 -659.6 R 2.5(wM)-.25 G(ailer Flags)142.02 659.6 Q 23.5(........................\ +................................................ 56)3.25 F 2.5(7.16. Ne)87 602 +R 2.5(wC)-.25 G(ommand Line Flags)139.8 602 Q 23.5(...........................\ +....................................................................... 56)3.2 +F 2.5(7.17. Enhanced)87 616.4 R(Command Line Flags)2.5 E 23.5(................\ +......................................................................... 56) +4.9 F 2.5(7.18. Ne)87 630.8 R 2.5(wa)-.25 G(nd Old Con\214guration Line T) +137.57 630.8 Q .4(ypes .......................................................\ +.......................)-.8 F(57)494 630.8 Q 2.5(7.19. Ne)87 645.2 R 2.5(wO) +-.25 G .7(ptions .............................................................\ +...........................................................)140.35 645.2 R(57) +494 645.2 Q 2.5(7.20. Extended)87 659.6 R 1.56(Options .......................\ ..............................................................................\ -.......... 57)4.04 F 2.5(7.22. Ne)87 674 R 2.5(wP)-.25 G(re-De\214ned Macros) -138.69 674 Q 23.5(............................................................\ -........................................ 58)4.06 F 2.5(7.23. Ne)87 688.4 R 2.5 -(wL)-.25 G(HS T)139.24 688.4 Q(ok)-.8 E 1.33(en ..............................\ +...........)2.5 F(57)494 659.6 Q 2.5(7.21. Ne)87 674 R 2.5(wM)-.25 G +(ailer Flags)142.02 674 Q 23.5(...............................................\ +................................................................. 57)4.04 F 2.5 +(7.22. Ne)87 688.4 R 2.5(wP)-.25 G(re-De\214ned Macros)138.69 688.4 Q 23.5(...\ ..............................................................................\ -......)-.1 F(58)494 688.4 Q 2.5(7.24. Bigger)87 702.8 R(Def)2.5 E(aults ......\ +................... 58)4.06 F 2.5(7.23. Ne)87 702.8 R 2.5(wL)-.25 G(HS T)139.24 +702.8 Q(ok)-.8 E 1.33(en .....................................................\ +.............................................................)-.1 F(58)494 +702.8 Q 2.5(7.24. Bigger)87 717.2 R(Def)2.5 E(aults ..........................\ ..............................................................................\ -................................)-.1 E(58)494 702.8 Q 2.5(7.25. Dif)87 717.2 R -(ferent Def)-.25 E(ault T)-.1 E(uning P)-.45 E 1.99(arameters ................\ -..................................................................)-.15 F(58) -494 717.2 Q EP +............)-.1 E(58)494 717.2 Q EP %%Page: 6 64 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Bold@0 SF 198.36(SMM:08-6 Sendmail)72 60 R -(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 2.5 -(7.26. Auto-Quoting)87 96 R(in Addresses)2.5 E 23.5(..........................\ -....................................................................... 58)3.51 -F 2.5(7.27. Symbolic)87 110.4 R(Names On Error Mailer)2.5 E 23.5(.............\ -......................................................................... 58) -4.91 F 2.5(7.28. SMTP)87 124.8 R(VRFY Doesn')2.5 E 2.5(tE)-.18 G 1.18(xpand ..\ +(Installation and Operation Guide)2.5 E/F1 10/Times-Roman@0 SF 2.5(7.25. Dif)87 +96 R(ferent Def)-.25 E(ault T)-.1 E(uning P)-.45 E 1.99(arameters ............\ +......................................................................)-.15 F +(58)494 96 Q 2.5(7.26. Auto-Quoting)87 110.4 R(in Addresses)2.5 E 23.5(.......\ +..............................................................................\ +............ 58)3.51 F 2.5(7.27. Symbolic)87 124.8 R(Names On Error Mailer)2.5 +E 23.5(.......................................................................\ +............... 58)4.91 F 2.5(7.28. SMTP)87 139.2 R(VRFY Doesn')2.5 E 2.5(tE) +-.18 G 1.18(xpand ............................................................\ +................................)209.88 139.2 R(58)494 139.2 Q 2.5(7.29. [IPC]) +87 153.6 R(Mailers Allo)2.5 E 2.5(wM)-.25 G(ultiple Hosts)205.91 153.6 Q 23.5(\ ..............................................................................\ -............)209.88 124.8 R(58)494 124.8 Q 2.5(7.29. [IPC])87 139.2 R -(Mailers Allo)2.5 E 2.5(wM)-.25 G(ultiple Hosts)205.91 139.2 Q 23.5(..........\ -......................................................................... 58) -3.75 F 2.5(7.30. Aliases)87 153.6 R 1.29(Extended ............................\ +..... 58)3.75 F 2.5(7.30. Aliases)87 168 R 1.29(Extended .....................\ ..............................................................................\ -.......)2.5 F(59)494 153.6 Q 2.5(7.31. Portability)87 168 R +..............)2.5 F(59)494 168 Q 2.5(7.31. Portability)87 182.4 R (and Security Enhancements)2.5 E 23.5(........................................\ ....................................... 59)2.68 F 2.5(7.32. Miscellaneous)87 -182.4 R 1.29(Changes .........................................................\ -..............................................)2.5 F(59)494 182.4 Q 2.5(8. A)72 -196.8 R(CKNO)-.4 E .1(WLEDGEMENTS ............................................\ +196.8 R 1.29(Changes .........................................................\ +..............................................)2.5 F(59)494 196.8 Q 2.5(8. A)72 +211.2 R(CKNO)-.4 E .1(WLEDGEMENTS ............................................\ ................................................................)-.35 F(59)494 -196.8 Q(Appendix A.)72 211.2 Q(COMMAND LINE FLA)5 E 1.97(GS ..................\ +211.2 Q(Appendix A.)72 225.6 Q(COMMAND LINE FLA)5 E 1.97(GS ..................\ .......................................................................)-.4 F -(60)494 211.2 Q(Appendix B.)72 225.6 Q -.1(QU)5 G(EUE FILE FORMA).1 E 1.38(TS \ +(60)494 225.6 Q(Appendix B.)72 240 Q -.1(QU)5 G(EUE FILE FORMA).1 E 1.38(TS ..\ ..............................................................................\ -..............)-1.11 F(62)494 225.6 Q(Appendix C.)72 240 Q(SUMMAR)5 E 2.5(YO) --.65 G 2.5(FS)188.85 240 S(UPPOR)202.47 240 Q 2.5(TF)-.6 G 1.12(ILES .........\ -.....................................................................)248.27 -240 R(64)494 240 Q EP +............)-1.11 F(62)494 240 Q(Appendix C.)72 254.4 Q(SUMMAR)5 E 2.5(YO)-.65 +G 2.5(FS)188.85 254.4 S(UPPOR)202.47 254.4 Q 2.5(TF)-.6 G 1.12(ILES ..........\ +....................................................................)248.27 +254.4 R(64)494 254.4 Q EP %%Trailer end %%EOF diff --git a/usr.sbin/sendmail/mailstats/mailstats.c b/usr.sbin/sendmail/mailstats/mailstats.c index 2a9070f99a4..1e11b014cd0 100644 --- a/usr.sbin/sendmail/mailstats/mailstats.c +++ b/usr.sbin/sendmail/mailstats/mailstats.c @@ -40,7 +40,7 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)mailstats.c 8.2 (Berkeley) 7/27/93"; +static char sccsid[] = "@(#)mailstats.c 8.3 (Berkeley) 12/27/93"; #endif /* not lint */ #include <sendmail.h> @@ -63,6 +63,7 @@ main(argc, argv) char *cfile; FILE *cfp; bool mnames; + long frmsgs = 0, frbytes = 0, tomsgs = 0, tobytes = 0; char mtable[MAXMAILERS][MNAMELEN+1]; char sfilebuf[100]; char buf[MAXLINE]; @@ -195,7 +196,14 @@ main(argc, argv) if (mnames) printf(" %s", mtable[i]); printf("\n"); + frmsgs += stat.stat_nf[i]; + frbytes += stat.stat_bf[i]; + tomsgs += stat.stat_nt[i]; + tobytes += stat.stat_bt[i]; } } + printf("========================================\n"); + printf(" T %6ld %10ldK %6ld %10ldK\n", + frmsgs, frbytes, tomsgs, tobytes); exit(EX_OK); } diff --git a/usr.sbin/sendmail/makemap/makemap.8 b/usr.sbin/sendmail/makemap/makemap.8 index 2fd678e7ee0..2ee45c2dd86 100644 --- a/usr.sbin/sendmail/makemap/makemap.8 +++ b/usr.sbin/sendmail/makemap/makemap.8 @@ -101,7 +101,7 @@ This must match the \-N flag in the sendmail.cf .It Fl f Normally all upper case letters in the key are folded to lower case. -This flag disables that behavior. +This flag disables that behaviour. This is intended to mesh with the \-f flag in the \fBK\fP diff --git a/usr.sbin/sendmail/makemap/makemap.c b/usr.sbin/sendmail/makemap/makemap.c index 2f008fbbda1..f2d4aea9ca9 100644 --- a/usr.sbin/sendmail/makemap/makemap.c +++ b/usr.sbin/sendmail/makemap/makemap.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)makemap.c 8.5 (Berkeley) 9/22/93"; +static char sccsid[] = "@(#)makemap.c 8.6 (Berkeley) 11/22/93"; #endif /* not lint */ #include <stdio.h> @@ -262,8 +262,15 @@ main(argc, argv) */ p = strchr(ibuf, '\n'); - if (*p != '\0') + if (p != NULL) *p = '\0'; + else if (!feof(stdin)) + { + fprintf(stderr, "%s: %s: line %d: line too long (%d bytes max)\n", + progname, mapname, lineno, sizeof ibuf); + continue; + } + if (ibuf[0] == '\0' || ibuf[0] == '#') continue; if (isspace(ibuf[0])) diff --git a/usr.sbin/sendmail/src/Makefile b/usr.sbin/sendmail/src/Makefile index c001728ae16..412ddd5f463 100644 --- a/usr.sbin/sendmail/src/Makefile +++ b/usr.sbin/sendmail/src/Makefile @@ -1,3 +1,7 @@ +# +# NetBSD Makefile +# +# $Id: Makefile,v 1.16 1994/01/31 02:40:00 glass Exp $ # @(#)Makefile 8.2 (Berkeley) 8/15/93 PROG= sendmail @@ -21,6 +25,7 @@ SRCS= alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \ mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \ stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \ util.c version.c +LDSTATIC= -static MAN1= newaliases.0 MAN5= aliases.0 MAN8= sendmail.0 @@ -34,7 +39,7 @@ BINMODE=6555 beforeinstall: # install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ # ${DESTDIR}/etc/sendmail.fc - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${DESTDIR}/var/log/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/sendmail.hf \ ${DESTDIR}/usr/share/misc diff --git a/usr.sbin/sendmail/src/Makefile.AIX b/usr.sbin/sendmail/src/Makefile.AIX index 89808114f3f..5a5bda2fde7 100644 --- a/usr.sbin/sendmail/src/Makefile.AIX +++ b/usr.sbin/sendmail/src/Makefile.AIX @@ -5,7 +5,7 @@ # old make program (I recommend that you get and port the new make if you # are going to be doing any signficant work on sendmail). # -# This has been tested on AIX 3.1.5. +# This has been tested on AIX 3.1.5 and 3.2.3e. # # use O=-O (usual) or O=-g (debugging) @@ -19,6 +19,9 @@ O= -g # See READ_ME for a description of how these flags interact. # DBMDEF= -DNDBM -DNEWDB +# +# If you did not install the NEWDB on your AIX platform, use: +#DBMDEF=-DNDBM # environment definitions (e.g., -D_AIX3) ENVDEF= -D_AIX3 @@ -33,6 +36,9 @@ ENVDEF= -D_AIX3 # libraries required on your system LIBS= -ldbm -ldb +# +# If you did not install the NEWDB on your AIX platform, use: +#LIBS= -ldbm # location of sendmail binary (usually /usr/sbin or /usr/lib) BINDIR= ${DESTDIR}/usr/sbin @@ -41,11 +47,13 @@ BINDIR= ${DESTDIR}/usr/sbin STDIR= ${DESTDIR}/var/log # location of sendmail.hf file (usually /usr/share/misc or /usr/lib) -HFDIR= ${DESTDIR}/usr/share/misc +HFDIR= ${DESTDIR}/usr/lib # additional .o files needed OBJADD= +INSTALL=/usr/ucb/install + ################### end of user configuration flags ###################### CFLAGS= -I. $O ${INCDIRS} ${DBMDEF} ${ENVDEF} @@ -80,11 +88,11 @@ sendmail.0: sendmail.8 install: install-sendmail install-docs install-sendmail: sendmail - install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} + ${INSTALL} -O ${BINOWN} -G ${BINGRP} -M ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + ${INSTALL} -c -O ${BINOWN} -G ${BINGRP} -M 644 /dev/null \ ${STDIR}/sendmail.st - install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} + ${INSTALL} -c -O ${BINOWN} -G ${BINGRP} -M 444 sendmail.hf ${HFDIR} # doesn't actually install them -- you may want to install pre-nroff versions install-docs: aliases.0 newaliases.0 sendmail.0 diff --git a/usr.sbin/sendmail/src/Makefile.BSD44 b/usr.sbin/sendmail/src/Makefile.BSD44 index 7439d1e7b69..877c96046f4 100644 --- a/usr.sbin/sendmail/src/Makefile.BSD44 +++ b/usr.sbin/sendmail/src/Makefile.BSD44 @@ -1,4 +1,4 @@ -# @(#)Makefile 8.2 (Berkeley) 8/15/93 +# @(#)Makefile 8.3 (Berkeley) 12/20/93 PROG= sendmail @@ -34,7 +34,7 @@ BINMODE=6555 beforeinstall: # install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ # ${DESTDIR}/etc/sendmail.fc - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${DESTDIR}/var/log/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/sendmail.hf \ ${DESTDIR}/usr/share/misc diff --git a/usr.sbin/sendmail/src/Makefile.IRIX b/usr.sbin/sendmail/src/Makefile.IRIX index 733aaec6781..9ddd03021fc 100644 --- a/usr.sbin/sendmail/src/Makefile.IRIX +++ b/usr.sbin/sendmail/src/Makefile.IRIX @@ -83,7 +83,7 @@ install: install-sendmail install-docs install-sendmail: sendmail install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} diff --git a/usr.sbin/sendmail/src/Makefile.Linux b/usr.sbin/sendmail/src/Makefile.Linux index f93bb2ddeab..0edcb4f56f3 100644 --- a/usr.sbin/sendmail/src/Makefile.Linux +++ b/usr.sbin/sendmail/src/Makefile.Linux @@ -21,7 +21,7 @@ O= -O DBMDEF= -DNDBM # environment definitions (e.g., -D_AIX3) -ENVDEF= -D__USE_BSD -U__USE_POSIX2 +ENVDEF= -D__USE_BSD # see also conf.h for additional compilation flags @@ -47,7 +47,7 @@ HFDIR= ${DESTDIR}/usr/lib OBJADD= # additional pseudo-sources needed -BEFORE= +BEFORE= features.h ################### end of user configuration flags ###################### @@ -59,7 +59,7 @@ OBJS= alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \ savemail.o srvrsmtp.o stab.o stats.o sysexits.o \ trace.o udb.o usersmtp.o util.o version.o ${OBJADD} -LINKS= ${DESTDIR}/usr/ucb/newaliases ${DESTDIR}/usr/ucb/mailq +LINKS= ${DESTDIR}/usr/bin/newaliases ${DESTDIR}/usr/bin/mailq BINOWN= root BINGRP= kmem BINMODE=6555 @@ -78,6 +78,9 @@ dirent.h: echo "#include <sys/dir.h>" > dirent.h echo "#define dirent direct" >> dirent.h +features.h: + ln features.linux.h $@ + NROFF= nroff aliases.0: aliases.5 @@ -94,7 +97,7 @@ install: install-sendmail install-docs install-sendmail: sendmail install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} diff --git a/usr.sbin/sendmail/src/Makefile.NetBSD b/usr.sbin/sendmail/src/Makefile.NetBSD index 7def6f669da..bba5a3d4b92 100644 --- a/usr.sbin/sendmail/src/Makefile.NetBSD +++ b/usr.sbin/sendmail/src/Makefile.NetBSD @@ -1,7 +1,7 @@ # # NetBSD Makefile # - +# $Id: Makefile.NetBSD,v 1.2 1994/01/31 02:40:16 glass Exp $ # @(#)Makefile 8.2 (Berkeley) 8/15/93 PROG= sendmail @@ -14,7 +14,7 @@ PROG= sendmail # databases are read, but the new format will be used on any rebuilds. On # really gnarly systems, you can set this to null; it will crawl like a high # spiral snail, but it will work. -DBMDEF= -DNEWDB -DNDBM +DBMDEF= -DNEWDB -DNIS #nasty warning about gcc 2.4.x caused bugs CFLAGS=-I${.CURDIR} ${DBMDEF} -DNETISO @@ -25,8 +25,6 @@ SRCS= alias.c arpadate.c clock.c collect.c conf.c convtime.c daemon.c \ mci.c parseaddr.c queue.c readcf.c recipient.c savemail.c srvrsmtp.c \ stab.c stats.c sysexits.c trace.c udb.c usersmtp.c \ util.c version.c -DPADD= $(LIBUTIL) -LDADD= -lutil MAN1= newaliases.0 MAN5= aliases.0 MAN8= sendmail.0 diff --git a/usr.sbin/sendmail/src/Makefile.OSF1 b/usr.sbin/sendmail/src/Makefile.OSF1 index ddc5f56793f..8a442648418 100644 --- a/usr.sbin/sendmail/src/Makefile.OSF1 +++ b/usr.sbin/sendmail/src/Makefile.OSF1 @@ -29,7 +29,7 @@ ENVDEF= -Olimit 1000 INCDIRS=-I/usr/sww/include/db # library directories -LIBDIRS=-L/usr/sww/lib +LIBDIRS=-L/usr/sww/lib -L/usr/shlib -L/usr/lib # libraries required on your system LIBS= -ldbm @@ -47,7 +47,7 @@ HFDIR= ${DESTDIR}/usr/share/lib OBJADD= # additional link flags -LDADD= -non_shared +#LDADD= -non_shared ################### end of user configuration flags ###################### @@ -69,7 +69,7 @@ ALL= sendmail aliases.0 newaliases.0 sendmail.0 all: ${ALL} sendmail: ${BEFORE} ${OBJS} - ${CC} -o sendmail ${LDFLAGS} ${OBJS} ${LIBDIRS} ${LIBS} + ${CC} -o sendmail ${LDADD} ${OBJS} ${LIBDIRS} ${LIBS} aliases.0: aliases.5 nroff -h -mandoc aliases.5 > aliases.0 @@ -86,8 +86,8 @@ install-sendmail: sendmail installbsd -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done cp /dev/null ${STDIR}/sendmail.st - chmod ${BINMOD} ${STDIR}/sendmail.st - chown ${BINGRP}.${BINGRP} ${STDIR}/sendmail.st + chmod 644 ${STDIR}/sendmail.st + chown ${BINOWN}.${BINGRP} ${STDIR}/sendmail.st installbsd -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} rm -f /usr/sbin/smtpd diff --git a/usr.sbin/sendmail/src/Makefile.Solaris b/usr.sbin/sendmail/src/Makefile.Solaris index 3b58393e616..1e006fdfb36 100644 --- a/usr.sbin/sendmail/src/Makefile.Solaris +++ b/usr.sbin/sendmail/src/Makefile.Solaris @@ -9,9 +9,10 @@ # # use O=-O (usual) or O=-g (debugging) -O= -O +# warning: do not use -O with gcc +O= -CC= gcc -V2.3.3 +CC= gcc # define the database mechanism used for alias lookups: # -DNDBM -- use new DBM @@ -20,30 +21,31 @@ CC= gcc -V2.3.3 # The really old (V7) DBM library is no longer supported. # See READ_ME for a description of how these flags interact. # -DBMDEF= -DNDBM +DBMDEF= -DNDBM -DNIS # environment definitions (e.g., -D_AIX3) +# include -DSOLARIS_2_3 for version 2.3 and higher ENVDEF= -DSOLARIS # see also conf.h for additional compilation flags # include directories -INCDIRS=-I/usr/sww/include/db +INCDIRS=-I/usr/sww/include/db -I. # library directories -LIBDIRS=-L/usr/sww/lib -L/usr/ucblib +LIBDIRS=-L/usr/sww/lib # libraries required on your system LIBS= -lresolv -lsocket -lnsl -lelf # location of sendmail binary (usually /usr/sbin or /usr/lib) -BINDIR= ${DESTDIR}/usr/sbin +BINDIR= ${DESTDIR}/usr/lib # location of sendmail.st file (usually /var/log or /usr/lib) STDIR= ${DESTDIR}/var/log # location of sendmail.hf file (usually /usr/share/misc or /usr/lib) -HFDIR= ${DESTDIR}/usr/share/misc +HFDIR= ${DESTDIR}/etc/mail # additional .o files needed OBJADD= @@ -85,7 +87,7 @@ install: install-sendmail install-docs install-sendmail: sendmail ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} diff --git a/usr.sbin/sendmail/src/Makefile.SunOS b/usr.sbin/sendmail/src/Makefile.SunOS index faa9882279d..93409317348 100644 --- a/usr.sbin/sendmail/src/Makefile.SunOS +++ b/usr.sbin/sendmail/src/Makefile.SunOS @@ -6,6 +6,9 @@ # are going to be doing any signficant work on sendmail). # # This has been tested on SunOS 4.1.[12]. +# For SunOS 4.0.3, add -DSUNOS403 to the ENVDEF macro, and +# create empty files stdlib.h and stddef.h in your +# compile directory. # # use O=-O (usual) or O=-g (debugging) @@ -21,6 +24,7 @@ O= -O DBMDEF= -DNDBM -DNEWDB -DNIS # environment definitions (e.g., -D_AIX3) +# need to add -DSUNOS403 if you are on a SunOS 4.0.3 system ENVDEF= # see also conf.h for additional compilation flags @@ -85,7 +89,7 @@ install: install-sendmail install-docs install-sendmail: sendmail install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} diff --git a/usr.sbin/sendmail/src/Makefile.ULTRIX b/usr.sbin/sendmail/src/Makefile.ULTRIX index d8d3fa8e0eb..66c73fa4e27 100644 --- a/usr.sbin/sendmail/src/Makefile.ULTRIX +++ b/usr.sbin/sendmail/src/Makefile.ULTRIX @@ -85,7 +85,7 @@ install: install-sendmail install-docs install-sendmail: sendmail install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} diff --git a/usr.sbin/sendmail/src/Makefile.Utah b/usr.sbin/sendmail/src/Makefile.Utah index 5246b3fe149..bc3ad393d16 100644 --- a/usr.sbin/sendmail/src/Makefile.Utah +++ b/usr.sbin/sendmail/src/Makefile.Utah @@ -31,9 +31,7 @@ BINGRP= kmem BINMODE=6555 beforeinstall: -# install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ -# ${DESTDIR}/etc/sendmail.fc - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${DESTDIR}/var/log/sendmail.st install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/sendmail.hf \ ${DESTDIR}/usr/share/misc diff --git a/usr.sbin/sendmail/src/Makefile.dist b/usr.sbin/sendmail/src/Makefile.dist index e289a7d065b..127e6a7bd7f 100644 --- a/usr.sbin/sendmail/src/Makefile.dist +++ b/usr.sbin/sendmail/src/Makefile.dist @@ -5,7 +5,7 @@ # old make program (I recommend that you get and port the new make if you # are going to be doing any signficant work on sendmail). # -# @(#)Makefile.dist 8.7 (Berkeley) 9/3/93 +# @(#)Makefile.dist 8.9 (Berkeley) 12/20/93 # # use O=-O (usual) or O=-g (debugging) @@ -80,14 +80,16 @@ newaliases.0: newaliases.1 sendmail.0: sendmail.8 nroff -h -mandoc sendmail.8 > sendmail.0 +INSTALL=install + install: install-sendmail install-docs install-sendmail: sendmail - install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done - install -c -o ${BINOWN} -g ${BINGRP} -m 666 /dev/null \ + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \ ${STDIR}/sendmail.st - install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} # doesn't actually install them -- you may want to install pre-nroff versions install-docs: aliases.0 newaliases.0 sendmail.0 diff --git a/usr.sbin/sendmail/src/READ_ME b/usr.sbin/sendmail/src/READ_ME index b599928b23d..a2e7ad793bf 100644 --- a/usr.sbin/sendmail/src/READ_ME +++ b/usr.sbin/sendmail/src/READ_ME @@ -30,7 +30,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# @(#)READ_ME 8.31 (Berkeley) 10/31/93 +# @(#)READ_ME 8.47 (Berkeley) 1/12/94 # This directory contains the source files for sendmail. @@ -39,35 +39,86 @@ For detailed instructions, please read the document ../doc/op.me: eqn ../doc/op.me | pic | ditroff -me -The Makefile is for the new (4.4BSD) Berkeley make, available from -ftp.uu.net in the directory /systems/unix/bsd-sources/usr.bin/make. -(Paul Southworth <pauls@umich.edu> published a description of porting -this make in comp.unix.bsd.) This Makefile has assumptions about the -4.4 file system layout built in. +The Makefile is for the new (4.4BSD) Berkeley make and uses syntax +that is not recognized by older makes. It also has assumptions +about the 4.4 file system layout built in. See below for details +about other Makefiles. There is also a Makefile.dist which is much less clever, but works on the old traditional make. You can use this using: make -f Makefile.dist -There are a bunch of other Makefiles for other systems -- these are -the ones that I use, they have "Berkeley quirks" in them, and I don't -guarantee that they will work unmodified in your environment. However, -they are all designed for the old make and can be used to help you get -started. They have names like "Makefile.HPUX". Many of them include --I/usr/sww/include/db and -L/usr/sww/lib -- this is Berkeley's -location for the new database libraries, described below. +************************************************** +** Read below for more details of Makefiles. ** +************************************************** There is also a shell script (makesendmail) that tries to be clever about using object subdirectories. It's pretty straightforward, and may help if you share a source tree among different architectures. -IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE RUNNING GCC -2.4.x. THERE IS A BUG IN THE GCC OPTIMIZER THAT CAUSES SENDMAIL TO -FAIL MISERABLY. +************************************************************************** +** IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE RUNNING ** +** GCC 2.4.x or 2.5.x. THERE IS A BUG IN THE GCC OPTIMIZER THAT ** +** CAUSES SENDMAIL COMPILES TO FAIL MISERABLY. ** +************************************************************************** + +Jim Wilson of Cygnus believes he has found the problem -- it will +probably be fixed in GCC 2.5.6 -- but until this is verified, be +very suspicious of gcc -O. + +************************************************************************** +** IMPORTANT: Read the appropriate paragraphs in the section on ** +** ``Operating System and Compile Quirks''. ** +************************************************************************** + + ++-----------+ +| MAKEFILES | ++-----------+ + +The "Makefile"s in these directories are from 4.4 BSD, and hence +really only work properly if you are on a 4.4 system. In particular, +they use new syntax that will not be recognized on old make programs, +and some of them do things like ``.include ../../Makefile.inc'' to +pick up some system defines. If you are getting sendmail separately, +these files won't be included in the distribution, as they are +outside of the sendmail tree. + +Instead, you should use one of the other Makefiles, such as +Makefile.SunOS for a SunOS system, and so forth. These should +work with the version of make that is appropriate for that +system. + +There are a bunch of other Makefiles for other systems with names +like Makefile.HPUX for an HP-UX system. They use the version of +make that is native for that system. These are the Makefiles that +I use, and they have "Berkeley quirks" in them. I can't guarantee +that they will work unmodified in your environment. Many of them +include -I/usr/sww/include/db and -L/usr/sww/lib -- this is Berkeley's +location (the ``Software Warehouse'') for the new database libraries, +described below. You don't have to remove these definitions if you +don't have these directories. + +Please look for an appropriate Makefile before you start trying to +compile with Makefile or Makefile.dist. + +If you want to port the new Berkeley make, you can get it from +ftp.uu.net in the directory /systems/unix/bsd-sources/usr.bin/make. +Diffs and instructions for building this version of make under +SunOS 4.1.x are available on ftp.css.itd.umich.edu in +/pub/systems/sun/Net2-make.sun4.diff.Z. Diffs and instructions +for building this version of make under IBM AIX 3.2.4 are available +on ftp.uni-stuttgart.de in /sw/src/patches/bsd-make-rus-patches. +Paul Southworth <pauls@umich.edu> published a description of porting +this make in comp.unix.bsd. + +The complete text of the Makefile.inc that is in the parent of the +sendmail directory is: + + # @(#)Makefile.inc 8.1 (Berkeley) 6/6/93 -IMPORTANT: Read the appropriate paragraphs in the section on -``Operating System and Compile Quirks''. + BINDIR?= /usr/sbin +----------------------+ @@ -83,7 +134,9 @@ older DBM implementation -- the very old V7 implementation is no longer supported), and NIS (Network Information Services). Used alone these just include the support they indicate. [If you are using NEWDB, get the latest version from FTP.CS.Berkeley.EDU in /ucb/4bsd. DO NOT -use the version from the Net2 distribution!] +use the version from the Net2 distribution! However, if you are on +BSD/386 or 386BSD-based systems, use the one that already exists +on your system. You may need to define OLD_NEWDB to do this.] If NEWDB and NDBM are defined (but not NIS), then sendmail will read NDBM format alias files, but the next time a newaliases is run the @@ -119,19 +172,22 @@ symbols availble, requiring the following compilation flags in the Makefile: SOLARIS Define this if you are running Solaris 2.0 or higher. +SOLARIS_2_3 Define this if you are running Solaris 2.3 or higher. +SUNOS403 Define this if you are running SunOS 4.0.3. NeXT Define this if you are on a NeXT box. (This one may be pre-defined for you.) There are other hacks you have to make -- see below. _AIX3 Define this if you are IBM AIX 3.x. RISCOS Define this if you are running RISC/os from MIPS. _SCO_unix_ Define this if you are on SCO UNIX. +_SCO_unix_4_2 Define this if you are on SCO Open Server 3.2v4. If you are a system that sendmail has already been ported to, you probably won't have to touch these. But if you are porting, you may have to tweak the following compilation flags in conf.h in order to get it to compile and link properly: -SYSTEM5 Adjust for System V. +SYSTEM5 Adjust for System V (not necessarily Release 4). SYS5SIGNALS Use System V signal semantics -- the signal handler is automatically dropped when the signal is caught. If this is not set, use POSIX/BSD semantics, where the @@ -166,12 +222,40 @@ HASSETREUID Define this if you have setreuid(2) ***AND*** root can your system has setresuid(2), (for example, on HP-UX) in which case you will also have to #define setreuid(r, e) to be the appropriate call. Some systems (such as Solaris) - have a compatibility routine that doesn't work properly. + have a compatibility routine that doesn't work properly, + but may have "saved user ids" properly implemented so you + can ``#define setreuid(r, e) seteuid(e)'' and have it work. The important thing is that you have a call that will set - the effective uid independently of the real or saved uid. - Setting this improves the security somewhat, since - sendmail doesn't have to read .forward and :include: files - as root. + the effective uid independently of the real or saved uid + and be able to set the effective uid back again when done. + There's a test program in ../test/t_setreuid.c that will + try things on your system. Setting this improves the + security, since sendmail doesn't have to read .forward + and :include: files as root. There are certain attacks + that may be unpreventable without this call. +HASLSTAT Define this if you have symbolic links (and thus the + lstat(2) system call). This improves security. Unlike + most other options, this one is on by default, so you + need to #undef it in conf.h if you don't have symbolic + links (these days everyone does). +NEEDGETOPT Define this if you need a reimplementation of getopt(3). + On some systems, getopt does very odd things if called + to scan the arguments twice. This flag will ask sendmail + to compile in a local version of getopt that works + properly. +NEEDSTRTOL Define this if your standard C library does not define + strtol(3). This will compile in a local version. +NEEDVPRINTF Define this if your standard C library does not define + vprintf(3). Note that the resulting fake implementation + is not very elegant and may not even work on some + architectures. +HASGETUSERSHELL Define this to 1 if you have getusershell(3) in your + standard C library. If this is not defined, or is defined + to be 0, sendmail will scan the /etc/shells file (no + NIS-style support, defaults to /bin/sh and /bin/csh if + that file does not exist) to get a list of unrestricted + user shells. This is used to determine whether users + are allowed to forward their mail to a program or a file. GIDSET_T The type of entries in a gidset passed as the second argument to getgroups(2). Historically this has been an int, so this is the default, but some systems (such as @@ -206,6 +290,17 @@ ERRLIST_PREDEFINED WAITUNION The wait(2) routine takes a "union wait" argument instead of an integer argument. This is for compatibility with old versions of BSD. +SCANF You can set this to extend the F command to accept a + scanf string -- this gives you a primitive parser for + class definitions -- BUT it can make you vulnerable to + core dumps if the target file is poorly formed. +SYSLOG_BUFSIZE You can define this to be the size of the buffer that + syslog accepts. If it is not defined, it assumes a + 1024-byte buffer. If the buffer is very small (under + 256 bytes) the log message format changes -- each + e-mail message will log many more messages, since it + will log each piece of information as a separate line + in syslog. +-----------------------+ @@ -226,10 +321,11 @@ NIS Define this to get NIS (YP) support for aliases and maps. Normally defined in the Makefile. USERDB Include support for the User Information Database. Implied by NEWDB in conf.h. -IDENTPROTO Define this to get IDENT (RFC 1413) protocol support. +IDENTPROTO Define this as 1 to get IDENT (RFC 1413) protocol support. This is assumed unless you are running on Ultrix or HP-UX, both of which have a problem in the UDP - implementation. + implementation. You can define it to be 0 to explicitly + turn off IDENT protocol support. MIME Include support for MIME-encapsulated error messages. LOG Set this to get syslog(3) support. Defined by default in conf.h. You want this if at all possible. @@ -256,10 +352,69 @@ SETPROCTITLE Try to set the string printed by "ps" to something default in conf.h. ++---------------------+ +| DNS/RESOLVER ISSUES | ++---------------------+ + +Many systems have old versions of the resolver library. At a minimum, +you should be running BIND 4.8.3; older versions may compile, but they +have known bugs that should give you pause. + +Common problems in old versions include "undefined" errors for +dn_skipname. + +Some people have had a problem with BIND 4.9; it uses some routines +that it expects to be externally defined such as strerror(). It may +help to link with "-l44bsd" to solve this problem. + +!PLEASE! be sure to link with the same version of the resolver as +the header files you used -- some people have used the 4.9 headers +and linked with BIND 4.8 or vice versa, and it doesn't work. +Unfortunately, it doesn't fail in an obvious way -- things just +subtlely don't work. + + +-------------------------------------+ | OPERATING SYSTEM AND COMPILE QUIRKS | +-------------------------------------+ +GCC 2.5.x problems *** IMPORTANT *** + Date: Mon, 29 Nov 93 19:08:44 PST + From: wilson@cygnus.com (Jim Wilson) + Message-Id: <9311300308.AA04608@cygnus.com> + To: kenner@vlsi1.ultra.nyu.edu + Subject: [cattelan@thebarn.com: gcc 2.5.4-2.5.5 -O bug] + Cc: cattelan@thebarn.com, rms@gnu.ai.mit.edu, sendmail@cs.berkeley.edu + + This fixes a problem that occurs when gcc 2.5.5 is used to compile + sendmail 8.6.4 with optimization on a sparc. + + Mon Nov 29 19:00:14 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * reload.c (find_reloads_toplev): Replace obsolete reference to + BYTE_LOADS_*_EXTEND with LOAD_EXTEND_OP. + + *** clean-ss-931128/reload.c Sun Nov 14 16:20:01 1993 + --- ss-931128/reload.c Mon Nov 29 18:52:55 1993 + *************** find_reloads_toplev (x, opnum, type, ind + *** 3888,3894 **** + force a reload in that case. So we should not do anything here. */ + + else if (regno >= FIRST_PSEUDO_REGISTER + ! #if defined(BYTE_LOADS_ZERO_EXTEND) || defined(BYTE_LOADS_SIGN_EXTEND) + && (GET_MODE_SIZE (GET_MODE (x)) + <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) + #endif + --- 3888,3894 ---- + force a reload in that case. So we should not do anything here. */ + + else if (regno >= FIRST_PSEUDO_REGISTER + ! #ifdef LOAD_EXTEND_OP + && (GET_MODE_SIZE (GET_MODE (x)) + <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) + #endif + + SunOS 4.x (Solaris 1.x) You may have to use -lresolv on SunOS. However, beware that this links in a new version of gethostbyname that does not @@ -268,7 +423,8 @@ SunOS 4.x (Solaris 1.x) Some people have reported problems with the SunOS version of -lresolv and/or in.named, and suggest that you get a newer version. The symptoms are delays when you connect to the - SMTP server on a SunOS machine. There is a version of BIND + SMTP server on a SunOS machine or having your domain added to + addresses inappropriately. There is a version of BIND version 4.9 on gatekeeper.DEC.COM in pub/BSD/bind/4.9. There is substantial disagreement about whether you can make @@ -299,15 +455,21 @@ Solaris 2.x (SunOS 5.x) The Solaris "syslog" function is apparently limited to something about 90 characters because of a kernel limitation. If you have - source code, you can probably up this number. Bill Wisner - <wisner@well.sf.ca.us> was able to get an unofficial, unsupported - patch. + source code, you can probably up this number. The syslogd patch + is included in kernel jumbo patch for Solaris 2.2 as of revision + -39 or so. At least one person is running with patch 100999-45 + and their long lost sendmail logging is finally showing up. At + least one other person is running with patch 101318 installed + under Solaris 2.3 with success. OSF/1 - If you are compiling on OSF/1 (DEC Alpha), you must use -lmld - and -non_shared (otherwise it core dumps on startup). Also, - the enclosed makefile removed /usr/sbin/smtpd; if you need it, - just create the link to the sendmail binary. + If you are compiling on OSF/1 (DEC Alpha), you must use + -L/usr/shlib (otherwise it core dumps on startup). You may also + need -mld to get the nlist() function, although some versions + apparently don't need this. + + Also, the enclosed makefile removed /usr/sbin/smtpd; if you need + it, just create the link to the sendmail binary. NeXT If you are compiling on NeXT, you will have to create an empty @@ -329,9 +491,31 @@ NeXT You may have to use -DNeXT. -BSDI (BSD/386) - I have reports that the "m4" from BSDI won't handle the config - files properly. I haven't had a chance to test this myself. +BSDI (BSD/386) 1.0, NetBSD 0.9, FreeBSD 1.0 + The "m4" from BSDI won't handle the config files properly. + I haven't had a chance to test this myself. + + The M4 shipped in FreeBSD and NetBSD 0.9 don't handle the config + files properly. One must use either GNU m4 1.1 or the PD-M4 + recently posted in comp.os.386bsd.bugs (and maybe others). + NetBSD-current includes the PD-M4 (as stated in the NetBSD file + CHANGES). + + FreeBSD 1.0 RELEASE has uname(2) now. Use -DUSEUNAME in order to + use it (look into Makefile.FreeBSD). NetBSD-current may have + it too but it has not been verified. + + You cannot port the latest version of the Berkeley db library + and use it with sendmail without recompiling the world. This + is because C library routines use the older version which have + incompatible header files -- the result is that it can't read + other system files, such as /etc/passwd, unless you use the + new db format throughout your system. You should normally just + use the version of db supplied in your release. You may need + to use -DOLD_NEWDB to make this work -- this turns off some + new interface calls (for file locking) that are not in older + versions of db. You'll get compile errors if you need this + flag and don't have it set. 4.3BSD If you are running a "virgin" version of 4.3BSD, you'll have @@ -346,31 +530,6 @@ BSDI (BSD/386) copy ../contrib/oldbind.compat.c into src and add oldbind.compat.o to OBJADD in the Makefile. -Linux - From: Karl London <karl@borg.demon.co.uk> - Subject: Little bit to add to a readme for Linux for 8.6 - Date: Fri, 10 Sep 1993 20:16:05 +0100 (BST) - - Below is a copy of a section of the /usr/include/unistd.h from - linux libc-4.4.1 which needs changing because of a bug in the - header files. Should be fixed for future releases.. - - Karl - - The #if 0 and #endif are new!! - - ------- - - If OPTS begins with `--', then non-option arguments - are treated as arguments to the option '\0'. - This behavior is specific to the GNU `getopt'. */ - #if 0 - extern int getopt __P ((int __argc, char *__const * __argv, - __const char *__opts)); - #endif - extern int opterr; - extern int optind; - A/UX Date: Tue, 12 Oct 1993 18:28:28 -0400 (EDT) From: "Eric C. Hagberg" <hagberg@med.cornell.edu> @@ -401,6 +560,64 @@ DG/UX DG/UX -- the person who has this working, Douglas Anderson <dlander@afterlife.ncsc.mil>, used procmail instead. +System V Release 4 Based Systems + There is a single Makefile that is intended for all SVR4-based + systems (called Makefile.SVR4). It defines __svr4__, which is + predefined by some compilers. If your compiler already defines + this compile variable, you can delete the definition from the + Makefile. + + It's been tested on Dell Issue 2.2. + +DELL SVR4 + Date: Mon, 06 Dec 1993 10:42:29 EST + From: "Kimmo Suominen" <kim@grendel.lut.fi> + Message-ID: <2d0352f9.lento29@lento29.UUCP> + To: eric@cs.berkeley.edu + Cc: sendmail@cs.berkeley.edu + Subject: Notes for DELL SVR4 + + Eric, + + Here are some notes for compiling Sendmail 8.6.4 on DELL SVR4. I ran + across these things when helping out some people who contacted me by + e-mail. + + 1) Use gcc 2.4.5 (or later?). Dell distributes gcc 2.1 with their + Issue 2.2 Unix. It is too old, and gives you problems with + clock.c, because sigset_t won't get defined in <sys/signal.h>. + This is due to a problematic protection rule in there, and is + fixed with gcc 2.4.5. + + 2) If you don't use the new Berkeley DB (-DNEWDB), then you need + to add "-lc -lucb" to the libraries to link with. This is because + the -ldbm distributed by Dell needs the bcopy, bcmp and bzero + functions. It is important that you specify both libraries in + the given order to be sure you only get the BSTRING functions + from the UCB library (and not the signal routines etc.). + + 3) Don't leave out "-lelf" even if compiling with "-lc -lucb". + The UCB library also has another copy of the nlist routines, + but we do want the ones from "-lelf". + + If anyone needs a compiled gcc 2.4.5 and/or a ported DB library, they + can use anonymous ftp to fetch them from lut.fi in the /kim directory. + They are copies of what I use on grendel.lut.fi, and offering them + does not imply that I would also support them. I have sent the DB + port for SVR4 back to Keith Bostic for inclusion in the official + distribution, but I haven't heard anything from him as of today. + + - gcc-2.4.5-svr4.tar.gz (gcc 2.4.5 and the corresponding libg++) + - db-1.72.tar.gz (with source, objects and a installed copy) + + Cheers + + Kim + -- + * Kimmo.Suominen@lut.fi * SysVr4 enthusiast at GRENDEL.LUT.FI * + * KIM@FINFILES.BITNET * Postmaster and Hostmaster at LUT.FI * + * + 358 200 865 718 * Unix area moderator at NIC.FUNET.FI * + + Non-DNS based sites This version of sendmail always tries to connect to the Domain Name System (DNS) to resolve names, regardless of the setting @@ -426,6 +643,42 @@ GNU getopt by the double call. Use the version in conf.c instead. ++--------------+ +| MANUAL PAGES | ++--------------+ + +The manual pages have been written against the -mandoc macros +instead of the -man macros. The latest version of groff has them +included. You can also get a copy from FTP.UU.NET in directory +/systems/unix/bsd-sources/share/tmac. + + ++-----------------+ +| DEBUGGING HOOKS | ++-----------------+ + +As of 8.6.5, sendmail daemons will catch a SIGUSR1 signal and log +some debugging output (logged at LOG_DEBUG severity). The +information dumped is: + + * The value of the $j macro. + * A warning if $j is not in the set $=w. + * A list of the open file descriptors. + * The contents of the connection cache. + * If ruleset 89 is defined, it is evaluated and the results printed. + +This allows you to get information regarding the runtime state of the +daemon on the fly. This should not be done too frequently, since +the process of rewriting may lose memory which will not be recovered. +Also, ruleset 89 may call non-reentrant routines, so there is a small +non-zero probability that this will cause other problems. It is +really only for debugging serious problems. + +A typical formulation of ruleset 89 would be: + + R$* $@ $>0 some test address + + +-----------------------------+ | DESCRIPTION OF SOURCE FILES | +-----------------------------+ @@ -489,4 +742,4 @@ version.c The version number and information about this Eric Allman -(Version 8.31, last update 10/31/93 11:32:52) +(Version 8.47, last update 1/12/94 05:59:56) diff --git a/usr.sbin/sendmail/src/alias.c b/usr.sbin/sendmail/src/alias.c index a89e27301f1..66d81d77bf6 100644 --- a/usr.sbin/sendmail/src/alias.c +++ b/usr.sbin/sendmail/src/alias.c @@ -36,7 +36,7 @@ # include <pwd.h> #ifndef lint -static char sccsid[] = "@(#)alias.c 8.19 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)alias.c 8.21 (Berkeley) 12/11/93"; #endif /* not lint */ @@ -144,7 +144,7 @@ alias(a, sendq, e) owner = aliaslookup(obuf, e); if (owner != NULL) { - if (strchr(owner, ',') != NULL) + if (strpbrk(owner, ",:/|\"") != NULL) owner = obuf; a->q_owner = newstr(owner); } @@ -570,7 +570,7 @@ readaliases(map, af, automatic) } if (parseaddr(line, &al, RF_COPYALL, ':', NULL, CurEnv) == NULL) { - syserr("554 %s... illegal alias name", al.q_paddr); + syserr("554 %.40s... illegal alias name", line); continue; } diff --git a/usr.sbin/sendmail/src/aliases.5 b/usr.sbin/sendmail/src/aliases.5 index 39f380516ec..f40f64de10b 100644 --- a/usr.sbin/sendmail/src/aliases.5 +++ b/usr.sbin/sendmail/src/aliases.5 @@ -29,9 +29,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)aliases.5 8.1 (Berkeley) 6/16/93 +.\" @(#)aliases.5 8.2 (Berkeley) 12/11/93 .\" -.Dd June 16, 1993 +.Dd December 11, 1993 .Dt ALIASES 5 .Os BSD 4 .Sh NAME @@ -94,7 +94,7 @@ change to take effect. If you have compiled .Xr sendmail with DBM support instead of NEWDB, -you may have encounter problems in +you may have encountered problems in .Xr dbm 3 restricting a single alias to about 1000 bytes of information. You can get longer aliases by ``chaining''; that is, make the last name in diff --git a/usr.sbin/sendmail/src/cdefs.h b/usr.sbin/sendmail/src/cdefs.h index c4157bcd1a8..afc1a68ef19 100644 --- a/usr.sbin/sendmail/src/cdefs.h +++ b/usr.sbin/sendmail/src/cdefs.h @@ -2,6 +2,9 @@ * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * + * This code is derived from software contributed to Berkeley by + * Berkeley Software Design, Inc. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -30,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)cdefs.h 8.2 (Berkeley) 10/4/93 + * @(#)cdefs.h 8.5 (Berkeley) 1/4/94 */ #ifndef _CDEFS_H_ @@ -56,43 +59,64 @@ #define __CONCAT(x,y) x ## y #define __STRING(x) #x -#if !defined(__GNUC__) && !defined(__cplusplus) -#define inline -#endif +#define __const const /* define reserved names to standard */ +#define __signed signed +#define __volatile volatile +#if defined(__cplusplus) +#define __inline inline /* convert to C++ keyword */ +#else +#ifndef __GNUC__ +#define __inline /* delete GCC keyword */ +#endif /* !__GNUC__ */ +#endif /* !__cplusplus */ #else /* !(__STDC__ || __cplusplus) */ #define __P(protos) () /* traditional C preprocessor */ #define __CONCAT(x,y) x/**/y #define __STRING(x) "x" -#ifdef __GNUC__ -#define const __const /* GCC: ANSI C with -traditional */ -#define inline __inline -#define signed __signed -#define volatile __volatile - -#else /* !__GNUC__ */ +#ifndef __GNUC__ +#define __const /* delete pseudo-ANSI C keywords */ +#define __inline +#define __signed +#define __volatile +/* + * In non-ANSI C environments, new programs will want ANSI-only C keywords + * deleted from the program and old programs will want them left alone. + * When using a compiler other than gcc, programs using the ANSI C keywords + * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. + * When using "gcc -traditional", we assume that this is the intent; if + * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. + */ +#ifndef NO_ANSI_KEYWORDS #define const /* delete ANSI C keywords */ #define inline #define signed #define volatile +#endif #endif /* !__GNUC__ */ #endif /* !(__STDC__ || __cplusplus) */ /* - * GCC has extensions for declaring functions as `pure' (always returns - * the same value given the same inputs, i.e., has no external state and - * no side effects) and `dead' (nonreturning). These mainly affect - * optimization and warnings. Unfortunately, GCC complains if these are - * used under strict ANSI mode (`gcc -ansi -pedantic'), hence we need to - * define them only if compiling without this. + * GCC1 and some versions of GCC2 declare dead (non-returning) and + * pure (no side effects) functions using "volatile" and "const"; + * unfortunately, these then cause warnings under "-ansi -pedantic". + * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of + * these work for GNU C++ (modulo a slight glitch in the C++ grammar + * in the distribution version of 2.5.5). */ +#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5 +#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) -#define __dead __volatile -#define __pure __const -#else -#define __dead -#define __pure +#define __dead __volatile +#define __pure __const +#endif +#endif + +/* Delete pseudo-keywords wherever they are not available or needed. */ +#ifndef __dead +#define __dead +#define __pure #endif #endif /* !_CDEFS_H_ */ diff --git a/usr.sbin/sendmail/src/clock.c b/usr.sbin/sendmail/src/clock.c index 8c78bc182c5..45ef1c2782c 100644 --- a/usr.sbin/sendmail/src/clock.c +++ b/usr.sbin/sendmail/src/clock.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)clock.c 8.7 (Berkeley) 10/21/93"; +static char sccsid[] = "@(#)clock.c 8.8 (Berkeley) 1/12/94"; #endif /* not lint */ # include "sendmail.h" @@ -60,7 +60,7 @@ static char sccsid[] = "@(#)clock.c 8.7 (Berkeley) 10/21/93"; ** none. */ -static void tick(); +static void tick __P((int)); EVENT * setevent(intvl, func, arg) @@ -101,7 +101,7 @@ setevent(intvl, func, arg) printf("setevent: intvl=%ld, for=%ld, func=%x, arg=%d, ev=%x\n", intvl, now + intvl, func, arg, ev); - tick(); + tick(0); return (ev); } /* @@ -143,7 +143,7 @@ clrevent(ev) } /* restore clocks and pick up anything spare */ - tick(); + tick(0); } /* ** TICK -- take a clock tick @@ -151,7 +151,7 @@ clrevent(ev) ** Called by the alarm clock. This routine runs events as needed. ** ** Parameters: -** none. +** One that is ignored; for compatibility with signal handlers. ** ** Returns: ** none. @@ -161,7 +161,8 @@ clrevent(ev) */ static void -tick() +tick(arg) + int arg; { register time_t now; register EVENT *ev; diff --git a/usr.sbin/sendmail/src/collect.c b/usr.sbin/sendmail/src/collect.c index fba8c776913..e0eb672358b 100644 --- a/usr.sbin/sendmail/src/collect.c +++ b/usr.sbin/sendmail/src/collect.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)collect.c 8.6 (Berkeley) 10/27/93"; +static char sccsid[] = "@(#)collect.c 8.8 (Berkeley) 1/8/94"; #endif /* not lint */ # include <errno.h> @@ -160,7 +160,10 @@ collect(smtpmode, requeueflag, e) if (sfgets(freebuf, MAXLINE, InChannel, TimeOuts.to_datablock, "message header read") == NULL) - goto readerr; + { + freebuf[0] = '\0'; + break; + } /* is this a continuation line? */ if (*freebuf != ' ' && *freebuf != '\t') @@ -257,7 +260,8 @@ collect(smtpmode, requeueflag, e) break; /* check for transparent dot */ - if (OpMode == MD_SMTP && bp[0] == '.' && bp[1] == '.') + if ((OpMode == MD_SMTP || OpMode == MD_DAEMON) && + bp[0] == '.' && bp[1] == '.') bp++; /* @@ -278,6 +282,8 @@ collect(smtpmode, requeueflag, e) if (feof(InChannel) || ferror(InChannel)) { readerr: + if (tTd(30, 1)) + printf("collect: read error\n"); inputerr = TRUE; } @@ -290,7 +296,7 @@ readerr: } /* An EOF when running SMTP is an error */ - if (inputerr && OpMode == MD_SMTP) + if (inputerr && (OpMode == MD_SMTP || OpMode == MD_DAEMON)) { char *host; char *problem; diff --git a/usr.sbin/sendmail/src/conf.c b/usr.sbin/sendmail/src/conf.c index 4ae6d84ad52..cc6605a66c1 100644 --- a/usr.sbin/sendmail/src/conf.c +++ b/usr.sbin/sendmail/src/conf.c @@ -33,13 +33,14 @@ */ #ifndef lint -static char sccsid[] = "@(#)conf.c 8.42 (Berkeley) 10/21/93"; +static char sccsid[] = "@(#)conf.c 8.62 (Berkeley) 1/9/94"; #endif /* not lint */ # include "sendmail.h" # include "pathnames.h" # include <sys/ioctl.h> # include <sys/param.h> +# include <netdb.h> # include <pwd.h> /* @@ -597,7 +598,9 @@ rlsesigs() # include <compat.h> #endif -init_md() +init_md(argc, argv) + int argc; + char **argv; { #ifdef _AUX_SOURCE setcompat(getcompat() | COMPAT_BSDPROT); @@ -792,10 +795,14 @@ getla() #if LA_TYPE == LA_MACH /* -** This has been tested on NeXT release 2.1. +** This has been tested on NEXTSTEP release 2.1/3.X. */ -#include <mach.h> +#if defined(NX_CURRENT_COMPILER_RELEASE) && NX_CURRENT_COMPILER_RELEASE > NX_COMPILER_RELEASE_3_0 +# include <mach/mach.h> +#else +# include <mach.h> +#endif getla() { @@ -910,6 +917,7 @@ refuseconnections() # include <sys/exec.h> # ifdef __bsdi__ # undef PS_STRINGS /* BSDI 1.0 doesn't do PS_STRINGS as we expect */ +# define PROCTITLEPAD '\0' # endif # ifdef PS_STRINGS # define SETPROC_STATIC static @@ -920,6 +928,10 @@ refuseconnections() # endif #endif +#ifndef PROCTITLEPAD +# define PROCTITLEPAD ' ' +#endif + /*VARARGS1*/ #ifdef __STDC__ setproctitle(char *fmt, ...) @@ -969,7 +981,7 @@ setproctitle(fmt, va_alist) (void) strcpy(Argv[0], buf); p = &Argv[0][i]; while (p < LastArgv) - *p++ = ' '; + *p++ = PROCTITLEPAD; # endif # endif # endif /* SETPROCTITLE */ @@ -1258,9 +1270,13 @@ static char sccsid[] = "@(#)getopt.c 4.3 (Berkeley) 3/9/86"; /* * get option letter from argument vector */ -int opterr = 1, /* if error message should be printed */ - optind = 1, /* index into parent argv vector */ - optopt; /* character checked for validity */ +#ifdef _CONVEX_SOURCE +extern int optind, opterr; +#else +int opterr = 1; /* if error message should be printed */ +int optind = 1; /* index into parent argv vector */ +#endif +int optopt; /* character checked for validity */ char *optarg; /* argument associated with option */ #define BADCH (int)'?' @@ -1269,9 +1285,9 @@ char *optarg; /* argument associated with option */ fputc(optopt,stderr);fputc('\n',stderr);return(BADCH);} getopt(nargc,nargv,ostr) -int nargc; -char **nargv, - *ostr; + int nargc; + char *const *nargv; + const char *ostr; { static char *place = EMSG; /* option letter processing */ static char atend = 0; @@ -1356,6 +1372,97 @@ vsprintf(s, fmt, ap) #endif /* +** USERSHELLOK -- tell if a user's shell is ok for unrestricted use +** +** Parameters: +** shell -- the user's shell from /etc/passwd +** +** Returns: +** TRUE -- if it is ok to use this for unrestricted access. +** FALSE -- if the shell is restricted. +*/ + +#if !HASGETUSERSHELL + +# ifndef _PATH_SHELLS +# define _PATH_SHELLS "/etc/shells" +# endif + +char *DefaultUserShells[] = +{ + "/bin/sh", + "/usr/bin/sh", + "/bin/csh", + "/usr/bin/csh", +#ifdef __hpux + "/bin/rsh", + "/bin/ksh", + "/bin/rksh", + "/bin/pam", + "/usr/bin/keysh", + "/bin/posix/sh", +#endif + NULL +}; + +#endif + +bool +usershellok(shell) + char *shell; +{ +#if HASGETUSERSHELL + register char *p; + extern char *getusershell(); + + setusershell(); + while ((p = getusershell()) != NULL) + if (strcmp(p, shell) == 0 || strcmp(p, "*") == 0) + break; + endusershell(); + return p != NULL; +#else + register FILE *shellf; + char buf[MAXLINE]; + + shellf = fopen(_PATH_SHELLS, "r"); + if (shellf == NULL) + { + /* no /etc/shells; see if it is one of the std shells */ + char **d; + + for (d = DefaultUserShells; *d != NULL; d++) + { + if (strcmp(shell, *d) == 0) + return TRUE; + } + return FALSE; + } + + while (fgets(buf, sizeof buf, shellf) != NULL) + { + register char *p, *q; + + p = buf; + while (*p != '\0' && *p != '#' && *p != '/') + p++; + if (*p == '#' || *p == '\0') + continue; + q = p; + while (*p != '\0' && *p != '#' && !isspace(*p)) + p++; + *p = '\0'; + if (strcmp(shell, q) == 0 || strcmp("*", q) == 0) + { + fclose(shellf); + return TRUE; + } + } + fclose(shellf); + return FALSE; +#endif +} +/* ** FREESPACE -- see how much free space is on the queue filesystem ** ** Only implemented if you have statfs. @@ -1382,10 +1489,10 @@ vsprintf(s, fmt, ap) #endif #ifdef HASSTATFS -# if defined(IRIX) || defined(apollo) || defined(_SCO_unix_) || defined(UMAXV) || defined(DGUX) +# if defined(IRIX) || defined(apollo) || defined(_SCO_unix_) || defined(UMAXV) || defined(DGUX) || defined(_AIX3) # include <sys/statfs.h> # else -# if (defined(sun) && !defined(BSD)) || defined(__hpux) || defined(_CONVEX_SOURCE) || defined(NeXT) || defined(_AUX_SOURCE) +# if (defined(sun) && !defined(BSD)) || defined(__hpux) || defined(_CONVEX_SOURCE) || defined(NeXT) || defined(_AUX_SOURCE) || defined(MACH386) # include <sys/vfs.h> # else # include <sys/mount.h> @@ -1726,6 +1833,16 @@ getcfname() { if (ConfFile != NULL) return ConfFile; +#ifdef NETINFO + { + extern char *ni_propval(); + char *cflocation; + + cflocation = ni_propval("/locations/sendmail", "sendmail.cf"); + if (cflocation != NULL) + return cflocation; + } +#endif return _PATH_SENDMAILCF; } /* @@ -1737,11 +1854,262 @@ getcfname() ** Returns: ** TRUE -- if ok. ** FALSE -- if vendor code could not be processed. +** +** Side Effects: +** It is reasonable to set mode flags here to tweak +** processing in other parts of the code if necessary. +** For example, if you are a vendor that uses $%y to +** indicate YP lookups, you could enable that here. */ bool setvendor(vendor) char *vendor; { - return (strcasecmp(vendor, "Berkeley") == 0); + if (strcasecmp(vendor, "Berkeley") == 0) + return TRUE; + + /* add vendor extensions here */ + + return FALSE; } +/* +** STRTOL -- convert string to long integer +** +** For systems that don't have it in the C library. +*/ + +#ifdef NEEDSTRTOL + +long +strtol(p, ep, b) + char *p; + char **ep; + int b; +{ + long l = 0; + char c; + char maxd; + int neg = 1; + + maxd = (b > 10) ? '9' : b + '0'; + + if (p && *p == '-') { + neg = -1; + p++; + } + while (p && (c = *p)) { + if (c >= '0' && c <= maxd) { + l = l*b + *p++ - '0'; + continue; + } + if (c >= 'A' && c <= 'Z') + c -= 'A' + 'a'; + c = c - 'a' + 10; + if (b > c) { + l = l*b + c; + p++; + continue; + } + break; + } + l *= neg; + if (ep) + *ep = p; + return l; +} + +#endif +/* +** SOLARIS_GETHOSTBY{NAME,ADDR} -- compatibility routines for gethostbyXXX +** +** Solaris versions prior through 2.3 don't properly deliver a +** canonical h_name field. This tries to work around it. +*/ + +#ifdef SOLARIS + +struct hostent * +solaris_gethostbyname(name) + const char *name; +{ +# ifdef SOLARIS_2_3 + static struct hostent hp; + static char buf[1000]; + extern struct hostent *_switch_gethostbyname_r(); + + return _switch_gethostbyname_r(name, &hp, buf, sizeof(buf), &h_errno); +# else + extern struct hostent *__switch_gethostbyname(); + + return __switch_gethostbyname(name); +# endif +} + +struct hostent * +solaris_gethostbyaddr(addr, len, type) + const char *addr; + int len; + int type; +{ +# ifdef SOLARIS_2_3 + static struct hostent hp; + static char buf[1000]; + extern struct hostent *_switch_gethostbyaddr_r(); + + return _switch_gethostbyaddr_r(addr, len, type, &hp, buf, sizeof(buf), &h_errno); +# else + extern struct hostent *__switch_gethostbyaddr(); + + return __switch_gethostbyaddr(addr, len, type); +# endif +} + +#endif +/* +** NI_PROPVAL -- netinfo property value lookup routine +** +** Parameters: +** directory -- the Netinfo directory name. +** propname -- the Netinfo property name. +** +** Returns: +** NULL -- if: +** 1. the directory is not found +** 2. the property name is not found +** 3. the property contains multiple values +** 4. some error occured +** else -- the location of the config file. +** +** Notes: +** Caller should free the return value of ni_proval +*/ + +#ifdef NETINFO + +# include <netinfo/ni.h> + +# define LOCAL_NETINFO_DOMAIN "." +# define PARENT_NETINFO_DOMAIN ".." +# define MAX_NI_LEVELS 256 + +char * +ni_propval(directory, propname) + char *directory; + char *propname; +{ + char *propval; + int i; + void *ni = NULL; + void *lastni = NULL; + ni_status nis; + ni_id nid; + ni_namelist ninl; + + /* + ** If the passed directory and property name are found + ** in one of netinfo domains we need to search (starting + ** from the local domain moving all the way back to the + ** root domain) set propval to the property's value + ** and return it. + */ + + for (i = 0; i < MAX_NI_LEVELS; ++i) + { + if (i == 0) + { + nis = ni_open(NULL, LOCAL_NETINFO_DOMAIN, &ni); + } + else + { + if (lastni != NULL) + ni_free(lastni); + lastni = ni; + nis = ni_open(lastni, PARENT_NETINFO_DOMAIN, &ni); + } + + /* + ** Don't bother if we didn't get a handle on a + ** proper domain. This is not necessarily an error. + ** We would get a positive ni_status if, for instance + ** we never found the directory or property and tried + ** to open the parent of the root domain! + */ + + if (nis != 0) + break; + + /* + ** Find the path to the server information. + */ + + if (ni_pathsearch(ni, &nid, directory) != 0) + continue; + + /* + ** Find "host" information. + */ + + if (ni_lookupprop(ni, &nid, propname, &ninl) != 0) + continue; + + /* + ** If there's only one name in + ** the list, assume we've got + ** what we want. + */ + + if (ninl.ni_namelist_len == 1) + { + propval = ni_name_dup(ninl.ni_namelist_val[0]); + break; + } + } + + /* + ** Clean up. + */ + + if (ni != NULL) + ni_free(ni); + if (lastni != NULL && ni != lastni) + ni_free(lastni); + + return propval; +} + +#endif /* NETINFO */ +/* +** HARD_SYSLOG -- call syslog repeatedly until it works +** +** Needed on HP-UX, which apparently doesn't guarantee that +** syslog succeeds during interrupt handlers. +*/ + +#ifdef __hpux + +# define MAXSYSLOGTRIES 100 +# undef syslog + +# ifdef __STDC__ +hard_syslog(int pri, char *msg, ...) +# else +hard_syslog(pri, msg, va_alist) + int pri; + char *msg; + va_dcl +# endif +{ + int i; + char buf[SYSLOG_BUFSIZE * 2]; + VA_LOCAL_DECL; + + VA_START(msg); + vsprintf(buf, msg, ap); + VA_END; + + for (i = MAXSYSLOGTRIES; --i >= 0 && syslog(pri, "%s", buf) < 0; ) + continue; +} + +#endif diff --git a/usr.sbin/sendmail/src/conf.h b/usr.sbin/sendmail/src/conf.h index fdf7af44713..a06738c0fb8 100644 --- a/usr.sbin/sendmail/src/conf.h +++ b/usr.sbin/sendmail/src/conf.h @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)conf.h 8.44 (Berkeley) 10/29/93 + * @(#)conf.h 8.75 (Berkeley) 1/8/94 */ /* @@ -64,7 +64,6 @@ # define MEMCHUNKSIZE 1024 /* chunk size for memory allocation */ # define MAXUSERENVIRON 100 /* max envars saved, must be >= 3 */ # define MAXALIASDB 12 /* max # of alias databases */ -# define PSBUFSIZE (MAXLINE + MAXATOM) /* size of prescan buffer */ # ifndef QUEUESIZE # define QUEUESIZE 1000 /* max # of jobs per queue run */ @@ -78,6 +77,7 @@ # define LOG 1 /* enable logging */ # define UGLYUUCP 1 /* output ugly UUCP From lines */ +# define NETUNIX 1 /* include unix domain support */ # define NETINET 1 /* include internet support */ # define SETPROCTITLE 1 /* munge argv to display current status */ # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ @@ -89,17 +89,26 @@ # endif /* -** Due to a "feature" in some operating systems such as Ultrix 4.3 and -** HPUX 8.0, if you receive a "No route to host" message (ICMP message -** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host -** are closed. Some firewalls return this error if you try to connect -** to the IDENT port (113), so you can't receive email from these hosts -** on these systems. The firewall really should use a more specific -** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. This -** will get #undefed below as needed. +** Most systems have symbolic links today, so default them on. You +** can turn them off by #undef'ing this below. */ -# define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */ +# define HASLSTAT 1 /* has lstat(2) call */ + +/* +** General "standard C" defines. +** +** These may be undone later, to cope with systems that claim to +** be Standard C but aren't. Gcc is the biggest offender -- it +** doesn't realize that the library is part of the language. +** +** Life would be much easier if we could get rid of this sort +** of bozo problems. +*/ + +#ifdef __STDC__ +# define HASSETVBUF 1 /* we have setvbuf(3) in libc */ +#endif /********************************************************************** ** Operating system configuration. @@ -114,7 +123,7 @@ /* -** HP-UX -- tested for 8.07 +** HP-UX -- tested for 8.07, 9.00, and 9.01. */ # ifdef __hpux @@ -126,8 +135,21 @@ # define HASSETREUID 1 /* has setreuid(2) call */ # define setreuid(r, e) setresuid(r, e, -1) # define LA_TYPE LA_FLOAT +# define GIDSET_T gid_t # define _PATH_UNIX "/hp-ux" -# undef IDENTPROTO /* TCP/IP implementation is broken */ +# ifndef _PATH_SENDMAILCF +# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" +# endif +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif +# ifndef HASGETUSERSHELL +# define HASGETUSERSHELL 0 /* getusershell(3) causes core dumps */ +# endif +# define syslog hard_syslog +# ifdef __STDC__ +extern int syslog(int, char *, ...); +# endif # endif @@ -137,6 +159,9 @@ # ifdef _AIX3 # define HASINITGROUPS 1 /* has initgroups(3) call */ +# define HASSTATFS 1 /* has the statfs(2) syscall */ +# define HASUNAME 1 /* use System V uname(2) system call */ +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ # define FORK fork /* no vfork primitive available */ # undef SETPROCTITLE /* setproctitle confuses AIX */ # endif @@ -153,6 +178,7 @@ # define HASSETREUID 1 /* has setreuid(2) call */ # define HASINITGROUPS 1 /* has initgroups(3) call */ # define HASSTATFS 1 /* has the statfs(2) syscall */ +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ # define FORK fork /* no vfork primitive available */ # define WAITUNION 1 /* use "union wait" as wait argument type */ # define setpgid BSDsetpgrp @@ -161,24 +187,35 @@ /* -** SunOS +** SunOS and Solaris +** +** Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and +** Solaris 2.2 (a.k.a. SunOS 5.2). */ #if defined(sun) && !defined(BSD) # define LA_TYPE LA_INT -# define HASSETREUID 1 /* has setreuid(2) call */ # define HASINITGROUPS 1 /* has initgroups(3) call */ +# define HASUNAME 1 /* use System V uname(2) system call */ +# define HASGETUSERSHELL 1 /* DOES have getusershell(3) call in libc */ + +# ifdef SOLARIS_2_3 +# define SOLARIS +# endif # ifdef SOLARIS /* Solaris 2.x (a.k.a. SunOS 5.x) */ -# define SYSTEM5 1 /* use System V definitions */ -# define setreuid(r, e) seteuid(e) -# include <sys/sysmacros.h> +# ifndef __svr4__ +# define __svr4__ /* use all System V Releae 4 defines below */ +# endif # include <sys/time.h> -# define gethostbyname __switch_gethostbyname /* get working version */ -# define gethostbyaddr __switch_gethostbyaddr /* get working version */ -# define _PATH_UNIX "/kernel/unix" +# define gethostbyname solaris_gethostbyname /* get working version */ +# define gethostbyaddr solaris_gethostbyaddr /* get working version */ +# define GIDSET_T gid_t +# ifndef _PATH_UNIX +# define _PATH_UNIX "/kernel/unix" +# endif # ifndef _PATH_SENDMAILCF # define _PATH_SENDMAILCF "/etc/mail/sendmail.cf" # endif @@ -187,16 +224,32 @@ # endif # else - /* SunOS 4.1.x */ + /* SunOS 4.0.3 or 4.1.x */ +# define HASSETREUID 1 /* has setreuid(2) call */ # define HASSTATFS 1 /* has the statfs(2) syscall */ -/* # define HASFLOCK 1 /* has flock(2) call */ +# define HASFLOCK 1 /* has flock(2) call */ # include <vfork.h> +# ifdef SUNOS403 + /* special tweaking for SunOS 4.0.3 */ +# include <malloc.h> +# define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */ +# define WAITUNION 1 /* use "union wait" as wait argument type */ +# undef WIFEXITED +# undef WEXITSTATUS +# undef HASUNAME +# define setpgid setpgrp +typedef int pid_t; +extern char *getenv(); + +# endif # endif #endif /* -** DG/UX 5.4.2 +** DG/UX +** +** Tested on 5.4.2 */ #ifdef DGUX @@ -207,9 +260,15 @@ # define HASUNAME 1 /* use System V uname(2) system call */ # define HASSETSID 1 /* has Posix setsid(2) call */ # define HASINITGROUPS 1 /* has initgroups(3) call */ -# define HASSETVBUF 1 /* we have setvbuf(3) in libc */ -# undef IDENTPROTO /* TCP/IP implementation is broken */ +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif # undef SETPROCTITLE + +/* these include files must be included early on DG/UX */ +# include <netinet/in.h> +# include <arpa/inet.h> + # define inet_addr dgux_inet_addr extern long dgux_inet_addr(); #endif @@ -229,9 +288,16 @@ extern long dgux_inet_addr(); # define HASUNSETENV 1 /* has unsetenv(3) call */ # define HASINITGROUPS 1 /* has initgroups(3) call */ # define HASFLOCK 1 /* has flock(2) call */ -# define LA_TYPE LA_INT -# define LA_AVENRUN "avenrun" -# undef IDENTPROTO /* TCP/IP implementation is broken */ +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ +# ifdef vax +# define LA_TYPE LA_FLOAT +# else +# define LA_TYPE LA_INT +# define LA_AVENRUN "avenrun" +# endif +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif #endif @@ -244,8 +310,11 @@ extern long dgux_inet_addr(); # define HASUNSETENV 1 /* has unsetenv(3) call */ # define HASSETREUID 1 /* has setreuid(2) call */ # define HASINITGROUPS 1 /* has initgroups(3) call */ -/* # define HASFLOCK 1 /* has flock(2) call */ +# define HASFLOCK 1 /* has flock(2) call */ # define LA_TYPE LA_INT +# ifndef _PATH_SENDMAILPID +# define _PATH_SENDMAILPID "/var/run/sendmail.pid" +# endif #endif @@ -280,6 +349,8 @@ typedef int pid_t; /* ** 4.4 BSD +** +** See also BSD defines. */ #ifdef BSD4_4 @@ -297,6 +368,8 @@ typedef int pid_t; ** 386BSD / FreeBSD 1.0E / NetBSD (all architectures, all versions) ** ** 4.3BSD clone, closer to 4.4BSD +** +** See also BSD defines. */ #if defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__) @@ -312,6 +385,36 @@ typedef int pid_t; /* +** Mach386 +** +** For mt Xinu's Mach386 system. +*/ + +#if defined(MACH) && defined(i386) +# define MACH386 1 +# define HASUNSETENV 1 /* has unsetenv(3) call */ +# define HASINITGROUPS 1 /* has initgroups(3) call */ +# define HASFLOCK 1 /* has flock(2) call */ +# define HASSTATFS 1 /* has the statfs(2) syscall */ +# define NEEDGETOPT 1 /* need a replacement for getopt(3) */ +# define NEEDSTRTOL 1 /* need the strtol() function */ +# define setpgid setpgrp +# ifndef LA_TYPE +# define LA_TYPE LA_FLOAT +# endif +# undef HASSETVBUF /* don't actually have setvbuf(3) */ +# undef WEXITSTATUS +# undef WIFEXITED +# ifndef _PATH_SENDMAILCF +# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" +# endif +# ifndef _PATH_SENDMAILPID +# define _PATH_SENDMAILPID "/etc/sendmail.pid" +# endif +#endif + + +/* ** 4.3 BSD -- this is for very old systems ** ** You'll also have to install a new resolver library. @@ -329,21 +432,45 @@ typedef int pid_t; # ifndef _PATH_SENDMAILCF # define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" # endif -# undef IDENTPROTO /* TCP/IP implementation is broken */ +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif +# undef WEXITSTATUS +# undef WIFEXITED +typedef short pid_t; +extern int errno; #endif /* ** SCO Unix +** +** This includes two parts -- the first is for SCO Open Server 3.2v4 +** (contributed by Philippe Brand <phb@colombo.telesys-innov.fr>). +** The second is, I believe, for an older version. */ +#ifdef _SCO_unix_4_2 +# define _SCO_unix_ +# define HASSETREUID 1 /* has setreuid(2) call */ +# define _PATH_UNIX "/unix" +# ifndef _PATH_SENDMAILCF +# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" +# endif +# ifndef _PATH_SENDMAILPID +# define _PATH_SENDMAILPID "/etc/sendmail.pid" +# endif +#endif + #ifdef _SCO_unix_ # define SYSTEM5 1 /* include all the System V defines */ # define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */ # define HASSTATFS 1 /* has the statfs(2) syscall */ +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ # define FORK fork # define MAXPATHLEN PATHSIZE # define LA_TYPE LA_SHORT +# undef NETUNIX /* no unix domain socket support */ #endif @@ -358,22 +485,38 @@ typedef int pid_t; # define HASSETSID 1 /* has POSIX setsid(2) call */ # define NEEDGETOPT 1 /* need replacement for getopt(3) */ # define LA_TYPE LA_FLOAT -# undef IDENTPROTO +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif #endif /* -** RISC/os 4.51 +** RISC/os 4.52 ** -** Untested... +** Gives a ton of warning messages, but otherwise compiles. */ #ifdef RISCOS + # define HASUNSETENV 1 /* has unsetenv(3) call */ -/* # define HASFLOCK 1 /* has flock(2) call */ +# define HASFLOCK 1 /* has flock(2) call */ +# define WAITUNION 1 /* use "union wait" as wait argument type */ +# define NEEDGETOPT 1 /* need a replacement for getopt(3) */ # define LA_TYPE LA_INT # define LA_AVENRUN "avenrun" # define _PATH_UNIX "/unix" +# undef WIFEXITED + +# define setpgid setpgrp + +extern int errno; +typedef int pid_t; +#define SIGFUNC_DEFINED +typedef int (*sigfunc_t)(); +extern char *getenv(); +extern void *malloc(); + #endif @@ -391,6 +534,7 @@ typedef int pid_t; # define LA_TYPE LA_FLOAT # endif # include <sys/sysmacros.h> +# define GIDSET_T gid_t #endif @@ -400,19 +544,15 @@ typedef int pid_t; ** ** It's on #ifdef DELL_SVR4 because Solaris also gets __svr4__ ** defined, and the definitions conflict. +** +** Peter Wemm <peter@perth.DIALix.oz.au> claims that the setreuid +** trick works on DELL 2.2 (SVR4.0/386 version 4.0) and ESIX 4.0.3A +** (SVR4.0/386 version 3.0). */ #ifdef DELL_SVR4 -# define SYSTEM5 1 -/* # define setreuid(r, e) seteuid(e) */ -/* # include <sys/time.h> */ -# define _PATH_UNIX "/unix" -# ifndef _PATH_SENDMAILCF -# define _PATH_SENDMAILCF "/usr/ucblib/sendmail.cf" -# endif -# ifndef _PATH_SENDMAILPID -# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid" -# endif + /* no changes necessary */ + /* see general __svr4__ defines below */ #endif @@ -428,7 +568,9 @@ typedef int pid_t; # define HASUSTAT 1 /* use System V ustat(2) syscall */ # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ # define SIGFUNC_DEFINED /* sigfunc_t already defined */ -# undef IDENTPROTO /* TCP/IP implementation is broken */ +# ifndef IDENTPROTO +# define IDENTPROTO 0 /* TCP/IP implementation is broken */ +# endif # define FORK fork # ifndef _PATH_SENDMAILCF # define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" @@ -453,6 +595,7 @@ typedef int pid_t; # define HASSTATFS 1 /* has the statfs(2) syscall */ # define HASSETVBUF 1 /* we have setvbuf(3) in libc */ # define HASINITGROUPS 1 /* has initgroups(3) call */ +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ # define SYS5SIGNALS 1 /* SysV signal semantics -- reset on each sig */ # define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */ # define FORK fork /* no vfork(2) primitive available */ @@ -464,6 +607,61 @@ extern struct group *getgrent(), *getgrnam(), *getgrgid(); #endif +/* +** Stardent Titan 3000 running TitanOS 4.2. +** +** Must be compiled in "cc -43" mode. +** +** From Kate Hedstrom <kate@ahab.rutgers.edu>. +** +** Note the tweaking below after the BSD defines are set. +*/ + +#ifdef titan +# define setpgid setpgrp +typedef int pid_t; +# undef WIFEXITED +# undef WEXITSTATUS +#endif + + +/* +** Sequent DYNIX 3.2.0 +** +** From Jim Davis <jdavis@cs.arizona.edu>. +*/ + +#ifdef sequent +# define BSD 1 +# define HASUNSETENV 1 +# define BSD4_3 1 /* to get signal() in conf.c */ +# define WAITUNION 1 +# define LA_TYPE LA_FLOAT +# ifdef _POSIX_VERSION +# undef _POSIX_VERSION /* set in <unistd.h> */ +# endif +# undef HASSETVBUF /* don't actually have setvbuf(3) */ +# define setpgid setpgrp + +/* Have to redefine WIFEXITED to take an int, to work with waitfor() */ +# undef WIFEXITED +# define WIFEXITED(s) (((union wait*)&(s))->w_stopval != WSTOPPED && \ + ((union wait*)&(s))->w_termsig == 0) +# define WEXITSTATUS(s) (((union wait*)&(s))->w_retcode) +typedef int pid_t; +# define isgraph(c) (isprint(c) && (c != ' ')) + +# ifndef _PATH_UNIX +# define _PATH_UNIX "/dynix" +# endif +# ifndef _PATH_SENDMAILCF +# define _PATH_SENDMAILCF "/usr/lib/sendmail.cf" +# endif + +#endif + + + /********************************************************************** ** End of Per-Operating System defines @@ -481,11 +679,36 @@ extern struct group *getgrent(), *getgrnam(), *getgrgid(); # define HASFLOCK 1 /* has flock(2) call */ #endif +/* general System V Release 4 defines */ +#ifdef __svr4__ +# define SYSTEM5 1 +# define HASSETREUID 1 /* has seteuid(2) call & working saved uids */ +# ifndef HASGETUSERSHELL +# define HASGETUSERSHELL 0 /* does not have getusershell(3) call */ +# endif +# define setreuid(r, e) seteuid(e) + +# ifndef _PATH_UNIX +# define _PATH_UNIX "/unix" +# endif +# ifndef _PATH_SENDMAILCF +# define _PATH_SENDMAILCF "/usr/ucblib/sendmail.cf" +# endif +# ifndef _PATH_SENDMAILPID +# define _PATH_SENDMAILPID "/usr/ucblib/sendmail.pid" +# endif +# ifndef SYSLOG_BUFSIZE +# define SYSLOG_BUFSIZE 128 +# endif +#endif + /* general System V defines */ # ifdef SYSTEM5 +# include <sys/sysmacros.h> # define HASUNAME 1 /* use System V uname(2) system call */ # define HASUSTAT 1 /* use System V ustat(2) syscall */ # define SYS5SETPGRP 1 /* use System V setpgrp(2) syscall */ +# define HASSETVBUF 1 /* we have setvbuf(3) in libc */ # ifndef LA_TYPE # define LA_TYPE LA_INT # endif @@ -494,11 +717,6 @@ extern struct group *getgrent(), *getgrnam(), *getgrgid(); # define bcmp(s, d, l) (memcmp((s), (d), (l))) # endif -/* general "standard C" defines */ -#if defined(__STDC__) || defined(SYSTEM5) -# define HASSETVBUF 1 /* we have setvbuf(3) in libc */ -#endif - /* general POSIX defines */ #ifdef _POSIX_VERSION # define HASSETSID 1 /* has Posix setsid(2) call */ @@ -515,6 +733,34 @@ extern struct group *getgrent(), *getgrnam(), *getgrgid(); # define GIDSET_T int #endif +/* +** Tweaking for systems that (for example) claim to be BSD but +** don't have all the standard BSD routines (boo hiss). +*/ + +#ifdef titan +# undef HASINITGROUPS /* doesn't have initgroups(3) call */ +#endif + +/* +** Due to a "feature" in some operating systems such as Ultrix 4.3 and +** HPUX 8.0, if you receive a "No route to host" message (ICMP message +** ICMP_UNREACH_HOST) on _any_ connection, all connections to that host +** are closed. Some firewalls return this error if you try to connect +** to the IDENT port (113), so you can't receive email from these hosts +** on these systems. The firewall really should use a more specific +** message such as ICMP_UNREACH_PROTOCOL or _PORT or _NET_PROHIB. If +** not explicitly set to zero above, default it on. +*/ + +#ifndef IDENTPROTO +# define IDENTPROTO 1 /* use IDENT proto (RFC 1413) */ +#endif + +#ifndef HASGETUSERSHELL +# define HASGETUSERSHELL 1 /* libc has getusershell(3) call */ +#endif + /********************************************************************** ** Remaining definitions should never have to be changed. They are @@ -524,7 +770,10 @@ extern struct group *getgrent(), *getgrnam(), *getgrgid(); /* System 5 compatibility */ #ifndef S_ISREG -#define S_ISREG(foo) ((foo & S_IFREG) == S_IFREG) +# define S_ISREG(foo) ((foo & S_IFMT) == S_IFREG) +#endif +#if !defined(S_ISLNK) && defined(S_IFLNK) +# define S_ISLNK(foo) ((foo & S_IFMT) == S_IFLNK) #endif #ifndef S_IWGRP #define S_IWGRP 020 @@ -656,6 +905,11 @@ struct utsname typedef void (*sigfunc_t) __P((int)); #endif +/* size of syslog buffer */ +#ifndef SYSLOG_BUFSIZE +# define SYSLOG_BUFSIZE 1024 +#endif + /* ** Size of tobuf (deliver.c) ** Tweak this to match your syslog implementation. It will have to @@ -663,9 +917,20 @@ typedef void (*sigfunc_t) __P((int)); */ #ifndef TOBUFSIZE -# define TOBUFSIZE (1024 - 256) +# if (SYSLOG_BUFSIZE) > 512 +# define TOBUFSIZE (SYSLOG_BUFSIZE - 256) +# else +# define TOBUFSIZE 256 +# endif #endif +/* +** Size of prescan buffer. +** Despite comments in the _sendmail_ book, this probably should +** not be changed; there are some hard-to-define dependencies. +*/ + +# define PSBUFSIZE (MAXNAME + MAXATOM) /* size of prescan buffer */ /* fork routine -- set above using #ifdef _osname_ or in Makefile */ # ifndef FORK # define FORK vfork /* function to call to fork mailer */ diff --git a/usr.sbin/sendmail/src/daemon.c b/usr.sbin/sendmail/src/daemon.c index a1a51f95fb8..8e5f55540f9 100644 --- a/usr.sbin/sendmail/src/daemon.c +++ b/usr.sbin/sendmail/src/daemon.c @@ -37,9 +37,9 @@ #ifndef lint #ifdef DAEMON -static char sccsid[] = "@(#)daemon.c 8.21 (Berkeley) 10/31/93 (with daemon mode)"; +static char sccsid[] = "@(#)daemon.c 8.30 (Berkeley) 1/8/94 (with daemon mode)"; #else -static char sccsid[] = "@(#)daemon.c 8.21 (Berkeley) 10/31/93 (without daemon mode)"; +static char sccsid[] = "@(#)daemon.c 8.30 (Berkeley) 1/8/94 (without daemon mode)"; #endif #endif /* not lint */ @@ -110,10 +110,10 @@ int TcpSndBufferSize = 0; /* size of TCP send buffer */ getrequests() { int t; - register struct servent *sp; int on = 1; bool refusingconnections = TRUE; FILE *pidf; + int socksize; extern void reapchild(); /* @@ -126,13 +126,16 @@ getrequests() DaemonAddr.sin.sin_addr.s_addr = INADDR_ANY; if (DaemonAddr.sin.sin_port == 0) { + register struct servent *sp; + sp = getservbyname("smtp", "tcp"); if (sp == NULL) { syserr("554 service \"smtp\" unknown"); - goto severe; + DaemonAddr.sin.sin_port = htons(25); } - DaemonAddr.sin.sin_port = sp->s_port; + else + DaemonAddr.sin.sin_port = sp->s_port; } /* @@ -177,22 +180,22 @@ getrequests() { # ifdef NETINET case AF_INET: - t = sizeof DaemonAddr.sin; + socksize = sizeof DaemonAddr.sin; break; # endif # ifdef NETISO case AF_ISO: - t = sizeof DaemonAddr.siso; + socksize = sizeof DaemonAddr.siso; break; # endif default: - t = sizeof DaemonAddr; + socksize = sizeof DaemonAddr; break; } - if (bind(DaemonSocket, &DaemonAddr.sa, t) < 0) + if (bind(DaemonSocket, &DaemonAddr.sa, socksize) < 0) { syserr("getrequests: cannot bind"); (void) close(DaemonSocket); @@ -260,7 +263,7 @@ getrequests() do { errno = 0; - lotherend = sizeof RealHostAddr; + lotherend = socksize; t = accept(DaemonSocket, (struct sockaddr *)&RealHostAddr, &lotherend); } while (t < 0 && errno == EINTR); @@ -299,7 +302,6 @@ getrequests() */ (void) setsignal(SIGCHLD, SIG_DFL); - OpMode = MD_SMTP; /* determine host name */ p = hostnamebyanyaddr(&RealHostAddr); @@ -613,7 +615,7 @@ gothostent: case AF_INET: bcopy(hp->h_addr, &addr.sin.sin_addr, - hp->h_length); + sizeof addr.sin.sin_addr); break; #endif @@ -639,9 +641,10 @@ gothostent: if (sp == NULL) { syserr("554 makeconnection: service \"smtp\" unknown"); - return (EX_OSERR); + port = htons(25); } - port = sp->s_port; + else + port = sp->s_port; } switch (addr.sa.sa_family) @@ -742,7 +745,7 @@ gothostent: case AF_INET: bcopy(hp->h_addr_list[i++], &addr.sin.sin_addr, - hp->h_length); + sizeof addr.sin.sin_addr); break; #endif @@ -846,7 +849,7 @@ myhostname(hostbuf, size) ** Sets RealHostName to the name of the host at the other end. */ -#ifdef IDENTPROTO +#if IDENTPROTO static jmp_buf CtxAuthTimeout; @@ -865,7 +868,7 @@ getauthinfo(fd) SOCKADDR fa; int falen; register char *p; -#ifdef IDENTPROTO +#if IDENTPROTO SOCKADDR la; int lalen; register struct servent *sp; @@ -878,7 +881,8 @@ getauthinfo(fd) extern char RealUserName[]; /* main.c */ falen = sizeof fa; - if (getpeername(fd, &fa.sa, &falen) < 0 || falen <= 0) + if (getpeername(fd, &fa.sa, &falen) < 0 || falen <= 0 || + fa.sa.sa_family == 0) { RealHostName = "localhost"; (void) sprintf(hbuf, "%s@localhost", RealUserName); @@ -891,7 +895,7 @@ getauthinfo(fd) RealHostName = newstr(p); RealHostAddr = fa; -#ifdef IDENTPROTO +#if IDENTPROTO lalen = sizeof la; if (fa.sa.sa_family != AF_INET || getsockname(fd, &la.sa, &lalen) < 0 || lalen <= 0 || @@ -1049,7 +1053,6 @@ host_map_lookup(map, name, av, statp) char *cp; int i; register STAB *s; - char *timeoutmsg = "Recipient domain nameserver timed out"; char hbuf[MAXNAME]; extern struct hostent *gethostbyaddr(); extern int h_errno; @@ -1069,7 +1072,11 @@ host_map_lookup(map, name, av, statp) h_errno = s->s_namecanon.nc_herrno; *statp = s->s_namecanon.nc_stat; if (CurEnv->e_message == NULL && *statp == EX_TEMPFAIL) - CurEnv->e_message = newstr(timeoutmsg); + { + sprintf(hbuf, "%s: Name server timeout", + shortenstring(name, 33)); + CurEnv->e_message = newstr(hbuf); + } return s->s_namecanon.nc_cname; } @@ -1109,9 +1116,11 @@ host_map_lookup(map, name, av, statp) case TRY_AGAIN: if (UseNameServer) { - message(timeoutmsg); + sprintf(hbuf, "%s: Name server timeout", + shortenstring(name, 33)); + message("%s", hbuf); if (CurEnv->e_message == NULL) - CurEnv->e_message = newstr(timeoutmsg); + CurEnv->e_message = newstr(hbuf); } *statp = EX_TEMPFAIL; break; @@ -1200,6 +1209,7 @@ anynet_ntoa(sap) switch (sap->sa.sa_family) { #ifdef MAYBENEXTRELEASE /*** UNTESTED *** UNTESTED *** UNTESTED ***/ +#ifdef NETUNIX case AF_UNIX: if (sap->sunix.sun_path[0] != '\0') sprintf(buf, "[UNIX: %.64s]", sap->sunix.sun_path); @@ -1207,6 +1217,7 @@ anynet_ntoa(sap) sprintf(buf, "[UNIX: localhost]"); return buf; #endif +#endif #ifdef NETINET case AF_INET: diff --git a/usr.sbin/sendmail/src/deliver.c b/usr.sbin/sendmail/src/deliver.c index 62d6b8812e4..d627395bee9 100644 --- a/usr.sbin/sendmail/src/deliver.c +++ b/usr.sbin/sendmail/src/deliver.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)deliver.c 8.37 (Berkeley) 10/29/93"; +static char sccsid[] = "@(#)deliver.c 8.62 (Berkeley) 1/12/94"; #endif /* not lint */ #include "sendmail.h" @@ -46,6 +46,8 @@ static char sccsid[] = "@(#)deliver.c 8.37 (Berkeley) 10/29/93"; extern int h_errno; #endif +extern char SmtpError[]; + /* ** SENDALL -- actually send all the messages. ** @@ -82,13 +84,15 @@ sendall(e, mode) ** addresses to be sent. */ - if (bitset(EF_FATALERRS, e->e_flags) && OpMode == MD_SMTP) + if (bitset(EF_FATALERRS, e->e_flags) && + (OpMode == MD_SMTP || OpMode == MD_DAEMON)) { e->e_flags |= EF_CLRQUEUE; return; } /* determine actual delivery mode */ + CurrentLA = getla(); if (mode == SM_DEFAULT) { mode = e->e_sendmode; @@ -333,7 +337,8 @@ sendenvelope(e, mode) ** addresses to be sent. */ - if (bitset(EF_FATALERRS, e->e_flags) && OpMode == MD_SMTP) + if (bitset(EF_FATALERRS, e->e_flags) && + (OpMode == MD_SMTP || OpMode == MD_DAEMON)) { e->e_flags |= EF_CLRQUEUE; return; @@ -447,10 +452,15 @@ sendenvelope(e, mode) e->e_to = q->q_paddr; if (!bitset(QDONTSEND|QBADADDR, q->q_flags)) { - message("deliverable: mailer %s, host %s, user %s", - q->q_mailer->m_name, - q->q_host, - q->q_user); + if (q->q_host != NULL && q->q_host[0] != '\0') + message("deliverable: mailer %s, host %s, user %s", + q->q_mailer->m_name, + q->q_host, + q->q_user); + else + message("deliverable: mailer %s, user %s", + q->q_mailer->m_name, + q->q_user); } } else if (!bitset(QDONTSEND|QBADADDR, q->q_flags)) @@ -589,7 +599,6 @@ deliver(e, firstto) char buf[MAXNAME]; char rpathbuf[MAXNAME]; /* translated return path */ extern int checkcompat(); - extern char SmtpError[]; errno = 0; if (bitset(QDONTSEND|QBADADDR|QQUEUEUP, to->q_flags)) @@ -597,7 +606,8 @@ deliver(e, firstto) #ifdef NAMED_BIND /* unless interactive, try twice, over a minute */ - if (OpMode == MD_DAEMON || OpMode == MD_SMTP) { + if (OpMode == MD_DAEMON || OpMode == MD_SMTP) + { _res.retrans = 30; _res.retry = 2; } @@ -759,7 +769,9 @@ deliver(e, firstto) } /* compute effective uid/gid when sending */ - if (to->q_mailer == ProgMailer) + /* XXX perhaps this should be to->q_mailer != LocalMailer ?? */ + /* XXX perhaps it should be a mailer flag? */ + if (to->q_mailer == ProgMailer || to->q_mailer == FileMailer) ctladdr = getctladdr(to); user = to->q_user; @@ -831,10 +843,8 @@ deliver(e, firstto) if (m == FileMailer) { - ADDRESS *caddr = getctladdr(to); - - rcode = mailfile(user, caddr, e); - giveresponse(rcode, m, NULL, caddr, e); + rcode = mailfile(user, ctladdr, e); + giveresponse(rcode, m, NULL, ctladdr, e); if (rcode == EX_OK) to->q_flags |= QSENT; continue; @@ -905,8 +915,10 @@ deliver(e, firstto) ** If we are running SMTP, we just need to clean up. */ - if (ctladdr == NULL && m != ProgMailer) + /*XXX this seems a bit wierd */ + if (ctladdr == NULL && bitset(QGOODUID, e->e_from.q_flags)) ctladdr = &e->e_from; + #ifdef NAMED_BIND if (ConfigLevel < 2) _res.options &= ~(RES_DEFNAMES | RES_DNSRCH); /* XXX */ @@ -961,12 +973,19 @@ deliver(e, firstto) register int i; register u_short port; + if (pv[0] == NULL || pv[1] == NULL || pv[1][0] == '\0') + { + syserr("null host name for %s mailer", m->m_mailer); + rcode = EX_CONFIG; + goto give_up; + } + CurHostName = pv[1]; curhost = hostsignature(m, pv[1], e); if (curhost == NULL || curhost[0] == '\0') { - syserr("null signature"); + syserr("null host signature for %s", pv[1]); rcode = EX_OSERR; goto give_up; } @@ -1153,6 +1172,7 @@ tryhost: if (ctladdr == NULL || ctladdr->q_uid == 0) { (void) initgroups(DefUser, DefGid); + (void) setgid(DefGid); (void) setuid(DefUid); } else @@ -1160,6 +1180,7 @@ tryhost: (void) initgroups(ctladdr->q_ruser? ctladdr->q_ruser: ctladdr->q_user, ctladdr->q_gid); + (void) setgid(ctladdr->q_gid); (void) setuid(ctladdr->q_uid); } } @@ -1202,7 +1223,7 @@ tryhost: } (void) close(rpvect[1]); } - else if (OpMode == MD_SMTP || HoldErrs) + else if (OpMode == MD_SMTP || OpMode == MD_DAEMON || HoldErrs) { /* put mailer output in transcript */ if (dup2(fileno(e->e_xfp), STDOUT_FILENO) < 0) @@ -1333,7 +1354,7 @@ tryhost: rcode, mci->mci_state, firstsig); rcode = EX_SOFTWARE; } - else if (rcode == EX_TEMPFAIL && *curhost != '\0') + else if (rcode == EX_TEMPFAIL && curhost != NULL && *curhost != '\0') { /* try next MX site */ goto tryhost; @@ -1403,7 +1424,7 @@ tryhost: if (!bitset(MCIF_CACHED, mci->mci_flags)) smtpquit(m, mci, e); } - if (rcode != EX_OK && *curhost != '\0') + if (rcode != EX_OK && curhost != NULL && *curhost != '\0') { /* try next MX site */ goto tryhost; @@ -1500,12 +1521,21 @@ markfailure(e, q, rcode) { char buf[MAXLINE]; - if (rcode == EX_OK) - return; - else if (rcode == EX_TEMPFAIL) + switch (rcode) + { + case EX_OK: + break; + + case EX_TEMPFAIL: + case EX_IOERR: + case EX_OSERR: q->q_flags |= QQUEUEUP; - else if (rcode != EX_IOERR && rcode != EX_OSERR) + break; + + default: q->q_flags |= QBADADDR; + break; + } } /* ** ENDMAILER -- Wait for mailer to terminate. @@ -1537,9 +1567,9 @@ endmailer(mci, e, pv) /* close any connections */ if (mci->mci_in != NULL) - (void) xfclose(mci->mci_in, pv[0], "mci_in"); + (void) xfclose(mci->mci_in, mci->mci_mailer->m_name, "mci_in"); if (mci->mci_out != NULL) - (void) xfclose(mci->mci_out, pv[0], "mci_out"); + (void) xfclose(mci->mci_out, mci->mci_mailer->m_name, "mci_out"); mci->mci_in = mci->mci_out = NULL; mci->mci_state = MCIS_CLOSED; @@ -1562,10 +1592,11 @@ endmailer(mci, e, pv) } /* it died a horrid death */ - syserr("mailer %s died with signal %o", pv[0], st); + syserr("451 mailer %s died with signal %o", + mci->mci_mailer->m_name, st); /* log the arguments */ - if (e->e_xfp != NULL) + if (pv != NULL && e->e_xfp != NULL) { register char **av; @@ -1647,8 +1678,6 @@ giveresponse(stat, m, mci, ctladdr, e) else { #ifdef SMTP - extern char SmtpError[]; - statmsg = SmtpError; #else /* SMTP */ statmsg = NULL; @@ -1710,7 +1739,7 @@ giveresponse(stat, m, mci, ctladdr, e) if (stat != EX_TEMPFAIL) setstat(stat); - if (stat != EX_OK) + if (stat != EX_OK && (stat != EX_TEMPFAIL || e->e_message == NULL)) { if (e->e_message != NULL) free(e->e_message); @@ -1724,6 +1753,10 @@ giveresponse(stat, m, mci, ctladdr, e) /* ** LOGDELIVERY -- log the delivery in the system log ** +** Care is taken to avoid logging lines that are too long, because +** some versions of syslog have an unfortunate proclivity for core +** dumping. This is a hack, to be sure, that is at best empirical. +** ** Parameters: ** m -- the mailer info. Can be NULL for initial queue. ** mci -- the mailer connection info -- can be NULL if the @@ -1748,13 +1781,16 @@ logdelivery(m, mci, stat, ctladdr, e) { # ifdef LOG register char *bp; + register char *p; + int l; char buf[512]; +# if (SYSLOG_BUFSIZE) >= 256 bp = buf; if (ctladdr != NULL) { strcpy(bp, ", ctladdr="); - strcat(bp, ctladdr->q_paddr); + strcat(bp, shortenstring(ctladdr->q_paddr, 83)); bp += strlen(bp); if (bitset(QGOODUID, ctladdr->q_flags)) { @@ -1799,9 +1835,111 @@ logdelivery(m, mci, stat, ctladdr, e) (void) strcat(bp, p); } } + bp += strlen(bp); + +#define STATLEN (((SYSLOG_BUFSIZE) - 100) / 4) +#if (STATLEN) < 63 +# undef STATLEN +# define STATLEN 63 +#endif +#if (STATLEN) > 203 +# undef STATLEN +# define STATLEN 203 +#endif + + if ((bp - buf) > (sizeof buf - ((STATLEN) + 20))) + { + /* desperation move -- truncate data */ + bp = buf + sizeof buf - ((STATLEN) + 17); + strcpy(bp, "..."); + bp += 3; + } + + (void) strcpy(bp, ", stat="); + bp += strlen(bp); + + (void) strcpy(bp, shortenstring(stat, (STATLEN))); - syslog(LOG_INFO, "%s: to=%s%s, stat=%s", - e->e_id, e->e_to, buf, stat); + l = SYSLOG_BUFSIZE - 100 - strlen(buf); + p = e->e_to; + while (strlen(p) >= l) + { + register char *q = strchr(p + l, ','); + + if (q == NULL) + break; + syslog(LOG_INFO, "%s: to=%.*s [more]%s", + e->e_id, ++q - p, p, buf); + p = q; + } + syslog(LOG_INFO, "%s: to=%s%s", e->e_id, p, buf); + +# else /* we have a very short log buffer size */ + + l = SYSLOG_BUFSIZE - 80; + p = e->e_to; + while (strlen(p) >= l) + { + register char *q = strchr(p + l, ','); + + if (q == NULL) + break; + syslog(LOG_INFO, "%s: to=%.*s [more]", + e->e_id, ++q - p, p); + p = q; + } + syslog(LOG_INFO, "%s: to=%s", e->e_id, p); + + if (ctladdr != NULL) + { + bp = buf; + strcpy(buf, "ctladdr="); + bp += strlen(buf); + strcpy(bp, shortenstring(ctladdr->q_paddr, 83)); + bp += strlen(buf); + if (bitset(QGOODUID, ctladdr->q_flags)) + { + (void) sprintf(bp, " (%d/%d)", + ctladdr->q_uid, ctladdr->q_gid); + bp += strlen(bp); + } + syslog(LOG_INFO, "%s: %s", e->e_id, buf); + } + bp = buf; + sprintf(bp, "delay=%s", pintvl(curtime() - e->e_ctime, TRUE)); + bp += strlen(bp); + + if (m != NULL) + { + sprintf(bp, ", mailer=%s", m->m_name); + bp += strlen(bp); + } + + if (mci != NULL && mci->mci_host != NULL) + { +# ifdef DAEMON + extern SOCKADDR CurHostAddr; +# endif + + sprintf(bp, ", relay=%s", mci->mci_host); + +# ifdef DAEMON + (void) strcat(bp, " ("); + (void) strcat(bp, anynet_ntoa(&CurHostAddr)); + (void) strcat(bp, ")"); +# endif + } + else + { + char *p = macvalue('h', e); + + if (p != NULL && p[0] != '\0') + sprintf(bp, ", relay=%s", p); + } + syslog(LOG_INFO, "%s: %s", e->e_id, buf); + + syslog(LOG_INFO, "%s: stat=%s", e->e_id, shortenstring(stat, 63)); +# endif /* short log buffer */ # endif /* LOG */ } /* @@ -2013,9 +2151,7 @@ mailfile(filename, ctladdr, e) if (bitset(0111, stb.st_mode)) exit(EX_CANTCREAT); - if (ctladdr == NULL) - ctladdr = &e->e_from; - else + if (ctladdr != NULL) { /* ignore setuid and setgid bits */ mode &= ~(S_ISGID|S_ISUID); @@ -2034,7 +2170,7 @@ mailfile(filename, ctladdr, e) if (!bitset(S_ISGID, mode) || setgid(stb.st_gid) < 0) { - if (ctladdr->q_uid == 0) + if (ctladdr == NULL || ctladdr->q_uid == 0) { (void) initgroups(DefUser, DefGid); } @@ -2047,7 +2183,7 @@ mailfile(filename, ctladdr, e) } if (!bitset(S_ISUID, mode) || setuid(stb.st_uid) < 0) { - if (ctladdr->q_uid == 0) + if (ctladdr == NULL || ctladdr->q_uid == 0) (void) setuid(DefUid); else (void) setuid(ctladdr->q_uid); @@ -2174,7 +2310,6 @@ hostsignature(m, host, e) if (nmx <= 0) { register MCI *mci; - extern int errno; /* update the connection info for this host */ mci = mci_get(hp, m); diff --git a/usr.sbin/sendmail/src/domain.c b/usr.sbin/sendmail/src/domain.c index 496859aaa65..ab2f7ff5c4d 100644 --- a/usr.sbin/sendmail/src/domain.c +++ b/usr.sbin/sendmail/src/domain.c @@ -36,9 +36,9 @@ #ifndef lint #ifdef NAMED_BIND -static char sccsid[] = "@(#)domain.c 8.8 (Berkeley) 9/29/93 (with name server)"; +static char sccsid[] = "@(#)domain.c 8.10 (Berkeley) 12/21/93 (with name server)"; #else -static char sccsid[] = "@(#)domain.c 8.8 (Berkeley) 9/29/93 (without name server)"; +static char sccsid[] = "@(#)domain.c 8.10 (Berkeley) 12/21/93 (without name server)"; #endif #endif /* not lint */ @@ -158,6 +158,12 @@ getmxrr(host, mxhosts, droplocalhost, rcode) case HOST_NOT_FOUND: /* the host just doesn't exist */ *rcode = EX_NOHOST; + + if (!UseNameServer) + { + /* might exist in /etc/hosts */ + goto punt; + } break; case TRY_AGAIN: @@ -419,8 +425,10 @@ getcanonname(host, hbsize, trymx) bool gotmx; int qtype; int loopcnt; + char *xp; char nbuf[MAX(PACKETSZ, MAXDNAME*2+2)]; char *searchlist[MAXDNSRCH+2]; + extern char *gethostalias(); if (tTd(8, 2)) printf("getcanonname(%s)\n", host); @@ -444,6 +452,20 @@ cnameloop: if (*cp == '.') n++; + if (n == 0 && (xp = gethostalias(host)) != NULL) + { + if (loopcnt++ > MAXCNAMEDEPTH) + { + syserr("loop in ${HOSTALIASES} file"); + } + else + { + strncpy(host, xp, hbsize); + host[hbsize - 1] = '\0'; + goto cnameloop; + } + } + dp = searchlist; if (n > 0) *dp++ = ""; @@ -637,6 +659,54 @@ cnameloop: return TRUE; } + +char * +gethostalias(host) + char *host; +{ + char *fname; + FILE *fp; + register char *p; + char buf[MAXLINE]; + static char hbuf[MAXDNAME]; + + fname = getenv("HOSTALIASES"); + if (fname == NULL || (fp = fopen(fname, "r")) == NULL) + return NULL; + while (fgets(buf, sizeof buf, fp) != NULL) + { + for (p = buf; p != '\0' && !(isascii(*p) && isspace(*p)); p++) + continue; + if (*p == 0) + { + /* syntax error */ + continue; + } + *p++ = '\0'; + if (strcasecmp(buf, host) == 0) + break; + } + + if (feof(fp)) + { + /* no match */ + fclose(fp); + return NULL; + } + + /* got a match; extract the equivalent name */ + while (*p != '\0' && isascii(*p) && isspace(*p)) + p++; + host = p; + while (*p != '\0' && !(isascii(*p) && isspace(*p))) + p++; + *p = '\0'; + strncpy(hbuf, host, sizeof hbuf - 1); + hbuf[sizeof hbuf - 1] = '\0'; + return hbuf; +} + + #else /* not NAMED_BIND */ #include <netdb.h> diff --git a/usr.sbin/sendmail/src/envelope.c b/usr.sbin/sendmail/src/envelope.c index 29879575a6e..3048ac3dc3a 100644 --- a/usr.sbin/sendmail/src/envelope.c +++ b/usr.sbin/sendmail/src/envelope.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)envelope.c 8.17 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)envelope.c 8.28 (Berkeley) 1/9/94"; #endif /* not lint */ #include "sendmail.h" @@ -110,7 +110,7 @@ dropenvelope(e) { printf("dropenvelope %x: id=", e); xputs(e->e_id); - printf(", flags=%o\n", e->e_flags); + printf(", flags=0x%x\n", e->e_flags); if (tTd(50, 10)) { printf("sendq="); @@ -123,10 +123,13 @@ dropenvelope(e) return; #ifdef LOG + if (LogLevel > 4 && bitset(EF_LOGSENDER, e->e_flags)) + logsender(e, NULL); if (LogLevel > 84) - syslog(LOG_DEBUG, "dropenvelope, id=%s, flags=%o, pid=%d", + syslog(LOG_DEBUG, "dropenvelope, id=%s, flags=0x%x, pid=%d", id, e->e_flags, getpid()); #endif /* LOG */ + e->e_flags &= ~EF_LOGSENDER; /* post statistics */ poststats(StatFile); @@ -214,6 +217,7 @@ dropenvelope(e) (void) sendtolist(e->e_receiptto, NULLADDR, &rlist, e); (void) returntosender("Return receipt", rlist, FALSE, e); + e->e_flags &= ~EF_SENDRECEIPT; } /* @@ -272,9 +276,6 @@ dropenvelope(e) (void) xfclose(e->e_dfp, "dropenvelope", e->e_df); e->e_dfp = NULL; e->e_id = e->e_df = NULL; -#ifdef XDEBUG - checkfd012("dropenvelope"); -#endif } /* ** CLEARENVELOPE -- clear an envelope without unlocking @@ -583,7 +584,8 @@ setsender(from, e, delimptr, internal) ** Username can return errno != 0 on non-errors. */ - if (bitset(EF_QUEUERUN, e->e_flags) || OpMode == MD_SMTP) + if (bitset(EF_QUEUERUN, e->e_flags) || OpMode == MD_SMTP || + OpMode == MD_DAEMON) realname = from; if (realname == NULL || realname[0] == '\0') realname = username(); @@ -619,7 +621,7 @@ setsender(from, e, delimptr, internal) } syslog(LOG_NOTICE, "setsender: %s: invalid or unparseable, received from %s", - from, p); + shortenstring(from, 83), p); } # endif /* LOG */ if (from != NULL) @@ -681,7 +683,7 @@ setsender(from, e, delimptr, internal) ** We have an alternate address for the sender */ - pvp = prescan(p, '\0', pvpbuf, NULL); + pvp = prescan(p, '\0', pvpbuf, sizeof pvpbuf, NULL); } # endif /* USERDB */ } @@ -700,6 +702,7 @@ setsender(from, e, delimptr, internal) /* extract user and group id */ e->e_from.q_uid = pw->pw_uid; e->e_from.q_gid = pw->pw_gid; + e->e_from.q_flags |= QGOODUID; /* extract full name from passwd file */ if (FullName == NULL && pw->pw_gecos != NULL && @@ -714,12 +717,13 @@ setsender(from, e, delimptr, internal) if (FullName != NULL && !internal) define('x', FullName, e); } - else if (!internal) + else if (!internal && OpMode != MD_DAEMON) { if (e->e_from.q_home == NULL) e->e_from.q_home = getenv("HOME"); e->e_from.q_uid = RealUid; e->e_from.q_gid = RealGid; + e->e_from.q_flags |= QGOODUID; } /* @@ -728,7 +732,7 @@ setsender(from, e, delimptr, internal) */ if (pvp == NULL) - pvp = prescan(from, '\0', pvpbuf, NULL); + pvp = prescan(from, delimchar, pvpbuf, sizeof pvpbuf, NULL); if (pvp == NULL) { /* don't need to give error -- prescan did that already */ @@ -738,9 +742,9 @@ setsender(from, e, delimptr, internal) # endif finis(); } - (void) rewrite(pvp, 3, e); - (void) rewrite(pvp, 1, e); - (void) rewrite(pvp, 4, e); + (void) rewrite(pvp, 3, 0, e); + (void) rewrite(pvp, 1, 0, e); + (void) rewrite(pvp, 4, 0, e); bp = buf + 1; cataddr(pvp, NULL, bp, sizeof buf - 2, '\0'); if (*bp == '@') @@ -753,7 +757,7 @@ setsender(from, e, delimptr, internal) define('f', e->e_sender, e); /* save the domain spec if this mailer wants it */ - if (!internal && e->e_from.q_mailer != NULL && + if (e->e_from.q_mailer != NULL && bitnset(M_CANONICAL, e->e_from.q_mailer->m_flags)) { extern char **copyplist(); diff --git a/usr.sbin/sendmail/src/err.c b/usr.sbin/sendmail/src/err.c index 64ae3eb6660..60e78e3b7c5 100644 --- a/usr.sbin/sendmail/src/err.c +++ b/usr.sbin/sendmail/src/err.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)err.c 8.14 (Berkeley) 10/29/93"; +static char sccsid[] = "@(#)err.c 8.19 (Berkeley) 1/8/94"; #endif /* not lint */ # include "sendmail.h" @@ -159,8 +159,6 @@ usrerr(fmt, va_alist) #endif { VA_LOCAL_DECL - extern char SuprErrs; - extern int errno; if (SuprErrs) return; @@ -287,13 +285,13 @@ putoutmsg(msg, holdmsg) msg[0] = '5'; (void) fflush(stdout); - if (OpMode == MD_SMTP) + if (OpMode == MD_SMTP || OpMode == MD_DAEMON) fprintf(OutChannel, "%s\r\n", msg); else fprintf(OutChannel, "%s\n", &msg[4]); if (TrafficLogFile != NULL) fprintf(TrafficLogFile, "%05d >>> %s\n", getpid(), - OpMode == MD_SMTP ? msg : &msg[4]); + (OpMode == MD_SMTP || OpMode == MD_DAEMON) ? msg : &msg[4]); if (msg[3] == ' ') (void) fflush(OutChannel); if (!ferror(OutChannel)) @@ -449,6 +447,7 @@ const char * errstring(errno) int errno; { + char *dnsmsg; static char buf[MAXLINE]; # ifndef ERRLIST_PREDEFINED extern char *sys_errlist[]; @@ -458,16 +457,16 @@ errstring(errno) extern char *SmtpPhase; # endif /* SMTP */ -# ifdef DAEMON -# ifdef ETIMEDOUT /* ** Handle special network error codes. ** ** These are 4.2/4.3bsd specific; they should be in daemon.c. */ + dnsmsg = NULL; switch (errno) { +# if defined(DAEMON) && defined(ETIMEDOUT) case ETIMEDOUT: case ECONNRESET: (void) strcpy(buf, sys_errlist[errno]); @@ -494,26 +493,45 @@ errstring(errno) break; (void) sprintf(buf, "Connection refused by %s", CurHostName); return (buf); +# endif case EOPENTIMEOUT: return "Timeout on file open"; # ifdef NAMED_BIND case HOST_NOT_FOUND + E_DNSBASE: - return ("Name server: host not found"); + dnsmsg = "host not found"; + break; case TRY_AGAIN + E_DNSBASE: - return ("Name server: host name lookup failure"); + dnsmsg = "host name lookup failure"; + break; case NO_RECOVERY + E_DNSBASE: - return ("Name server: non-recoverable error"); + dnsmsg = "non-recoverable error"; + break; case NO_DATA + E_DNSBASE: - return ("Name server: no data known for name"); + dnsmsg = "no data known"; + break; # endif + + case EPERM: + /* SunOS gives "Not owner" -- this is the POSIX message */ + return "Operation not permitted"; + } + + if (dnsmsg != NULL) + { + (void) strcpy(buf, "Name server: "); + if (CurHostName != NULL) + { + (void) strcat(buf, CurHostName); + (void) strcat(buf, ": "); + } + (void) strcat(buf, dnsmsg); + return buf; } -# endif -# endif if (errno > 0 && errno < sys_nerr) return (sys_errlist[errno]); diff --git a/usr.sbin/sendmail/src/headers.c b/usr.sbin/sendmail/src/headers.c index 1fea6396d80..b05876bf20e 100644 --- a/usr.sbin/sendmail/src/headers.c +++ b/usr.sbin/sendmail/src/headers.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)headers.c 8.13 (Berkeley) 10/24/93"; +static char sccsid[] = "@(#)headers.c 8.22 (Berkeley) 1/13/94"; #endif /* not lint */ # include <errno.h> @@ -371,6 +371,11 @@ eatheader(e, full) else define('u', NULL, e); + /* full name of from person */ + p = hvalue("full-name", e); + if (p != NULL) + define('x', p, e); + if (tTd(32, 1)) printf("----- collected header -----\n"); msgid = "<none>"; @@ -395,7 +400,11 @@ eatheader(e, full) } if (tTd(32, 1)) - printf("%s: %s\n", h->h_field, h->h_value); + { + printf("%s: ", h->h_field); + xputs(h->h_value); + printf("\n"); + } /* count the number of times it has been processed */ if (bitset(H_TRACE, h->h_flags)) @@ -453,11 +462,6 @@ eatheader(e, full) - e->e_class * WkClassFact + e->e_nrcpts * WkRecipFact; - /* full name of from person */ - p = hvalue("full-name", e); - if (p != NULL) - define('x', p, e); - /* date message originated */ p = hvalue("posted-date", e); if (p == NULL) @@ -471,48 +475,97 @@ eatheader(e, full) # ifdef LOG if (full && LogLevel > 4) + logsender(e, msgid); +# endif /* LOG */ + e->e_flags &= ~EF_LOGSENDER; +} +/* +** LOGSENDER -- log sender information +** +** Parameters: +** e -- the envelope to log +** msgid -- the message id +** +** Returns: +** none +*/ + +logsender(e, msgid) + register ENVELOPE *e; + char *msgid; +{ + char *name; + register char *sbp; + register char *p; + char hbuf[MAXNAME]; + char sbuf[MAXLINE]; + + if (bitset(EF_RESPONSE, e->e_flags)) + name = "[RESPONSE]"; + else if ((name = macvalue('_', e)) != NULL) + ; + else if (RealHostName[0] == '[') + name = RealHostName; + else { - char *name; - register char *sbp; - char hbuf[MAXNAME]; - char sbuf[MAXLINE]; - - if (bitset(EF_RESPONSE, e->e_flags)) - name = "[RESPONSE]"; - else if ((name = macvalue('_', e)) != NULL) - ; - else if (RealHostName[0] == '[') - name = RealHostName; - else + name = hbuf; + (void) sprintf(hbuf, "%.80s", RealHostName); + if (RealHostAddr.sa.sa_family != 0) { - name = hbuf; - (void) sprintf(hbuf, "%.80s", RealHostName); - if (RealHostAddr.sa.sa_family != 0) - { - p = &hbuf[strlen(hbuf)]; - (void) sprintf(p, " (%s)", - anynet_ntoa(&RealHostAddr)); - } + p = &hbuf[strlen(hbuf)]; + (void) sprintf(p, " (%s)", + anynet_ntoa(&RealHostAddr)); } + } - /* some versions of syslog only take 5 printf args */ - sbp = sbuf; - sprintf(sbp, "from=%.200s, size=%ld, class=%d, pri=%ld, nrcpts=%d, msgid=%.100s", - e->e_from.q_paddr, e->e_msgsize, e->e_class, - e->e_msgpriority, e->e_nrcpts, msgid); + /* some versions of syslog only take 5 printf args */ +# if (SYSLOG_BUFSIZE) >= 256 + sbp = sbuf; + sprintf(sbp, "from=%.200s, size=%ld, class=%d, pri=%ld, nrcpts=%d", + e->e_from.q_paddr, e->e_msgsize, e->e_class, + e->e_msgpriority, e->e_nrcpts); + sbp += strlen(sbp); + if (msgid != NULL) + { + sprintf(sbp, ", msgid=%.100s", msgid); sbp += strlen(sbp); - if (e->e_bodytype != NULL) - { - (void) sprintf(sbp, ", bodytype=%.20s", e->e_bodytype); - sbp += strlen(sbp); - } - p = macvalue('r', e); - if (p != NULL) - (void) sprintf(sbp, ", proto=%.20s", p); - syslog(LOG_INFO, "%s: %s, relay=%s", - e->e_id, sbuf, name); } -# endif /* LOG */ + if (e->e_bodytype != NULL) + { + (void) sprintf(sbp, ", bodytype=%.20s", e->e_bodytype); + sbp += strlen(sbp); + } + p = macvalue('r', e); + if (p != NULL) + (void) sprintf(sbp, ", proto=%.20s", p); + syslog(LOG_INFO, "%s: %s, relay=%s", + e->e_id, sbuf, name); + +# else /* short syslog buffer */ + + syslog(LOG_INFO, "%s: from=%s", + e->e_id, shortenstring(e->e_from.q_paddr, 83)); + syslog(LOG_INFO, "%s: size=%ld, class=%ld, pri=%ld, nrcpts=%d", + e->e_id, e->e_msgsize, e->e_class, + e->e_msgpriority, e->e_nrcpts); + if (msgid != NULL) + syslog(LOG_INFO, "%s: msgid=%s", e->e_id, msgid); + sbp = sbuf; + sprintf(sbp, "%s:", e->e_id); + sbp += strlen(sbp); + if (e->e_bodytype != NULL) + { + sprintf(sbp, " bodytype=%s,", e->e_bodytype); + sbp += strlen(sbp); + } + p = macvalue('r', e); + if (p != NULL) + { + sprintf(sbp, " proto=%s,", p); + sbp += strlen(sbp); + } + syslog(LOG_INFO, "%s relay=%s", sbuf, name); +# endif } /* ** PRIENCODE -- encode external priority names into internal values. @@ -639,7 +692,7 @@ crackaddr(addr) } /* check for quoted strings */ - if (c == '"') + if (c == '"' && cmtlev <= 0) { qmode = !qmode; if (copylev > 0 && !skipping) @@ -683,11 +736,10 @@ crackaddr(addr) else if (c == ')') { /* syntax error: unmatched ) */ - if (!skipping) + if (copylev > 0 && !skipping) bp--; } - /* check for characters that may have to be quoted */ if (strchr(".'@,;:\\()[]", c) != NULL) { @@ -864,19 +916,24 @@ putheader(fp, m, e) printf(" (skipped (resent))\n"); continue; } - if (tTd(34, 11)) - printf("\n"); + /* macro expand value if generated internally */ p = h->h_value; if (bitset(H_DEFAULT, h->h_flags)) { - /* macro expand value if generated internally */ expand(p, buf, &buf[sizeof buf], e); p = buf; if (p == NULL || *p == '\0') + { + if (tTd(34, 11)) + printf(" (skipped -- null value)\n"); continue; + } } + if (tTd(34, 11)) + printf("\n"); + if (bitset(H_FROM|H_RCPT, h->h_flags)) { /* address field */ @@ -980,7 +1037,8 @@ commaize(h, p, fp, oldstyle, m, e) auto char *oldp; char pvpbuf[PSBUFSIZE]; - (void) prescan(p, oldstyle ? ' ' : ',', pvpbuf, &oldp); + (void) prescan(p, oldstyle ? ' ' : ',', pvpbuf, + sizeof pvpbuf, &oldp); p = oldp; /* look to see if we have an at sign */ diff --git a/usr.sbin/sendmail/src/main.c b/usr.sbin/sendmail/src/main.c index 5db6935d629..d05f13da46c 100644 --- a/usr.sbin/sendmail/src/main.c +++ b/usr.sbin/sendmail/src/main.c @@ -39,7 +39,7 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)main.c 8.33 (Berkeley) 10/24/93"; +static char sccsid[] = "@(#)main.c 8.46 (Berkeley) 1/9/94"; #endif /* not lint */ #define _DEFINE @@ -155,6 +155,7 @@ main(argc, argv, envp) extern char *getcfname(); extern char *optarg; extern char **environ; + extern void dumpstate(); /* ** Check to see if we reentered. @@ -170,7 +171,12 @@ main(argc, argv, envp) reenter = TRUE; /* do machine-dependent initializations */ - init_md(); + init_md(argc, argv); + + /* arrange to dump state on signal */ +#ifdef SIGUSR1 + setsignal(SIGUSR1, dumpstate); +#endif /* in 4.4BSD, the table can be huge; impose a reasonable limit */ DtableSize = getdtsize(); @@ -253,12 +259,15 @@ main(argc, argv, envp) #if defined(__osf__) || defined(_AIX3) # define OPTIONS "B:b:C:cd:e:F:f:h:Iimno:p:q:r:sTtvX:x" -#else -# if defined(ultrix) -# define OPTIONS "B:b:C:cd:e:F:f:h:IiM:mno:p:q:r:sTtvX:" -# else -# define OPTIONS "B:b:C:cd:e:F:f:h:Iimno:p:q:r:sTtvX:" -# endif +#endif +#if defined(ultrix) +# define OPTIONS "B:b:C:cd:e:F:f:h:IiM:mno:p:q:r:sTtvX:" +#endif +#if defined(NeXT) +# define OPTIONS "B:b:C:cd:e:F:f:h:IimnOo:p:q:r:sTtvX:" +#endif +#ifndef OPTIONS +# define OPTIONS "B:b:C:cd:e:F:f:h:Iimno:p:q:r:sTtvX:" #endif while ((j = getopt(argc, argv, OPTIONS)) != EOF) { @@ -334,10 +343,9 @@ main(argc, argv, envp) if (tTd(0, 4)) printf("canonical name: %s\n", jbuf); - p = newstr(jbuf); define('w', newstr(jbuf), CurEnv); /* must be new string */ - define('j', p, CurEnv); - setclass('w', p); + define('j', newstr(jbuf), CurEnv); + setclass('w', jbuf); p = strchr(jbuf, '.'); if (p != NULL) @@ -360,6 +368,8 @@ main(argc, argv, envp) p = utsname.nodename; else { + if (tTd(0, 22)) + printf("uname failed (%s)\n", errstring(errno)); makelower(jbuf); p = jbuf; } @@ -367,6 +377,7 @@ main(argc, argv, envp) printf("UUCP nodename: %s\n", p); p = newstr(p); define('k', p, CurEnv); + setclass('k', p); setclass('w', p); } while (av != NULL && *av != NULL) @@ -586,6 +597,10 @@ main(argc, argv, envp) case 'x': /* random flag that OSF/1 & AIX mailx passes */ break; # endif +# if defined(NeXT) + case 'O': /* random flag that NeXT Mail.app passes */ + break; +# endif default: ExitStat = EX_USAGE; @@ -601,6 +616,9 @@ main(argc, argv, envp) ** Extract special fields for local use. */ +#ifdef XDEBUG + checkfd012("before readcf"); +#endif readcf(getcfname(), safecf, CurEnv); if (tTd(0, 1)) @@ -761,6 +779,10 @@ main(argc, argv, envp) exit(ExitStat); } +#ifdef XDEBUG + checkfd012("before main() initmaps"); +#endif + /* ** Do operation-mode-dependent initialization. */ @@ -899,7 +921,8 @@ main(argc, argv, envp) { char pvpbuf[PSBUFSIZE]; - pvp = prescan(++p, ',', pvpbuf, &delimptr); + pvp = prescan(++p, ',', pvpbuf, sizeof pvpbuf, + &delimptr); if (pvp == NULL) continue; p = q; @@ -907,7 +930,7 @@ main(argc, argv, envp) { int stat; - stat = rewrite(pvp, atoi(p), CurEnv); + stat = rewrite(pvp, atoi(p), 0, CurEnv); if (stat != EX_OK) printf("== Ruleset %s status %d\n", p, stat); @@ -1005,7 +1028,7 @@ main(argc, argv, envp) ** commands. This will never return. */ - if (OpMode == MD_SMTP) + if (OpMode == MD_SMTP || OpMode == MD_DAEMON) smtp(CurEnv); # endif /* SMTP */ @@ -1325,7 +1348,8 @@ static void obsolete(argv) char *argv[]; { - char *ap; + register char *ap; + register char *op; while ((ap = *++argv) != NULL) { @@ -1333,10 +1357,18 @@ obsolete(argv) if (ap[0] != '-' || ap[1] == '-') return; + /* skip over options that do have a value */ + op = strchr(OPTIONS, ap[1]); + if (op != NULL && *++op == ':' && ap[2] == '\0' && + argv[1] != NULL && argv[1][0] != '-') + { + argv++; + continue; + } + /* If -C doesn't have an argument, use sendmail.cf. */ #define __DEFPATH "sendmail.cf" - if (ap[1] == 'C' && ap[2] == '\0' && - (argv[1] == NULL || argv[1][0] == '-')) + if (ap[1] == 'C' && ap[2] == '\0') { *argv = xalloc(sizeof(__DEFPATH) + 2); argv[0][0] = '-'; @@ -1345,13 +1377,11 @@ obsolete(argv) } /* If -q doesn't have an argument, run it once. */ - if (ap[1] == 'q' && ap[2] == '\0' && - (argv[1] == NULL || argv[1][0] == '-')) + if (ap[1] == 'q' && ap[2] == '\0') *argv = "-q0"; /* if -d doesn't have an argument, use 0-99.1 */ - if (ap[1] == 'd' && ap[2] == '\0' && - (argv[1] == NULL || !isdigit(argv[1][0]))) + if (ap[1] == 'd' && ap[2] == '\0') *argv = "-d0-99.1"; } } @@ -1397,3 +1427,40 @@ auth_warning(e, msg, va_alist) addheader("X-Authentication-Warning", buf, e); } } +/* +** DUMPSTATE -- dump state on user signal +** +** For debugging. +*/ + +void +dumpstate() +{ +#ifdef LOG + register char *j = macvalue('j', CurEnv); + register STAB *s; + + syslog(LOG_DEBUG, "--- dumping state on user signal: $j = %s ---", j); + s = stab(j, ST_CLASS, ST_FIND); + if (s == NULL || !bitnset('w', s->s_class)) + syslog(LOG_DEBUG, "*** $j not in $=w ***"); + syslog(LOG_DEBUG, "--- open file descriptors: ---"); + printopenfds(TRUE); + syslog(LOG_DEBUG, "--- connection cache: ---"); + mci_dump_all(TRUE); + if (RewriteRules[89] != NULL) + { + int stat; + register char **pvp; + char *pv[MAXATOM + 1]; + + pv[0] = NULL; + stat = rewrite(pv, 89, 0, CurEnv); + syslog(LOG_DEBUG, "--- ruleset 89 returns stat %d, pv: ---", + stat); + for (pvp = pv; *pvp != NULL; pvp++) + syslog(LOG_DEBUG, "%s", *pvp); + } + syslog(LOG_DEBUG, "--- end of state dump ---"); +#endif +} diff --git a/usr.sbin/sendmail/src/map.c b/usr.sbin/sendmail/src/map.c index 0ee24f81d70..7a3bdc0c002 100644 --- a/usr.sbin/sendmail/src/map.c +++ b/usr.sbin/sendmail/src/map.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)map.c 8.17 (Berkeley) 10/15/93"; +static char sccsid[] = "@(#)map.c 8.20 (Berkeley) 12/11/93"; #endif /* not lint */ #include "sendmail.h" @@ -336,7 +336,15 @@ initmaps(rebuild, e) checkfd012("entering initmaps"); #endif CurEnv = e; - stabapply(map_init, rebuild); + if (rebuild) + { + stabapply(map_init, 1); + stabapply(map_init, 2); + } + else + { + stabapply(map_init, 0); + } #ifdef XDEBUG checkfd012("exiting initmaps"); #endif @@ -358,10 +366,19 @@ map_init(s, rebuild) return; if (tTd(38, 2)) - printf("map_init(%s:%s)\n", + printf("map_init(%s:%s, %d)\n", map->map_class->map_cname == NULL ? "NULL" : map->map_class->map_cname, - map->map_file == NULL ? "NULL" : map->map_file); + map->map_file == NULL ? "NULL" : map->map_file, + rebuild); + + if (rebuild == (bitset(MF_ALIAS, map->map_mflags) && + bitset(MCF_REBUILDABLE, map->map_class->map_cflags) ? 1 : 2)) + { + if (tTd(38, 3)) + printf("\twrong pass\n"); + return; + } /* if already open, close it (for nested open) */ if (bitset(MF_OPEN, map->map_mflags)) @@ -370,18 +387,16 @@ map_init(s, rebuild) map->map_mflags &= ~(MF_OPEN|MF_WRITABLE); } - if (rebuild) + if (rebuild == 2) { - if (bitset(MF_ALIAS, map->map_mflags) && - bitset(MCF_REBUILDABLE, map->map_class->map_cflags)) - rebuildaliases(map, FALSE); + rebuildaliases(map, FALSE); } else { if (map->map_class->map_open(map, O_RDONLY)) { if (tTd(38, 4)) - printf("%s:%s: valid\n", + printf("\t%s:%s: valid\n", map->map_class->map_cname == NULL ? "NULL" : map->map_class->map_cname, map->map_file == NULL ? "NULL" : @@ -389,7 +404,7 @@ map_init(s, rebuild) map->map_mflags |= MF_OPEN; } else if (tTd(38, 4)) - printf("%s:%s: invalid: %s\n", + printf("\t%s:%s: invalid: %s\n", map->map_class->map_cname == NULL ? "NULL" : map->map_class->map_cname, map->map_file == NULL ? "NULL" : @@ -434,9 +449,22 @@ ndbm_map_open(map, mode) return FALSE; } map->map_db1 = (void *) dbm; - if (mode == O_RDONLY && bitset(MF_ALIAS, map->map_mflags)) - if (!aliaswait(map, ".pag", TRUE)) + if (mode == O_RDONLY) + { + if (bitset(MF_ALIAS, map->map_mflags) && + !aliaswait(map, ".pag", TRUE)) return FALSE; + } + else + { + int fd; + + /* exclusive lock for duration of rebuild */ + fd = dbm_dirfno((DBM *) map->map_db1); + if (fd >= 0 && !bitset(MF_LOCKED, map->map_mflags) && + lockfile(fd, map->map_file, ".dir", LOCK_EX)) + map->map_mflags |= MF_LOCKED; + } if (fstat(dbm_dirfno((DBM *) map->map_db1), &st) >= 0) map->map_mtime = st.st_mtime; return TRUE; @@ -559,7 +587,7 @@ ndbm_map_close(map) (void) sprintf(buf, "%010ld", curtime()); ndbm_map_store(map, "YP_LAST_MODIFIED", buf); - (void) myhostname(buf, sizeof buf); + (void) gethostname(buf, sizeof buf); ndbm_map_store(map, "YP_MASTER_NAME", buf); if (inclnull) @@ -1237,6 +1265,9 @@ impl_map_open(map, mode) #if defined(NEWDB) || defined(NDBM) if (Verbose) message("WARNING: cannot open alias database %s", map->map_file); +#else + if (mode != O_RDONLY) + usrerr("Cannot rebuild aliases: no database format defined"); #endif return stab_map_open(map, mode); diff --git a/usr.sbin/sendmail/src/mci.c b/usr.sbin/sendmail/src/mci.c index 46f8c9596d8..68a98dd3a67 100644 --- a/usr.sbin/sendmail/src/mci.c +++ b/usr.sbin/sendmail/src/mci.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)mci.c 8.6 (Berkeley) 10/23/93"; +static char sccsid[] = "@(#)mci.c 8.9 (Berkeley) 12/1/93"; #endif /* not lint */ #include "sendmail.h" @@ -275,6 +275,8 @@ mci_get(host, m) bzero(&CurHostAddr, sizeof CurHostAddr); #endif + if (m->m_mno < 0) + syserr("negative mno %d (%s)", m->m_mno, m->m_name); s = stab(host, ST_MCI + m->m_mno, ST_ENTER); mci = &s->s_mci; mci->mci_host = s->s_name; @@ -348,7 +350,7 @@ mci_dump(mci, logit) ctime(&mci->mci_lastuse)); printit: if (logit) - syslog(LOG_INFO, "%s", buf); + syslog(LOG_DEBUG, "%s", buf); else printf("%s\n", buf); } @@ -368,6 +370,9 @@ mci_dump_all(logit) { register int i; + if (MciCache == NULL) + return; + for (i = 0; i < MaxMciCache; i++) mci_dump(MciCache[i], logit); } diff --git a/usr.sbin/sendmail/src/parseaddr.c b/usr.sbin/sendmail/src/parseaddr.c index ea8e180ebae..13274dab7c6 100644 --- a/usr.sbin/sendmail/src/parseaddr.c +++ b/usr.sbin/sendmail/src/parseaddr.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)parseaddr.c 8.17 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)parseaddr.c 8.29 (Berkeley) 1/5/94"; #endif /* not lint */ # include "sendmail.h" @@ -103,7 +103,7 @@ parseaddr(addr, a, flags, delim, delimptr, e) if (delimptr == NULL) delimptr = &delimptrbuf; - pvp = prescan(addr, delim, pvpbuf, delimptr); + pvp = prescan(addr, delim, pvpbuf, sizeof pvpbuf, delimptr); if (pvp == NULL) { if (tTd(20, 1)) @@ -143,9 +143,9 @@ parseaddr(addr, a, flags, delim, delimptr, e) */ queueup = FALSE; - if (rewrite(pvp, 3, e) == EX_TEMPFAIL) + if (rewrite(pvp, 3, 0, e) == EX_TEMPFAIL) queueup = TRUE; - if (rewrite(pvp, 0, e) == EX_TEMPFAIL) + if (rewrite(pvp, 0, 0, e) == EX_TEMPFAIL) queueup = TRUE; @@ -308,6 +308,7 @@ allocaddr(a, flags, paddr) ** If '\t' then we are reading the .cf file. ** pvpbuf -- place to put the saved text -- note that ** the pointers are static. +** pvpbsize -- size of pvpbuf. ** delimptr -- if non-NULL, set to the location of the ** terminating delimiter. ** @@ -341,10 +342,34 @@ static short StateTab[NSTATES][NSTATES] = /*ONE*/ OPR, OPR, OPR, OPR, OPR, }; +/* token type table -- it gets modified with $o characters */ +static TokTypeTab[256] = +{ + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,SPC,SPC,SPC,SPC,SPC,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + SPC,ATM,QST,ATM,ATM,ATM,ATM,ATM,ATM,SPC,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + OPR,OPR,ONE,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR, + OPR,OPR,OPR,ONE,ONE,ONE,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR,OPR, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, + ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM,ATM, +}; + +#define toktype(c) ((int) TokTypeTab[(c) & 0xff]) + + # define NOCHAR -1 /* signal nothing in lookahead token */ char ** -prescan(addr, delim, pvpbuf, delimptr) +prescan(addr, delim, pvpbuf, pvpbsize, delimptr) char *addr; char delim; char pvpbuf[]; @@ -362,8 +387,24 @@ prescan(addr, delim, pvpbuf, delimptr) int newstate; char *saveto = CurEnv->e_to; static char *av[MAXATOM+1]; + static char firsttime = TRUE; extern int errno; + if (firsttime) + { + /* initialize the token type table */ + char obuf[50]; + + firsttime = FALSE; + expand("\201o", obuf, &obuf[sizeof obuf - sizeof DELIMCHARS], CurEnv); + strcat(obuf, DELIMCHARS); + for (p = obuf; *p != '\0'; p++) + { + if (TokTypeTab[*p & 0xff] == ATM) + TokTypeTab[*p & 0xff] = OPR; + } + } + /* make sure error messages don't have garbage on them */ errno = 0; @@ -393,9 +434,10 @@ prescan(addr, delim, pvpbuf, delimptr) if (c != NOCHAR && !bslashmode) { /* see if there is room */ - if (q >= &pvpbuf[PSBUFSIZE - 5]) + if (q >= &pvpbuf[pvpbsize - 5]) { usrerr("553 Address too long"); + returnnull: if (delimptr != NULL) *delimptr = p; CurEnv->e_to = saveto; @@ -527,10 +569,12 @@ prescan(addr, delim, pvpbuf, delimptr) if (avp >= &av[MAXATOM]) { syserr("553 prescan: too many tokens"); - if (delimptr != NULL) - *delimptr = p; - CurEnv->e_to = saveto; - return (NULL); + goto returnnull; + } + if (q - tok > MAXNAME) + { + syserr("553 prescan: token too long"); + goto returnnull; } *avp++ = tok; } @@ -546,50 +590,12 @@ prescan(addr, delim, pvpbuf, delimptr) } CurEnv->e_to = saveto; if (av[0] == NULL) - return (NULL); - return (av); -} -/* -** TOKTYPE -- return token type -** -** Parameters: -** c -- the character in question. -** -** Returns: -** Its type. -** -** Side Effects: -** none. -*/ - -toktype(c) - register int c; -{ - static char buf[50]; - static bool firstime = TRUE; - - if (firstime) { - firstime = FALSE; - expand("\201o", buf, &buf[sizeof buf - 1], CurEnv); - (void) strcat(buf, DELIMCHARS); + if (tTd(22, 1)) + printf("prescan: null leading token\n"); + return (NULL); } - c &= 0377; - if (c == MATCHCLASS || c == MATCHREPL || c == MATCHNCLASS) - return (ONE); - if (c == MACRODEXPAND) - return (ONE); - if (c == '"') - return (QST); - if ((c & 0340) == 0200) - return (OPR); - if (!isascii(c)) - return (ATM); - if (isspace(c) || c == ')') - return (SPC); - if (strchr(buf, c) != NULL) - return (OPR); - return (ATM); + return (av); } /* ** REWRITE -- apply rewrite rules to token vector. @@ -616,6 +622,7 @@ toktype(c) ** Parameters: ** pvp -- pointer to token vector. ** ruleset -- the ruleset to use for rewriting. +** reclevel -- recursion level (to catch loops). ** e -- the current envelope. ** ** Returns: @@ -635,11 +642,16 @@ struct match # define MAXMATCH 9 /* max params per rewrite */ +# ifndef MAXRULERECURSION +# define MAXRULERECURSION 50 /* max recursion depth */ +# endif + int -rewrite(pvp, ruleset, e) +rewrite(pvp, ruleset, reclevel, e) char **pvp; int ruleset; + int reclevel; register ENVELOPE *e; { register char *ap; /* address pointer */ @@ -664,6 +676,11 @@ rewrite(pvp, ruleset, e) syserr("554 rewrite: illegal ruleset number %d", ruleset); return EX_CONFIG; } + if (reclevel++ > MAXRULERECURSION) + { + syserr("rewrite: infinite recursion, ruleset %d", ruleset); + return EX_CONFIG; + } if (pvp == NULL) return EX_USAGE; @@ -1124,7 +1141,8 @@ rewrite(pvp, ruleset, e) else { /* scan the new replacement */ - xpvp = prescan(replac, '\0', pvpbuf, NULL); + xpvp = prescan(replac, '\0', pvpbuf, + sizeof pvpbuf, NULL); if (xpvp == NULL) { /* prescan already printed error */ @@ -1156,15 +1174,24 @@ rewrite(pvp, ruleset, e) { int stat; - bcopy((char *) &npvp[2], (char *) pvp, - (int) (avp - npvp - 2) * sizeof *avp); - if (tTd(21, 3)) - printf("-----callsubr %s\n", npvp[1]); - stat = rewrite(pvp, atoi(npvp[1]), e); - if (rstat == EX_OK || stat == EX_TEMPFAIL) - rstat = stat; - if ((**pvp & 0377) == CANONNET) + if (npvp[1] == NULL) + { + syserr("parseaddr: NULL subroutine call in ruleset %d, rule %d", + ruleset, ruleno); + *pvp = NULL; + } + else + { + bcopy((char *) &npvp[2], (char *) pvp, + (int) (avp - npvp - 2) * sizeof *avp); + if (tTd(21, 3)) + printf("-----callsubr %s\n", npvp[1]); + stat = rewrite(pvp, atoi(npvp[1]), reclevel, e); + if (rstat == EX_OK || stat == EX_TEMPFAIL) + rstat = stat; + if (*pvp != NULL && (**pvp & 0377) == CANONNET) rwr = NULL; + } } else { @@ -1285,6 +1312,8 @@ badaddr: } tv++; } + else + setstat(EX_UNAVAILABLE); if ((**tv & 0377) != CANONUSER) syserr("554 buildaddr: error: no user"); cataddr(++tv, NULL, buf, sizeof buf, ' '); @@ -1402,11 +1431,11 @@ badaddr: if (!bitset(RF_SENDERADDR|RF_HEADERADDR, flags)) { /* sender addresses done later */ - (void) rewrite(tv, 2, e); + (void) rewrite(tv, 2, 0, e); if (m->m_re_rwset > 0) - (void) rewrite(tv, m->m_re_rwset, e); + (void) rewrite(tv, m->m_re_rwset, 0, e); } - (void) rewrite(tv, 4, e); + (void) rewrite(tv, 4, 0, e); /* save the result for the command line/RCPT argument */ cataddr(tv, NULL, buf, sizeof buf, '\0'); @@ -1500,6 +1529,8 @@ sameaddr(a, b) register ADDRESS *a; register ADDRESS *b; { + register ADDRESS *ca, *cb; + /* if they don't have the same mailer, forget it */ if (a->q_mailer != b->q_mailer) return (FALSE); @@ -1508,9 +1539,16 @@ sameaddr(a, b) if (strcmp(a->q_user, b->q_user) != 0) return (FALSE); - /* if we have good uids for both but the differ, these are different */ - if (bitset(QGOODUID, a->q_flags & b->q_flags) && a->q_uid != b->q_uid) - return (FALSE); + /* if we have good uids for both but they differ, these are different */ + if (a->q_mailer == ProgMailer) + { + ca = getctladdr(a); + cb = getctladdr(b); + if (ca != NULL && cb != NULL && + bitset(QGOODUID, ca->q_flags & cb->q_flags) && + ca->q_uid != cb->q_uid) + return (FALSE); + } /* otherwise compare hosts (but be careful for NULL ptrs) */ if (a->q_host == b->q_host) @@ -1655,10 +1693,10 @@ remotename(name, m, flags, pstat, e) ** domain will be appended. */ - pvp = prescan(name, '\0', pvpbuf, NULL); + pvp = prescan(name, '\0', pvpbuf, sizeof pvpbuf, NULL); if (pvp == NULL) return (name); - if (rewrite(pvp, 3, e) == EX_TEMPFAIL) + if (rewrite(pvp, 3, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; if (bitset(RF_ADDDOMAIN, flags) && e->e_fromdomain != NULL) { @@ -1675,7 +1713,7 @@ remotename(name, m, flags, pstat, e) while ((*pxp++ = *qxq++) != NULL) continue; - if (rewrite(pvp, 3, e) == EX_TEMPFAIL) + if (rewrite(pvp, 3, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; } } @@ -1689,17 +1727,17 @@ remotename(name, m, flags, pstat, e) if (bitset(RF_SENDERADDR, flags)) { - if (rewrite(pvp, 1, e) == EX_TEMPFAIL) + if (rewrite(pvp, 1, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; } else { - if (rewrite(pvp, 2, e) == EX_TEMPFAIL) + if (rewrite(pvp, 2, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; } if (rwset > 0) { - if (rewrite(pvp, rwset, e) == EX_TEMPFAIL) + if (rewrite(pvp, rwset, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; } @@ -1710,7 +1748,7 @@ remotename(name, m, flags, pstat, e) ** may be used as a default to the above rules. */ - if (rewrite(pvp, 4, e) == EX_TEMPFAIL) + if (rewrite(pvp, 4, 0, e) == EX_TEMPFAIL) *pstat = EX_TEMPFAIL; /* @@ -1719,7 +1757,13 @@ remotename(name, m, flags, pstat, e) cataddr(pvp, NULL, lbuf, sizeof lbuf, '\0'); define('g', lbuf, e); - expand(fancy, buf, &buf[sizeof buf - 1], e); + + /* need to make sure route-addrs have <angle brackets> */ + if (bitset(RF_CANONICAL, flags) && lbuf[0] == '@') + expand("<\201g>", buf, &buf[sizeof buf - 1], e); + else + expand(fancy, buf, &buf[sizeof buf - 1], e); + define('g', oldg, e); if (tTd(12, 1)) @@ -1753,11 +1797,11 @@ maplocaluser(a, sendq, e) printf("maplocaluser: "); printaddr(a, FALSE); } - pvp = prescan(a->q_user, '\0', pvpbuf, &delimptr); + pvp = prescan(a->q_user, '\0', pvpbuf, sizeof pvpbuf, &delimptr); if (pvp == NULL) return; - (void) rewrite(pvp, 5, e); + (void) rewrite(pvp, 5, 0, e); if (pvp[0] == NULL || (pvp[0][0] & 0377) != CANONNET) return; diff --git a/usr.sbin/sendmail/src/queue.c b/usr.sbin/sendmail/src/queue.c index 5c4a0277192..e2cad4cf51d 100644 --- a/usr.sbin/sendmail/src/queue.c +++ b/usr.sbin/sendmail/src/queue.c @@ -36,9 +36,9 @@ #ifndef lint #ifdef QUEUE -static char sccsid[] = "@(#)queue.c 8.27 (Berkeley) 10/29/93 (with queueing)"; +static char sccsid[] = "@(#)queue.c 8.36 (Berkeley) 1/9/94 (with queueing)"; #else -static char sccsid[] = "@(#)queue.c 8.27 (Berkeley) 10/29/93 (without queueing)"; +static char sccsid[] = "@(#)queue.c 8.36 (Berkeley) 1/9/94 (without queueing)"; #endif #endif /* not lint */ @@ -121,21 +121,21 @@ queueup(e, queueall, announce) break; #ifdef LOG if (LogLevel > 0 && (i % 32) == 0) - syslog(LOG_ALERT, "queueup: cannot create %s: %s", - tf, errstring(errno)); + syslog(LOG_ALERT, "queueup: cannot create %s, uid=%d: %s", + tf, geteuid(), errstring(errno)); #endif - continue; } - - if (lockfile(fd, tf, NULL, LOCK_EX|LOCK_NB)) - break; + else + { + if (lockfile(fd, tf, NULL, LOCK_EX|LOCK_NB)) + break; #ifdef LOG - else if (LogLevel > 0 && (i % 32) == 0) - syslog(LOG_ALERT, "queueup: cannot lock %s: %s", - tf, errstring(errno)); + else if (LogLevel > 0 && (i % 32) == 0) + syslog(LOG_ALERT, "queueup: cannot lock %s: %s", + tf, errstring(errno)); #endif - - close(fd); + close(fd); + } if ((i % 32) == 31) { @@ -146,7 +146,11 @@ queueup(e, queueall, announce) sleep(i % 32); } if (fd < 0 || (tfp = fdopen(fd, "w")) == NULL) - syserr("!queueup: cannot create queue temp file %s", tf); + { + printopenfds(TRUE); + syserr("!queueup: cannot create queue temp file %s, uid=%d", + tf, geteuid()); + } } if (tTd(40, 1)) @@ -176,8 +180,8 @@ queueup(e, queueall, announce) e->e_df = newstr(e->e_df); fd = open(e->e_df, O_WRONLY|O_CREAT, FileMode); if (fd < 0 || (dfp = fdopen(fd, "w")) == NULL) - syserr("!queueup: cannot create data temp file %s", - e->e_df); + syserr("!queueup: cannot create data temp file %s, uid=%d", + e->e_df, geteuid()); (*e->e_putbody)(dfp, FileMailer, e, NULL); (void) xfclose(dfp, "queueup dfp", e->e_id); e->e_putbody = putbody; @@ -272,7 +276,7 @@ queueup(e, queueall, announce) bzero((char *) &nullmailer, sizeof nullmailer); nullmailer.m_re_rwset = nullmailer.m_rh_rwset = - nullmailer.m_se_rwset = nullmailer.m_sh_rwset = 0; + nullmailer.m_se_rwset = nullmailer.m_sh_rwset = -1; nullmailer.m_eol = "\n"; define('g', "\201f", e); @@ -288,6 +292,14 @@ queueup(e, queueall, announce) if (bitset(H_RESENT, h->h_flags) && !bitset(EF_RESENT, e->e_flags)) continue; + /* expand macros; if null, don't output header at all */ + if (bitset(H_DEFAULT, h->h_flags)) + { + (void) expand(h->h_value, buf, &buf[sizeof buf], e); + if (buf[0] == '\0') + continue; + } + /* output this header */ fprintf(tfp, "H"); @@ -306,7 +318,6 @@ queueup(e, queueall, announce) /* output the header: expand macros, convert addresses */ if (bitset(H_DEFAULT, h->h_flags)) { - (void) expand(h->h_value, buf, &buf[sizeof buf], e); fprintf(tfp, "%s: %s\n", h->h_field, buf); } else if (bitset(H_FROM|H_RCPT, h->h_flags)) @@ -345,7 +356,8 @@ queueup(e, queueall, announce) /* rename (locked) tf to be (locked) qf */ qf = queuename(e, 'q'); if (rename(tf, qf) < 0) - syserr("cannot rename(%s, %s), df=%s", tf, qf, e->e_df); + syserr("cannot rename(%s, %s), df=%s, uid=%d", + tf, qf, e->e_df, geteuid()); /* close and unlock old (locked) qf */ if (e->e_lockfp != NULL) @@ -461,17 +473,18 @@ runqueue(forkflag) if (forkflag) { int pid; +#ifdef SIGCHLD + extern void reapchild(); + + (void) setsignal(SIGCHLD, reapchild); +#endif pid = dofork(); if (pid != 0) { - extern void reapchild(); - /* parent -- pick up intermediate zombie */ #ifndef SIGCHLD (void) waitfor(pid); -#else /* SIGCHLD */ - (void) setsignal(SIGCHLD, reapchild); #endif /* SIGCHLD */ if (QueueIntvl != 0) (void) setevent(QueueIntvl, runqueue, TRUE); @@ -850,6 +863,11 @@ dowork(id, forkflag, requeueflag, e) syserr("dowork: cannot fork"); return 0; } + else if (pid > 0) + { + /* parent -- clean out connection cache */ + mci_flush(FALSE, NULL); + } } else { @@ -888,7 +906,7 @@ dowork(id, forkflag, requeueflag, e) e->e_header = NULL; /* read the queue control file -- return if locked */ - if (!readqf(e, !requeueflag)) + if (!readqf(e)) { if (tTd(40, 4)) printf("readqf(%s) failed\n", e->e_id); @@ -921,8 +939,6 @@ dowork(id, forkflag, requeueflag, e) ** ** Parameters: ** e -- the envelope of the job to run. -** announcefile -- if set, announce the name of the queue -** file in error messages. ** ** Returns: ** TRUE if it successfully read the queue file. @@ -933,9 +949,8 @@ dowork(id, forkflag, requeueflag, e) */ bool -readqf(e, announcefile) +readqf(e) register ENVELOPE *e; - bool announcefile; { register FILE *qfp; ADDRESS *ctladdr; @@ -1031,9 +1046,8 @@ readqf(e, announcefile) /* do basic system initialization */ initsys(e); + define('i', e->e_id, e); - if (announcefile) - FileName = qf; LineNumber = 0; e->e_flags |= EF_GLOBALERRS; OpMode = MD_DELIVER; @@ -1121,8 +1135,8 @@ readqf(e, announcefile) break; default: - syserr("readqf: bad line \"%s\"", e->e_id, - LineNumber, bp); + syserr("readqf: %s: line %s: bad line \"%s\"", + qf, LineNumber, bp); fclose(qfp); rename(qf, queuename(e, 'Q')); return FALSE; @@ -1132,8 +1146,6 @@ readqf(e, announcefile) free(bp); } - FileName = NULL; - /* ** If we haven't read any lines, this queue file is empty. ** Arrange to remove it without referencing any null pointers. diff --git a/usr.sbin/sendmail/src/readcf.c b/usr.sbin/sendmail/src/readcf.c index eb52247aa1c..0d8d6fddf3a 100644 --- a/usr.sbin/sendmail/src/readcf.c +++ b/usr.sbin/sendmail/src/readcf.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)readcf.c 8.14 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)readcf.c 8.18 (Berkeley) 1/9/94"; #endif /* not lint */ # include "sendmail.h" @@ -109,7 +109,7 @@ readcf(cfname, safe, e) extern char **copyplist(); struct stat statb; char exbuf[MAXLINE]; - char pvpbuf[PSBUFSIZE]; + char pvpbuf[MAXLINE + MAXATOM]; extern char *munchstring(); extern void makemapentry(); @@ -241,7 +241,8 @@ readcf(cfname, safe, e) /* expand and save the LHS */ *p = '\0'; expand(&bp[1], exbuf, &exbuf[sizeof exbuf], e); - rwp->r_lhs = prescan(exbuf, '\t', pvpbuf, NULL); + rwp->r_lhs = prescan(exbuf, '\t', pvpbuf, + sizeof pvpbuf, NULL); nfuzzy = 0; if (rwp->r_lhs != NULL) { @@ -325,7 +326,8 @@ readcf(cfname, safe, e) p++; *p = '\0'; expand(q, exbuf, &exbuf[sizeof exbuf], e); - rwp->r_rhs = prescan(exbuf, '\t', pvpbuf, NULL); + rwp->r_rhs = prescan(exbuf, '\t', pvpbuf, + sizeof pvpbuf, NULL); if (rwp->r_rhs != NULL) { register char **ap; @@ -540,8 +542,10 @@ readcf(cfname, safe, e) { /* user didn't initialize: set up host map */ strcpy(buf, "host host"); +#ifdef NAMED_BIND if (ConfigLevel >= 2) strcat(buf, " -a."); +#endif makemapentry(buf); } } @@ -1020,6 +1024,7 @@ struct resolverflags "defnames", RES_DEFNAMES, "stayopen", RES_STAYOPEN, "dnsrch", RES_DNSRCH, + "true", 0, /* to avoid error on old syntax */ NULL, 0 }; @@ -1239,7 +1244,9 @@ setoption(opt, val, safe, sticky, e) if (strcasecmp(q, rfp->rf_name) == 0) break; } - if (clearmode) + if (rfp->rf_name == NULL) + syserr("readcf: I option value %s unrecognized", q); + else if (clearmode) _res.options &= ~rfp->rf_bits; else _res.options |= rfp->rf_bits; diff --git a/usr.sbin/sendmail/src/recipient.c b/usr.sbin/sendmail/src/recipient.c index e80c6b5fb9a..706fddc82c4 100644 --- a/usr.sbin/sendmail/src/recipient.c +++ b/usr.sbin/sendmail/src/recipient.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)recipient.c 8.21 (Berkeley) 10/29/93"; +static char sccsid[] = "@(#)recipient.c 8.39 (Berkeley) 1/10/94"; #endif /* not lint */ # include "sendmail.h" @@ -222,10 +222,25 @@ recipient(a, sendq, e) stripquotes(buf); /* check for direct mailing to restricted mailers */ - if (a->q_alias == NULL && m == ProgMailer) + if (m == ProgMailer) { - a->q_flags |= QBADADDR; - usrerr("550 Cannot mail directly to programs"); + if (a->q_alias == NULL) + { + a->q_flags |= QBADADDR; + usrerr("550 Cannot mail directly to programs"); + } + else if (bitset(QBOGUSSHELL, a->q_alias->q_flags)) + { + a->q_flags |= QBADADDR; + usrerr("550 User %s@%s doesn't have a valid shell for mailing to programs", + a->q_alias->q_ruser, MyHostName); + } + else if (bitset(QUNSAFEADDR, a->q_alias->q_flags)) + { + a->q_flags |= QBADADDR; + usrerr("550 Address %s is unsafe for mailing to programs", + a->q_alias->q_paddr); + } } /* @@ -252,6 +267,8 @@ recipient(a, sendq, e) message("duplicate suppressed"); q->q_flags |= a->q_flags; } + else if (bitset(QSELFREF, q->q_flags)) + q->q_flags |= a->q_flags & ~QDONTSEND; a = q; goto testselfdestruct; } @@ -294,6 +311,7 @@ recipient(a, sendq, e) e->e_id, a->q_user, errstring(ret)); #endif a->q_flags |= QQUEUEUP; + a->q_flags &= ~QDONTSEND; usrerr("451 Cannot open %s: %s", a->q_user, errstring(ret)); } @@ -307,18 +325,27 @@ recipient(a, sendq, e) } else if (m == FileMailer) { - struct stat stb; extern bool writable(); - p = strrchr(buf, '/'); /* check if writable or creatable */ if (a->q_alias == NULL) { a->q_flags |= QBADADDR; usrerr("550 Cannot mail directly to files"); } - else if ((stat(buf, &stb) >= 0) ? (!writable(&stb)) : - (*p = '\0', safefile(buf, RealUid, RealGid, NULL, TRUE, S_IWRITE|S_IEXEC) != 0)) + else if (bitset(QBOGUSSHELL, a->q_alias->q_flags)) + { + a->q_flags |= QBADADDR; + usrerr("550 User %s@%s doesn't have a valid shell for mailing to files", + a->q_alias->q_ruser, MyHostName); + } + else if (bitset(QUNSAFEADDR, a->q_alias->q_flags)) + { + a->q_flags |= QBADADDR; + usrerr("550 Address %s is unsafe for mailing to files", + a->q_alias->q_paddr); + } + else if (!writable(buf, getctladdr(a), SFF_ANYFILE)) { a->q_flags |= QBADADDR; giveresponse(EX_CANTCREAT, m, NULL, a->q_alias, e); @@ -340,7 +367,6 @@ recipient(a, sendq, e) if (!bitset(QDONTSEND|QNOTREMOTE|QVERIFIED, a->q_flags)) { extern int udbexpand(); - extern int errno; if (udbexpand(a, sendq, e) == EX_TEMPFAIL) { @@ -429,6 +455,11 @@ recipient(a, sendq, e) buildfname(pw->pw_gecos, pw->pw_name, nbuf); if (nbuf[0] != '\0') a->q_fullname = newstr(nbuf); + if (pw->pw_shell != NULL && pw->pw_shell[0] != '\0' && + !usershellok(pw->pw_shell)) + { + a->q_flags |= QBOGUSSHELL; + } if (!quoted) forward(a, sendq, e); } @@ -563,7 +594,9 @@ finduser(name, fuzzyp) ** not writable. This is also enforced by mailfile. ** ** Parameters: -** s -- pointer to a stat struct for the file. +** filename -- the file name to check. +** ctladdr -- the controlling address for this file. +** flags -- SFF_* flags to control the function. ** ** Returns: ** TRUE -- if we will be able to write this file. @@ -574,35 +607,98 @@ finduser(name, fuzzyp) */ bool -writable(s) - register struct stat *s; +writable(filename, ctladdr, flags) + char *filename; + ADDRESS *ctladdr; + int flags; { uid_t euid; gid_t egid; int bits; + register char *p; + char *uname; + struct stat stb; + extern char RealUserName[]; - if (bitset(0111, s->st_mode)) - return (FALSE); - euid = RealUid; - egid = RealGid; - if (geteuid() == 0) + if (tTd(29, 5)) + printf("writable(%s, %x)\n", filename, flags); + +#ifdef HASLSTAT + if ((bitset(SFF_NOSLINK, flags) ? lstat(filename, &stb) + : stat(filename, &stb)) < 0) +#else + if (stat(filename, &stb) < 0) +#endif { - if (bitset(S_ISUID, s->st_mode)) - euid = s->st_uid; - if (bitset(S_ISGID, s->st_mode)) - egid = s->st_gid; + /* file does not exist -- see if directory is safe */ + p = strrchr(filename, '/'); + if (p == NULL) + { + errno = ENOTDIR; + return FALSE; + } + *p = '\0'; + errno = safefile(filename, RealUid, RealGid, RealUserName, + SFF_MUSTOWN, S_IWRITE|S_IEXEC); + *p = '/'; + return errno == 0; } +#ifdef SUID_ROOT_FILES_OK + /* really ought to be passed down -- and not a good idea */ + flags |= SFF_ROOTOK; +#endif + + /* + ** File does exist -- check that it is writable. + */ + + if (bitset(0111, stb.st_mode)) + { + if (tTd(29, 5)) + printf("failed (mode %o: x bits)\n", stb.st_mode); + errno = EPERM; + return (FALSE); + } + + if (ctladdr != NULL && geteuid() == 0) + { + euid = ctladdr->q_uid; + egid = ctladdr->q_gid; + uname = ctladdr->q_user; + } + else + { + euid = RealUid; + egid = RealGid; + uname = RealUserName; + } if (euid == 0) - return (TRUE); - bits = S_IWRITE; - if (euid != s->st_uid) { - bits >>= 3; - if (egid != s->st_gid) - bits >>= 3; + euid = DefUid; + uname = DefUser; } - return ((s->st_mode & bits) != 0); + if (egid == 0) + egid = DefGid; + if (geteuid() == 0) + { + if (bitset(S_ISUID, stb.st_mode) && + (stb.st_uid != 0 || bitset(SFF_ROOTOK, flags))) + { + euid = stb.st_uid; + uname = NULL; + } + if (bitset(S_ISGID, stb.st_mode) && + (stb.st_gid != 0 || bitset(SFF_ROOTOK, flags))) + egid = stb.st_gid; + } + + if (tTd(29, 5)) + printf("\teu/gid=%d/%d, st_u/gid=%d/%d\n", + euid, egid, stb.st_uid, stb.st_gid); + + errno = safefile(filename, euid, egid, uname, flags, S_IWRITE); + return errno == 0; } /* ** INCLUDE -- handle :include: specification. @@ -628,6 +724,10 @@ writable(s) static jmp_buf CtxIncludeTimeout; static int includetimeout(); +#ifndef S_IWOTH +# define S_IWOTH (S_IWRITE >> 6) +#endif + int include(fname, forwarding, ctladdr, sendq, e) char *fname; @@ -647,6 +747,8 @@ include(fname, forwarding, ctladdr, sendq, e) gid_t savedgid, gid; char *uname; int rval = 0; + int sfflags = forwarding ? SFF_MUSTOWN : SFF_ANYFILE; + struct stat st; char buf[MAXLINE]; if (tTd(27, 2)) @@ -665,9 +767,9 @@ include(fname, forwarding, ctladdr, sendq, e) ca = getctladdr(ctladdr); if (ca == NULL) { - uid = 0; - gid = 0; - uname = NULL; + uid = DefUid; + gid = DefGid; + uname = DefUser; saveduid = -1; } else @@ -699,7 +801,6 @@ include(fname, forwarding, ctladdr, sendq, e) { ctladdr->q_flags |= QQUEUEUP; errno = 0; - usrerr("451 open timeout on %s", fname); /* return pseudo-error code */ rval = EOPENTIMEOUT; @@ -708,41 +809,24 @@ include(fname, forwarding, ctladdr, sendq, e) ev = setevent((time_t) 60, includetimeout, 0); /* the input file must be marked safe */ - rval = safefile(fname, uid, gid, uname, forwarding, S_IREAD); + rval = safefile(fname, uid, gid, uname, sfflags, S_IREAD); if (rval != 0) { /* don't use this :include: file */ - clrevent(ev); if (tTd(27, 4)) printf("include: not safe (uid=%d): %s\n", uid, errstring(rval)); - goto resetuid; } - - fp = fopen(fname, "r"); - if (fp == NULL) - { - rval = errno; - if (tTd(27, 4)) - printf("include: open: %s\n", errstring(rval)); - } - else if (ca == NULL) + else { - struct stat st; - - if (fstat(fileno(fp), &st) < 0) + fp = fopen(fname, "r"); + if (fp == NULL) { rval = errno; - syserr("Cannot fstat %s!", fname); - } - else - { - ctladdr->q_uid = st.st_uid; - ctladdr->q_gid = st.st_gid; - ctladdr->q_flags |= QGOODUID; + if (tTd(27, 4)) + printf("include: open: %s\n", errstring(rval)); } } - clrevent(ev); resetuid: @@ -761,9 +845,43 @@ resetuid: if (tTd(27, 9)) printf("include: reset uid = %d/%d\n", getuid(), geteuid()); + if (rval == EOPENTIMEOUT) + usrerr("451 open timeout on %s", fname); + if (fp == NULL) return rval; + if (fstat(fileno(fp), &st) < 0) + { + rval = errno; + syserr("Cannot fstat %s!", fname); + return rval; + } + + if (ca == NULL) + { + ctladdr->q_uid = st.st_uid; + ctladdr->q_gid = st.st_gid; + ctladdr->q_flags |= QGOODUID; + } + if (ca != NULL && ca->q_uid == st.st_uid) + { + /* optimization -- avoid getpwuid if we already have info */ + ctladdr->q_flags |= ca->q_flags & QBOGUSSHELL; + ctladdr->q_ruser = ca->q_ruser; + } + else + { + register struct passwd *pw; + + pw = getpwuid(st.st_uid); + if (pw == NULL || !usershellok(pw->pw_shell)) + { + ctladdr->q_ruser = newstr(pw->pw_name); + ctladdr->q_flags |= QBOGUSSHELL; + } + } + if (bitset(EF_VRFYONLY, e->e_flags)) { /* don't do any more now */ @@ -773,6 +891,19 @@ resetuid: return rval; } + /* + ** Check to see if some bad guy can write this file + ** + ** This should really do something clever with group + ** permissions; currently we just view world writable + ** as unsafe. Also, we don't check for writable + ** directories in the path. We've got to leave + ** something for the local sysad to do. + */ + + if (bitset(S_IWOTH, st.st_mode)) + ctladdr->q_flags |= QUNSAFEADDR; + /* read the file -- each line is a comma-separated list. */ FileName = fname; LineNumber = 0; diff --git a/usr.sbin/sendmail/src/savemail.c b/usr.sbin/sendmail/src/savemail.c index 99e33c58e7d..2d09594b3c7 100644 --- a/usr.sbin/sendmail/src/savemail.c +++ b/usr.sbin/sendmail/src/savemail.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)savemail.c 8.17 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)savemail.c 8.24 (Berkeley) 12/18/93"; #endif /* not lint */ # include "sendmail.h" @@ -69,6 +69,10 @@ static char sccsid[] = "@(#)savemail.c 8.17 (Berkeley) 10/31/93"; # define ESM_PANIC 6 /* leave the locked queue/transcript files */ # define ESM_DONE 7 /* the message is successfully delivered */ +# ifndef _PATH_VARTMP +# define _PATH_VARTMP "/usr/tmp/" +# endif + savemail(e) register ENVELOPE *e; @@ -82,6 +86,7 @@ savemail(e) register char *p; extern char *ttypath(); typedef int (*fnptr)(); + extern bool writable(); if (tTd(6, 1)) { @@ -374,8 +379,14 @@ savemail(e) break; } - fp = dfopen("/usr/tmp/dead.letter", - O_WRONLY|O_CREAT|O_APPEND, FileMode); + strcpy(buf, _PATH_VARTMP); + strcat(buf, "dead.letter"); + if (!writable(buf, NULLADDR, SFF_NOSLINK)) + { + state = ESM_PANIC; + break; + } + fp = dfopen(buf, O_WRONLY|O_CREAT|O_APPEND, FileMode); if (fp == NULL) { state = ESM_PANIC; @@ -399,8 +410,7 @@ savemail(e) case ESM_PANIC: /* leave the locked queue & transcript files around */ - syserr("554 savemail: cannot save rejected email anywhere"); - exit(EX_SOFTWARE); + syserr("!554 savemail: cannot save rejected email anywhere"); } } } @@ -466,6 +476,7 @@ returntosender(msg, returnq, sendbody, e) SendBody = sendbody; define('g', e->e_from.q_paddr, e); + define('u', NULL, e); ee = newenvelope(&errenvelope, e); define('a', "\201b", ee); define('r', "internal", ee); @@ -602,7 +613,8 @@ errbody(fp, m, e) for (q = e->e_parent->e_sendqueue; q != NULL; q = q->q_next) if (bitset(QBADADDR, q->q_flags)) break; - if (q == NULL && !bitset(EF_FATALERRS, e->e_parent->e_flags)) + if (q == NULL && + !bitset(EF_FATALERRS|EF_SENDRECEIPT, e->e_parent->e_flags)) { putline(" **********************************************", fp, m); diff --git a/usr.sbin/sendmail/src/sendmail.8 b/usr.sbin/sendmail/src/sendmail.8 index ee176f3c77a..ee0f700d83a 100644 --- a/usr.sbin/sendmail/src/sendmail.8 +++ b/usr.sbin/sendmail/src/sendmail.8 @@ -29,9 +29,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)sendmail.8 8.3 (Berkeley) 8/20/93 +.\" @(#)sendmail.8 8.4 (Berkeley) 12/11/93 .\" -.Dd August 20, 1993 +.Dd December 11, 1993 .Dt SENDMAIL 8 .Os BSD 4 .Sh NAME @@ -139,6 +139,7 @@ refuses to run as root if an alternate configuration file is specified. .It Fl d Ns Ar X Set debugging value to .Ar X . +.ne 1i .It Fl F Ns Ar fullname Set the full name of the sender. .It Fl f Ns Ar name diff --git a/usr.sbin/sendmail/src/sendmail.h b/usr.sbin/sendmail/src/sendmail.h index 558137777ea..e68ffe09889 100644 --- a/usr.sbin/sendmail/src/sendmail.h +++ b/usr.sbin/sendmail/src/sendmail.h @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)sendmail.h 8.26 (Berkeley) 10/31/93 + * @(#)sendmail.h 8.38 (Berkeley) 1/5/94 */ /* @@ -41,7 +41,7 @@ # ifdef _DEFINE # define EXTERN # ifndef lint -static char SmailSccsId[] = "@(#)sendmail.h 8.26 10/31/93"; +static char SmailSccsId[] = "@(#)sendmail.h 8.38 1/5/94"; # endif # else /* _DEFINE */ # define EXTERN extern @@ -57,7 +57,6 @@ static char SmailSccsId[] = "@(#)sendmail.h 8.26 10/31/93"; # include <string.h> # include <time.h> # include <errno.h> -# include <sys/un.h> # include "conf.h" # include "useful.h" @@ -69,6 +68,9 @@ static char SmailSccsId[] = "@(#)sendmail.h 8.26 10/31/93"; # ifdef DAEMON # include <sys/socket.h> # endif +# ifdef NETUNIX +# include <sys/un.h> +# endif # ifdef NETINET # include <netinet/in.h> # endif @@ -148,6 +150,8 @@ typedef struct address ADDRESS; # define QSELFREF 000200 /* this address references itself */ # define QVERIFIED 000400 /* verified, but not expanded */ # define QREPORT 001000 /* report this address in return message */ +# define QBOGUSSHELL 002000 /* this entry has an invalid shell listed */ +# define QUNSAFEADDR 004000 /* address aquired through an unsafe path */ # define NULLADDR ((ADDRESS *) NULL) /* @@ -287,9 +291,9 @@ ENVELOPE ADDRESS *e_sendqueue; /* list of message recipients */ ADDRESS *e_errorqueue; /* the queue for error responses */ long e_msgsize; /* size of the message in bytes */ + long e_flags; /* flags, see below */ int e_nrcpts; /* number of recipients */ short e_class; /* msg class (priority, junk, etc.) */ - short e_flags; /* flags, see below */ short e_hopcount; /* number of times processed */ short e_nsent; /* number of sends since checkpoint */ short e_sendmode; /* message send mode */ @@ -314,20 +318,21 @@ ENVELOPE }; /* values for e_flags */ -#define EF_OLDSTYLE 000001 /* use spaces (not commas) in hdrs */ -#define EF_INQUEUE 000002 /* this message is fully queued */ -#define EF_CLRQUEUE 000010 /* disk copy is no longer needed */ -#define EF_SENDRECEIPT 000020 /* send a return receipt */ -#define EF_FATALERRS 000040 /* fatal errors occured */ -#define EF_KEEPQUEUE 000100 /* keep queue files always */ -#define EF_RESPONSE 000200 /* this is an error or return receipt */ -#define EF_RESENT 000400 /* this message is being forwarded */ -#define EF_VRFYONLY 001000 /* verify only (don't expand aliases) */ -#define EF_WARNING 002000 /* warning message has been sent */ -#define EF_QUEUERUN 004000 /* this envelope is from queue */ -#define EF_GLOBALERRS 010000 /* treat errors as global */ -#define EF_PM_NOTIFY 020000 /* send return mail to postmaster */ -#define EF_METOO 040000 /* send to me too */ +#define EF_OLDSTYLE 0x0000001 /* use spaces (not commas) in hdrs */ +#define EF_INQUEUE 0x0000002 /* this message is fully queued */ +#define EF_CLRQUEUE 0x0000008 /* disk copy is no longer needed */ +#define EF_SENDRECEIPT 0x0000010 /* send a return receipt */ +#define EF_FATALERRS 0x0000020 /* fatal errors occured */ +#define EF_KEEPQUEUE 0x0000040 /* keep queue files always */ +#define EF_RESPONSE 0x0000080 /* this is an error or return receipt */ +#define EF_RESENT 0x0000100 /* this message is being forwarded */ +#define EF_VRFYONLY 0x0000200 /* verify only (don't expand aliases) */ +#define EF_WARNING 0x0000400 /* warning message has been sent */ +#define EF_QUEUERUN 0x0000800 /* this envelope is from queue */ +#define EF_GLOBALERRS 0x0001000 /* treat errors as global */ +#define EF_PM_NOTIFY 0x0002000 /* send return mail to postmaster */ +#define EF_METOO 0x0004000 /* send to me too */ +#define EF_LOGSENDER 0x0008000 /* need to log the sender */ EXTERN ENVELOPE *CurEnv; /* envelope currently being processed */ /* @@ -722,6 +727,17 @@ struct prival #define RF_COPYALL (RF_COPYPARSE|RF_COPYPADDR) #define RF_COPYNONE 0 + +/* +** Flags passed to safefile. +*/ + +#define SFF_ANYFILE 0 /* no special restrictions */ +#define SFF_MUSTOWN 0x0001 /* user must own this file */ +#define SFF_NOSLINK 0x0002 /* file cannot be a symbolic link */ +#define SFF_ROOTOK 0x0004 /* ok for root to own this file */ + + /* ** Regular UNIX sockaddrs are too small to handle ISO addresses, so ** we are forced to declare a supertype here. @@ -730,7 +746,9 @@ struct prival union bigsockaddr { struct sockaddr sa; /* general version */ +#ifdef NETUNIX struct sockaddr_un sunix; /* UNIX family */ +#endif #ifdef NETINET struct sockaddr_in sin; /* INET family */ #endif @@ -804,7 +822,7 @@ EXTERN bool SendMIMEErrors; /* send error messages in MIME format */ EXTERN bool MatchGecos; /* look for user names in gecos field */ EXTERN bool UseErrorsTo; /* use Errors-To: header (back compat) */ EXTERN bool TryNullMXList; /* if we are the best MX, try host directly */ -EXTERN bool CheckLoopBack; /* check for loopback on HELO packet */ +extern bool CheckLoopBack; /* check for loopback on HELO packet */ EXTERN bool InChild; /* true if running in an SMTP subprocess */ EXTERN char SpaceSub; /* substitution for <lwsp> */ EXTERN int PrivacyFlags; /* privacy flags */ @@ -825,13 +843,14 @@ EXTERN long MaxMessageSize; /* advertised max size we will accept */ EXTERN char *PostMasterCopy; /* address to get errs cc's */ EXTERN int CheckpointInterval; /* queue file checkpoint interval */ EXTERN bool DontPruneRoutes; /* don't prune source routes */ -EXTERN bool BrokenSmtpPeers; /* peers can't handle 2-line greeting */ +extern bool BrokenSmtpPeers; /* peers can't handle 2-line greeting */ EXTERN int MaxMciCache; /* maximum entries in MCI cache */ EXTERN time_t MciCacheTimeout; /* maximum idle time on connections */ EXTERN char *QueueLimitRecipient; /* limit queue runs to this recipient */ EXTERN char *QueueLimitSender; /* limit queue runs to this sender */ EXTERN char *QueueLimitId; /* limit queue runs to this id */ EXTERN FILE *TrafficLogFile; /* file in which to log all traffic */ +extern int errno; /* @@ -909,7 +928,8 @@ extern const char *errstring __P((int)); extern void expand __P((char *, char *, char *, ENVELOPE *)); extern void define __P((int, char *, ENVELOPE *)); extern char *macvalue __P((int, ENVELOPE *)); -extern char **prescan __P((char *, int, char[], char **)); +extern char **prescan __P((char *, int, char[], int, char **)); +extern int rewrite __P((char **, int, int, ENVELOPE *)); extern char *fgetfolded __P((char *, int, FILE *)); extern ADDRESS *recipient __P((ADDRESS *, ADDRESS **, ENVELOPE *)); extern ENVELOPE *newenvelope __P((ENVELOPE *, ENVELOPE *)); @@ -928,6 +948,8 @@ extern char *hostsignature __P((MAILER *, char *, ENVELOPE *)); extern void openxscript __P((ENVELOPE *)); extern void closexscript __P((ENVELOPE *)); extern sigfunc_t setsignal __P((int, sigfunc_t)); +extern char *shortenstring __P((char *, int)); +extern bool usershellok __P((char *)); /* ellipsis is a different case though */ #ifdef __STDC__ diff --git a/usr.sbin/sendmail/src/srvrsmtp.c b/usr.sbin/sendmail/src/srvrsmtp.c index 4474cd56d38..2966f80af6e 100644 --- a/usr.sbin/sendmail/src/srvrsmtp.c +++ b/usr.sbin/sendmail/src/srvrsmtp.c @@ -36,9 +36,9 @@ #ifndef lint #ifdef SMTP -static char sccsid[] = "@(#)srvrsmtp.c 8.18 (Berkeley) 10/28/93 (with SMTP)"; +static char sccsid[] = "@(#)srvrsmtp.c 8.23 (Berkeley) 12/21/93 (with SMTP)"; #else -static char sccsid[] = "@(#)srvrsmtp.c 8.18 (Berkeley) 10/28/93 (without SMTP)"; +static char sccsid[] = "@(#)srvrsmtp.c 8.23 (Berkeley) 12/21/93 (without SMTP)"; #endif #endif /* not lint */ @@ -114,6 +114,7 @@ static struct cmd CmdTab[] = }; bool OneXact = FALSE; /* one xaction only this run */ +char *CurSmtpClient; /* who's at the other end of channel */ static char *skipword(); @@ -147,7 +148,11 @@ smtp(e) } settime(e); CurHostName = RealHostName; - setproctitle("server %s startup", CurHostName); + CurSmtpClient = macvalue('_', e); + if (CurSmtpClient == NULL) + CurSmtpClient = RealHostName; + + setproctitle("server %s startup", CurSmtpClient); expand("\201e", inp, &inp[sizeof inp], e); if (BrokenSmtpPeers) { @@ -192,11 +197,11 @@ smtp(e) { /* end of file, just die */ message("421 %s Lost input channel from %s", - MyHostName, CurHostName); + MyHostName, CurSmtpClient); #ifdef LOG if (LogLevel > (gotmail ? 1 : 19)) syslog(LOG_NOTICE, "lost input channel from %s", - CurHostName); + CurSmtpClient); #endif if (InChild) ExitStat = EX_QUIT; @@ -211,9 +216,9 @@ smtp(e) fprintf(e->e_xfp, "<<< %s\n", inp); if (e->e_id == NULL) - setproctitle("%s: %s", CurHostName, inp); + setproctitle("%s: %.80s", CurSmtpClient, inp); else - setproctitle("%s %s: %s", e->e_id, CurHostName, inp); + setproctitle("%s %s: %.80s", e->e_id, CurSmtpClient, inp); /* break off command */ for (p = inp; isascii(*p) && isspace(*p); p++) @@ -262,16 +267,13 @@ smtp(e) auth_warning(e, "Host %s claimed to be %s", RealHostName, p); } - p = macvalue('_', e); - if (p == NULL) - p = RealHostName; gothello = TRUE; if (c->cmdcode != CMDEHLO) { /* print old message and be done with it */ message("250 %s Hello %s, pleased to meet you", - MyHostName, p); + MyHostName, CurSmtpClient); break; } @@ -332,7 +334,8 @@ smtp(e) define('s', sendinghost, e); initsys(e); nrcpts = 0; - setproctitle("%s %s: %s", e->e_id, CurHostName, inp); + e->e_flags |= EF_LOGSENDER; + setproctitle("%s %s: %.80s", e->e_id, CurSmtpClient, inp); /* child -- go do the processing */ p = skipword(p, "from"); @@ -626,7 +629,12 @@ smtp(e) if (vrfy) message("252 Who's to say?"); else - message("502 That's none of your business"); + message("502 Sorry, we do not allow this operation"); +#ifdef LOG + if (LogLevel > 5) + syslog(LOG_INFO, "%s: %s [rejected]", + CurSmtpClient, inp); +#endif break; } else if (!gothello && @@ -640,7 +648,7 @@ smtp(e) break; #ifdef LOG if (LogLevel > 5) - syslog(LOG_INFO, "%s: %s", CurHostName, inp); + syslog(LOG_INFO, "%s: %s", CurSmtpClient, inp); #endif vrfyqueue = NULL; QuickAbort = TRUE; @@ -942,6 +950,9 @@ runinchild(label, e) st = waitfor(childpid); if (st == -1) syserr("%s: lost child", label); + else if (!WIFEXITED(st)) + syserr("%s: died on signal %d", + label, st & 0177); /* if we exited on a QUIT command, complete the process */ if (st == (EX_QUIT << 8)) diff --git a/usr.sbin/sendmail/src/udb.c b/usr.sbin/sendmail/src/udb.c index f079b44bce3..46b9d658453 100644 --- a/usr.sbin/sendmail/src/udb.c +++ b/usr.sbin/sendmail/src/udb.c @@ -36,9 +36,9 @@ #ifndef lint #ifdef USERDB -static char sccsid [] = "@(#)udb.c 8.3 (Berkeley) 8/25/93 (with USERDB)"; +static char sccsid [] = "@(#)udb.c 8.4 (Berkeley) 11/25/93 (with USERDB)"; #else -static char sccsid [] = "@(#)udb.c 8.3 (Berkeley) 8/25/93 (without USERDB)"; +static char sccsid [] = "@(#)udb.c 8.4 (Berkeley) 11/25/93 (without USERDB)"; #endif #endif @@ -603,7 +603,7 @@ _udbx_init() up->udb_addr.sin_family = h->h_addrtype; bcopy(h->h_addr_list[0], (char *) &up->udb_addr.sin_addr, - h->h_length); + sizeof up->udb_addr.sin_addr); up->udb_addr.sin_port = UdbPort; up->udb_timeout = UdbTimeout; up++; diff --git a/usr.sbin/sendmail/src/usersmtp.c b/usr.sbin/sendmail/src/usersmtp.c index 18510e4b3d2..14b2f7fda72 100644 --- a/usr.sbin/sendmail/src/usersmtp.c +++ b/usr.sbin/sendmail/src/usersmtp.c @@ -36,9 +36,9 @@ #ifndef lint #ifdef SMTP -static char sccsid[] = "@(#)usersmtp.c 8.13 (Berkeley) 10/24/93 (with SMTP)"; +static char sccsid[] = "@(#)usersmtp.c 8.17 (Berkeley) 1/5/94 (with SMTP)"; #else -static char sccsid[] = "@(#)usersmtp.c 8.13 (Berkeley) 10/24/93 (without SMTP)"; +static char sccsid[] = "@(#)usersmtp.c 8.17 (Berkeley) 1/5/94 (without SMTP)"; #endif #endif /* not lint */ @@ -218,8 +218,13 @@ tryhelo: goto tempfail2; } - mci->mci_state = MCIS_OPEN; - return; + if (mci->mci_state != MCIS_CLOSED) + { + mci->mci_state = MCIS_OPEN; + return; + } + + /* got a 421 error code during startup */ tempfail1: tempfail2: @@ -317,6 +322,7 @@ smtpmailfrom(m, mci, e) ENVELOPE *e; { int r; + char *bufp; char buf[MAXNAME]; char optbuf[MAXLINE]; @@ -341,15 +347,25 @@ smtpmailfrom(m, mci, e) (void) strcpy(buf, ""); else expand("\201g", buf, &buf[sizeof buf - 1], e); + if (buf[0] == '<') + { + /* strip off <angle brackets> (put back on below) */ + bufp = &buf[strlen(buf) - 1]; + if (*bufp == '>') + *bufp = '\0'; + bufp = &buf[1]; + } + else + bufp = buf; if (e->e_from.q_mailer == LocalMailer || !bitnset(M_FROMPATH, m->m_flags)) { - smtpmessage("MAIL From:<%s>%s", m, mci, buf, optbuf); + smtpmessage("MAIL From:<%s>%s", m, mci, bufp, optbuf); } else { smtpmessage("MAIL From:<@%s%c%s>%s", m, mci, MyHostName, - buf[0] == '@' ? ',' : ':', buf, optbuf); + *bufp == '@' ? ',' : ':', bufp, optbuf); } SmtpPhase = mci->mci_phase = "client MAIL"; setproctitle("%s %s: %s", e->e_id, CurHostName, mci->mci_phase); @@ -594,7 +610,16 @@ smtpquit(m, mci, e) register MCI *mci; ENVELOPE *e; { - int i; + bool oldSuprErrs = SuprErrs; + + /* + ** Suppress errors here -- we may be processing a different + ** job when we do the quit connection, and we don't want the + ** new job to be penalized for something that isn't it's + ** problem. + */ + + SuprErrs = TRUE; /* send the quit message if we haven't gotten I/O error */ if (mci->mci_state != MCIS_ERROR) @@ -602,14 +627,18 @@ smtpquit(m, mci, e) SmtpPhase = "client QUIT"; smtpmessage("QUIT", m, mci); (void) reply(m, mci, e, TimeOuts.to_quit, NULL); + SuprErrs = oldSuprErrs; if (mci->mci_state == MCIS_CLOSED) + { + SuprErrs = oldSuprErrs; return; + } } /* now actually close the connection and pick up the zombie */ - i = endmailer(mci, e, m->m_argv); - if (i != EX_OK) - syserr("451 smtpquit %s: stat %d", m->m_argv[0], i); + (void) endmailer(mci, e, NULL); + + SuprErrs = oldSuprErrs; } /* ** SMTPRSET -- send a RSET (reset) command diff --git a/usr.sbin/sendmail/src/util.c b/usr.sbin/sendmail/src/util.c index f296513df3b..85e0f04dd34 100644 --- a/usr.sbin/sendmail/src/util.c +++ b/usr.sbin/sendmail/src/util.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)util.c 8.15 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)util.c 8.28 (Berkeley) 1/4/94"; #endif /* not lint */ # include "sendmail.h" @@ -407,7 +407,9 @@ buildfname(gecos, login, buf) ** gid -- group id to compare against. ** uname -- user name to compare against (used for group ** sets). -** mustown -- to be safe, this uid must own the file. +** flags -- modifiers: +** SFF_MUSTOWN -- "uid" must own this file. +** SFF_NOSLINK -- file cannot be a symbolic link. ** mode -- mode bits that must match. ** ** Returns: @@ -433,12 +435,12 @@ buildfname(gecos, login, buf) #endif int -safefile(fn, uid, gid, uname, mustown, mode) +safefile(fn, uid, gid, uname, flags, mode) char *fn; uid_t uid; gid_t gid; char *uname; - bool mustown; + int flags; int mode; { register char *p; @@ -446,8 +448,8 @@ safefile(fn, uid, gid, uname, mustown, mode) struct stat stbuf; if (tTd(54, 4)) - printf("safefile(%s, uid=%d, gid=%d, mustown=%d, mode=%o):\n", - fn, uid, gid, mustown, mode); + printf("safefile(%s, uid=%d, gid=%d, flags=%x, mode=%o):\n", + fn, uid, gid, flags, mode); errno = 0; for (p = fn; (p = strchr(++p, '/')) != NULL; *p = '/') @@ -455,6 +457,12 @@ safefile(fn, uid, gid, uname, mustown, mode) *p = '\0'; if (stat(fn, &stbuf) < 0) break; + if (uid == 0 && !bitset(SFF_ROOTOK, flags)) + { + if (bitset(S_IXOTH, stbuf.st_mode)) + continue; + break; + } if (stbuf.st_uid == uid && bitset(S_IXUSR, stbuf.st_mode)) continue; if (stbuf.st_gid == gid && bitset(S_IXGRP, stbuf.st_mode)) @@ -488,7 +496,12 @@ safefile(fn, uid, gid, uname, mustown, mode) return ret; } +#ifdef HASLSTAT + if ((bitset(SFF_NOSLINK, flags) ? lstat(fn, &stbuf) + : stat(fn, &stbuf)) < 0) +#else if (stat(fn, &stbuf) < 0) +#endif { int ret = errno; @@ -498,7 +511,17 @@ safefile(fn, uid, gid, uname, mustown, mode) errno = 0; return ret; } - if (uid == 0) + +#ifdef S_ISLNK + if (bitset(SFF_NOSLINK, flags) && S_ISLNK(stbuf.st_mode)) + { + if (tTd(54, 4)) + printf("\t[slink mode %o]\tEPERM\n", stbuf.st_mode); + return EPERM; + } +#endif + + if (uid == 0 && !bitset(SFF_ROOTOK, flags)) mode >>= 6; else if (stbuf.st_uid != uid) { @@ -525,7 +548,8 @@ safefile(fn, uid, gid, uname, mustown, mode) if (tTd(54, 4)) printf("\t[uid %d, stat %o, mode %o] ", stbuf.st_uid, stbuf.st_mode, mode); - if ((stbuf.st_uid == uid || uid == 0 || !mustown) && + if ((stbuf.st_uid == uid || stbuf.st_uid == 0 || + !bitset(SFF_MUSTOWN, flags)) && (stbuf.st_mode & mode) == mode) { if (tTd(54, 4)) @@ -836,12 +860,13 @@ sfgets(buf, siz, fp, timeout, during) /* try to read */ p = NULL; - while (p == NULL && !feof(fp) && !ferror(fp)) + while (!feof(fp) && !ferror(fp)) { errno = 0; p = fgets(buf, siz, fp); - if (errno == EINTR) - clearerr(fp); + if (p != NULL || errno != EINTR) + break; + clearerr(fp); } /* clear the event if it has not sprung */ @@ -1120,18 +1145,23 @@ strcontainedin(a, b) register char *a; register char *b; { - int l; - - l = strlen(a); - for (;;) + int la; + int lb; + int c; + + la = strlen(a); + lb = strlen(b); + c = *a; + if (isascii(c) && isupper(c)) + c = tolower(c); + for (; lb-- >= la; b++) { - b = strchr(b, a[0]); - if (b == NULL) - return FALSE; - if (strncmp(a, b, l) == 0) + if (*b != c && isascii(*b) && isupper(*b) && tolower(*b) != c) + continue; + if (strncasecmp(a, b, la) == 0) return TRUE; - b++; } + return FALSE; } /* ** CHECKFD012 -- check low numbered file descriptors @@ -1279,6 +1309,27 @@ dumpfd(fd, printclosed, logit) p += strlen(p); goto defprint; +#ifdef S_IFIFO + case S_IFIFO: + sprintf(p, "FIFO: "); + p += strlen(p); + goto defprint; +#endif + +#ifdef S_IFDIR + case S_IFDIR: + sprintf(p, "DIR: "); + p += strlen(p); + goto defprint; +#endif + +#ifdef S_IFLNK + case S_IFLNK: + sprintf(p, "LNK: "); + p += strlen(p); + goto defprint; +#endif + default: defprint: sprintf(p, "dev=%d/%d, ino=%d, nlink=%d, u/gid=%d/%d, size=%ld", @@ -1289,7 +1340,56 @@ defprint: printit: if (logit) - syslog(LOG_INFO, "%s", buf); + syslog(LOG_DEBUG, "%s", buf); else printf("%s\n", buf); } +/* +** SHORTENSTRING -- return short version of a string +** +** If the string is already short, just return it. If it is too +** long, return the head and tail of the string. +** +** Parameters: +** s -- the string to shorten. +** m -- the max length of the string. +** +** Returns: +** Either s or a short version of s. +*/ + +#ifndef MAXSHORTSTR +# define MAXSHORTSTR 203 +#endif + +char * +shortenstring(s, m) + register char *s; + int m; +{ + int l; + static char buf[MAXSHORTSTR + 1]; + + l = strlen(s); + if (l < m) + return s; + if (m > MAXSHORTSTR) + m = MAXSHORTSTR; + else if (m < 10) + { + if (m < 5) + { + strncpy(buf, s, m); + buf[m] = '\0'; + return buf; + } + strncpy(buf, s, m - 3); + strcpy(buf + m - 3, "..."); + return buf; + } + m = (m - 3) / 2; + strncpy(buf, s, m); + strcpy(buf + m, "..."); + strcpy(buf + m + 3, s + l - m); + return buf; +} diff --git a/usr.sbin/sendmail/src/version.c b/usr.sbin/sendmail/src/version.c index 77760efff39..3169f6ac937 100644 --- a/usr.sbin/sendmail/src/version.c +++ b/usr.sbin/sendmail/src/version.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)version.c 8.6.1.4 (Berkeley) 10/31/93"; +static char sccsid[] = "@(#)version.c 8.6.1.5 (Berkeley) 1/13/94"; #endif /* not lint */ -char Version[] = "8.6.4"; +char Version[] = "8.6.5"; |
