sendmail, 3rd Edition by Bryan Costales with Eric Allman This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated June 16, 2006. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification Confirmed errors: (6): No blank line between headers and body of the sample message, as stated in the text. (172) section 4.7 - second comment (#); the second example comment starts with a back-tic and should be a single quote. (the text just before says "use single qwuotes to insulate all such comments from M4 interpretation:") # `Here we define $m as our domain' should be: # 'Here we define $m as our domain' (176) line 13 of 4.8.4 FEATURE(allmasquerade): "(or worse, possibly as an address somewhere out on the Internet)" Please rephrase as: "(or worse, might show up as a user part with a host part from an arbitrary Internet site)" (194) line 5 of 4.8.30 FEATURE(no_default_msa): "The MTA, for example, when listening on port 587 will limit the amount of automatic canonicalization it does on unqualified addresses. This is good because that canonicalization is really the role of an MSA" The last sentence should read - This is good because that canonicalization is really the role of an MSA connecting to that port. (289)In the rule set in the middle of the page, insert a new rule set just above the one that begins with "R IPv6 : $+", Add R $-.$-.$-.$- $: $(badhosts $1.$2.$3 $) look up network [299] In the example ruleset for ScreenSubject; (page 299), section 7.3.1 In the example ruleset for ScreenSubject, the second rule reads: R REJECT $* $#error $: "553 Subject:" $2 ": Indicates virus, rejected" it should be: R REJECT $* $#error $: "553 Subject:" $1 ": Indicates virus, rejected" {348} paragraph following sendmail output The last few lines of the paragraph starting with - Rule Set ENvToSMTP (line 5) is called because.... Should be replaced with - Rule set EnvToSMTP (line 4) sees the special tag *LOCAL* and converts that tag to the canonical name of your local machine. Rule set final (line 5) removes focusing from the address, thus forming the final address in its canonical form. 411, just before 10.9.3.1 of first print: DAEMON_OPTIONS(`F=a') <- V8.10 and above should be: DAEMON_OPTIONS(`M=a') <- V8.10 and above {490} Alias Nonlocal Addresses; MODIFY_MAILER_FLAGS(`smtp', `+A') should be: MODIFY_MAILER_FLAGS(`SMTP', `+A') to match the case of the SMTP_MAILER_FLAGS option 558, line 10 of 15.5.3 EX_IOERR: EX_CONFIG Should be: EX_IOERR (631), line 3 from the bottom: DM16\[#megs] should be DM16\#megs (694), line 10 of 19.9.3 check_vrfy and check_expn: "it will respond with a 250, a DSN 2.1.1, the full name of the recipient" 'DSN 2.1.1' should be 'DSN 2.1.5' (706) 20.4.2: first paragraph; "Cyrus V1 IMAP server" should read "Cyrus V2 IMAP server" (732), line 4 from the bottom: 552 5.3.4 ... Message is too large; nbytes bytes max> 'max>' should be 'max' (739) figure 20-2 In the figure, swap "1" box with the "2" box, and swap the "S=" box with the "R=" box so that the "1" box and "S=" box are at the top, and so that the down arrow under "delivery agent" points to the "S=" box. 755 20.8.21 F=D H?D?Re-sent-Date: $a 'Re-sent' should be 'Resent' This appears also in 20.8.25 (F=F) on page 757 and 20.8.35 (F=M) on page 761 (772), line 8 from the bottom: -MXsurprise!me <- /! is special for the C shell should be: -MXsurprise\!me <- ! is special for the C shell (780), line 9: user -> becomes -> smtp@hub should be: user -> becomes -> smtp @ hub (801), 21.9.27 $d: Sun Dec 26 01:03:52 2003\n\ should be: Sun Dec 26 01:03:52 2003\n (950) 3rd paragraph of 24.9.7; The paragraph states that the AliasWait option is described in section 24.9.1. It is really in 24.9.2. (963), line 7 from the bottom: Nine keys are available. Should say: Eight keys are available. (966), first line of 24.9.24.7 "ReceiveSize" Should be: "ReceiveBufSize" (966), first line of 24.9.24.8 "SendSize" Should be: "SendBufSize" (985) first code block *[sendmail_release] should be: "8.12.10" (1051), line 3 in the line - STARTTLS=server, error: SSL_CTX_use_PrivateKey_file(path=) failed "path=" should be: "path" (1058) IN PRINT: Section 24.9.109, second paragraph, fifth line; "define(`conTO_keyword" SHOULD BE: "define(`confTO_keyword" (1095), line 10 from the bottom: If it is, this rule will return TRUE, or a $| and $2 in the workspace. Otherwise, it will return FALSE, or a $| and $2. should be: If it is, this rule will return TRUE, a $| and $2 in the workspace. Otherwise, it will return FALSE, a $| and $2. (1096), line 2: if the number of bytes is greater than 9999 should be: if the number of bytes is greater than 10000 (1101), bottom of the 25.6.16 H_STRIPCOMM Header Flag but is set based on the presence of the + with should be: but is set based on the absence of the + with (1103), line 8: The Return-Path: header is added only if it is not already present, and if should be: The Return-Path: header is removed if present, and is only added if (1112), 25.12.8 Content-Disposition: Change: Content-Disposition: paramater=value... Into: Content-Disposition: type; paramater=value; ... Also change: by one or more space Into: by a semicolon and one or more space (1116), 25.12.18 From: line 10: Here, address specifies destination mailboxes, should be: Here, address specifies senders' mailboxes, (1140), FEATURE(use_ct_file) /etc/mail/trusted-users> should be: /etc/mail/trusted-users (1163), line 10: Finally, note that V8.8 sendmail also offers a check_compat rule set should be Finally, note that V8.8 sendmail and above also offers a check_compat rule set (1166), line 5: The four most interesting are: should be: The five most interesting are: (1177) last 2 references; RFC2554 is the extension for "Authentication" not "Secure SMTP over TLS" It should read- SMTP Service Extension for Authentication RFC2487 is obsoleted by RFC3207 (listed earlier on same page) The last line on the page should read: P. Hoffman, January 1999, 8 pp. (replaced by RFC3207)