Programming Internet Email

Errata for Programming Internet Email

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed
Page 13
In the first paragraph, second line, the wrong word is used. It now

reads: "...connected but always..." Should read: "...connected and always..."

Anonymous   
Printed
Page 21

There is a spelling error in the 5th point from bottom. It now reads: "...formatted interace with..." Should read: "...formatted interface with..."

Anonymous   
Printed
Page 26

In paragraph 6, line 5, the wrong word is used. It now reads: "72 lines..." Should read: "72 characters..."

Anonymous   
Printed
Page 27
In paragraph 2, there is a confusing point in the discussion for

splitting lines: The first occurrance of the string is "naturally" wrapped at the same point that the second one is manually split. The following footnote should be added to this line: "Note that this line is wrapped by the page layout, but that the reader should consider it to be unbroken when reading the example."

Anonymous   
Printed
Page 28

The last sentence of paragraph 6 now reads: "If it is present, it should reflect the actual author of the message." It should read: "If it is present, it should reflect the person (or program) who actually sent the message on behalf of the author."

Anonymous   
Printed
Page 30

The last sentence of paragraph 4 now reads: "The real author is represented in the Sender header and the person or program that actually sent the message is represented in the From header." It should read: "The real author is represented in the From header and the person or program that actually sent the message is represented in the Sender header."

Anonymous   
Printed
Page 31
In the sample conversation, there is a line missing.

The SMTP DATA portion must be ended with a period (.) by itself on a line (followed by CRLF as line delimiter, of course), in the first column of the line. This line is not printed in the sample conversation. The correct way would be: the message. . << This '.' is currently missing. 250 (etc)

Anonymous   
Printed
Page 31
The message at the bottom of the page is missing the 'To' header field.

CORRECTION: Change the last sentence of paragraph 3 from: "Similarly, the To header gets written..." to: "The MTA knows the message recipient from the RCPT TO: line. This means that the message recipient is in the envelope, but there is no matching To: header in the message."

Anonymous   
Printed
Page 33
The example telnet session is missing linebreaks. Two linebreaks

should be inserted in the line beginning with 'Date:' after "+0400" and another linebreak after "action.", so that it looks like this: Date: Fri, 32 Feb 1492 09:53:43 +0400 Testing of the Date header from a user action. .

Anonymous   
Printed
Page 47
Code in middle of page

"plus paces" now reads "plus spaces" "values of 0-31..." now reads "values of 1-31"

Anonymous    Mar 01, 2000
Printed
Page 49
Paragraph 4

Paragraph 4 reads: "An octet is subtly different from a byte. An octet is 8 bits, where the earlier bits in the stream represent the most significance. This is called 'big-endian' and is the Internet standard order, called the 'network standard byte order'. A byte (8 bits), on the other hand, may be interpreted in one of two ways, big-endian or little-endian, and the manner of local interpretation is system dependent. Some computer systems use little-endian, where the earlier bits are interpreted as being the lower-order bits. Obviously, if you are on a little-endian system, encode a bit stream directly and send it to a big-endian system, the byte stream will not be correctly interpreted. Therefore, all bit streams must be converted to the network standard big-endian order (which yields an octet stream), prior to applying any type of MIME encoding." and should be changed to read: "An octet stream is subtly different from a bit stream. An octet is 8 bits, like an 8-bit byte. The earlier octets in the stream represent the most significance. This is called 'big-endian' and is the Internet standard order, called the 'network standard byte order'. An 8-bit byte stream, on the other hand, may be interpreted in one of two ways, big-endian or little-endian, and the manner of local interpretation is system dependent. Some computer systems use little-endian, where the earlier bytes are interpreted as being of lower-order. Obviously, if you are on a little- endian system, encode a bit stream directly and send it to a big-endian system, the stream will not be correctly interpreted. Therefore, all bit streams must be converted to the network standard big-endian order (which yields an octet stream), prior to applying any type of MIME encoding."

Anonymous   
Printed
Page 49

Paragraph 4 has been changed to read: An octet stream is subtly different from a bit stream. An octet is 8 bits, like an 8-bit byte. The earlier octets in the stream represent the most significance. This is called 'big-endian' and is the Internet standard order, called the 'network standard byte order'. An 8-bit byte stream, on the other hand, may be interpreted in one of two ways, big-endian or little-endian, and the manner of local interpretation is system dependent. Some computer systems use little-endian, where the earlier bytes are interpreted as being of lower-order. Obviously, if you are on a little- endian system, encode a bit stream directly and send it to a big-endian system, the stream will not be correctly interpreted. Therefore, all bit streams must be converted to the network standard big-endian order (which yields an octet stream), prior to applying any type of MIME encoding.

Anonymous    Mar 01, 2000
Printed
Page 49
Rule 4 now makes reference to Rule #2 instead of Rule #1.

Anonymous    Mar 01, 2000
Printed
Page 50
Removed the "=" from the code list.

Anonymous    Mar 01, 2000
Printed
Page 51
In the 2nd chunk of code, the lines now wrap as follows

"And it should be the law: If you use = the word 'paradigm' without knowing what the dictionary says it means,= you go to jail. No exceptions. =3D=3D> David Jones"

Anonymous    Mar 01, 2000
Printed
Page 52

First sentence on the page now reads: "An equals sign that is neither followed by two hexadecimal characters nor at the end of a line"... Added the following to the end of the 1st "base64" paragraph: "Base64 encoding is described in RFC 2045."

Anonymous    Mar 01, 2000
Printed
Page 53
base64 encoding table

Changed the number to the left of the letter 'm' to read '38'

Anonymous    Mar 01, 2000
Printed
Page 56,57
The bottom of page 56, top of page 57. The sample strings of

characters should be in constant-width font.

Anonymous   
Printed
Page 74
The last sentence of the second paragraph from the bottom of the page

should read: "S/MIME uses algorithms which are restricted to weak (40-bit) cryptography outside of the United States for the time being. This is due to export restrictions imposed by the United States government." A new paragraph should be added immediately after the above, which should read: "Both OpenPGP and S/MIME are affected by export restrictions on cryptographic products and algorithms. PGP's international version (by some, though not all, accounts started by an improper export) gives OpenPGP a head start on developing a system of more than 40-bit encryption across international borders."

Anonymous   
Printed
Page 79
Second paragraph from the bottom

The last two sentences have been changed to read: "It uses the application/x-pkcs7-signature protocol for digital signatures and either the SHA.1 or MD5 cryptographic algorithms for message integrity checks. The micalg parameter is therefore set to either 'sha1' or 'md5'."

Anonymous    Mar 01, 2000
Printed
Page 123
Inserted this sentence at the end of 2nd paragraph

"In this case, the MTA determined my user name via identd, the IDENT daemon. A discussion of identd is best left to its own documentation."

Anonymous    Mar 01, 2000
Printed
Page 125
Code block in middle, Line 4

Server: 050.... now reads: Server: 250....

Anonymous    Mar 01, 2000
Printed
Page 136

Changed the last 3 sentences of paragraph 2 to read: "A server typically responds by spawning a new thread or a copy of itself (a fork) to handle each new connection. These threads or copies are either destroyed or returned to a pool when a session completes. In this way, a server can handle many requests from a single application."

Anonymous    Mar 01, 2000
Printed
Page 137-138
Figures 10-1 and 10-2,

"POP tp TCP Port 110" now reads: "POP to TCP Port 110"

Anonymous    Mar 01, 2000
Printed
Page 142
In the last sample on the page

<pid.clock@hostname.domain now reads: <pid.clock@hostname.domain>

Anonymous    Mar 01, 2000
Printed
Page 143
Code in middle

First line now reads: Client: APOP mmouse c4c9334bac560ecc979e58001b3e22fb

Anonymous    Mar 01, 2000
Printed
Page 146
RETR example

Client: RETR now reads: Client: RETR 2

Anonymous    Mar 01, 2000
Printed
Page 150
Figure 10-3

Changed the result of the STAT from "+OK 1 320" to "+OK 1 340".

Anonymous    Mar 01, 2000
Printed
Page 153

Changed the last 3 sentences of paragraph 2 to read: "The server responds by either spawning a thread or forking a copy of itself to handle the new request. The session handler sends a banner greeting to the client and awaits further commands from the client. Each IMAP command is discussed in detail in this chapter."

Anonymous    Mar 01, 2000
Printed
Page 155
In the first line, "The Log out State" should be changed to "The Logout

State."

Anonymous   
Printed
Page 163
Some explanation of the "~" in the SUBSCRIBE example (7th line from

bottom of page) should be given, at least for the Win32 users. For example, you could insert a paragraph immediately following the SUBSCRIBE example which reads: "Note that the '~' character used in the mailbox name is used under Unix and Unix-like operating systems to refer to a user's home directory."

Anonymous   
Printed
Page 164
In the 2nd to last paragraph, change "A SUBSCRIBE command is then

use to mark" to "... is then used to mark..."

Anonymous   
Printed
Page 168
EXPUNGE example

Line 3 now reads: S: * 10 EXPUNGE

Anonymous    Mar 01, 2000
Printed
Page 169
In Table 11-8, the DELETED key has a surplus character: "DELETED>"

should be "DELETED".

Anonymous   
Printed
Page 172

In the IMAP FETCH example, the server tag returned should read "DF56", not "a127".

Anonymous   
Printed
Page 172

In the paragraph under the IMAP FETCH example, the phrase "It returned the date" should read "It returned the data".

Anonymous   
Printed
Page 173
The example for UID FETCH

Line 2 did read: Server: * 1 FETCH (FLAGS (Answered Seen)) now reads: Server: * 1 FETCH (FLAGS (Answered Seen) UID 90)

Anonymous    Mar 01, 2000
Printed
Page 176
Figure 11-2

Right side, near bottom; line did read: * 3 FETCH (BODY[TEXT] {60} now reads: * 3 FETCH (BODY[TEXT] {62}

Anonymous    Mar 01, 2000
Printed
Page 191
2nd line from bottom

did read: ...NOT EQUAL "Email"... now reads: ...NOT EQUAL "Contact.Email"...

Anonymous    Mar 01, 2000
Printed
Page 198
ACAP Sessions" second sentence.

"A client initiates an IMAP session..." now reads: "A client initiates an ACAP session..."

Anonymous    Mar 01, 2000
Printed
Page 201
1st line of code

did read: gzip -d [modulename].tar.gz tar xvf [modulename].tar now reads: gzip -d [modulename].tar.gz; tar xvf [modulename].tar

Anonymous    Mar 01, 2000
Printed
Page 201
3rd line of code

did read: perl Makefile.PL make make test make install now reads: perl Makefile.PL ; make ; make test ; make install

Anonymous    Mar 01, 2000
Printed
Page 202
In the second line under the heading "Reading an Entry," change "fllow"

to "follow."

Anonymous   
Printed
Page 277
Line 10 from bottom

did read: if ($attachment_list) >0){ now reads: if (($attachment_list) >0){

Anonymous    Mar 01, 2000
Printed
Page 280
In the code, the comment "# Create the encoded content string, starting

with the # newly-created MIME header" should either be in two lines (the second line starting "# newly-created..." or one line without the second '#'.

Anonymous   
Printed
Page 281
Line 9 from bottom

did read: $encode_table[(((vec($decoded_attachment... now reads: $encode_table[((vec($decoded_attachment... (removed one "(")

Anonymous    Mar 01, 2000
Printed
Page 287
In the code, "#fflush socket..." should read "# flush socket...".

Anonymous   
Printed
Page 289
In the third line under "Sending MIMEi Email via Java," change

"shorted" to "shorter."

Anonymous   
Printed
Page 298
First paragraph, 3rd sentence

"The getpts line in..." now reads: "The getopts line in..."

Anonymous    Mar 01, 2000
Printed
Page 298
3rd line from bottom

did read: Synopsis: $0 [-u] [-l <length>] [-f <file> now reads: Synopsis: $0 [-u] [-a] [-d] [-l <length>] [-f <file>]"

Anonymous    Mar 01, 2000
Printed
Page 306
Middle of page

Line did read: print NEWBOX $pline, " ";; now reads: print NEWBOX $pline, " ";

Anonymous    Mar 01, 2000
Printed
Page 325
In the first line of the 2nd full paragraph, change "it is makes" to

"makes."

Anonymous   
Printed
Page 325
In the 4th line of the 5th full paragraph, change "did notlist" to "did

not list."

Anonymous   
Printed
Page 330
Paragraph 4

Paragraph 4, sentance 4 should read, "This approach seemed to have promise, but has not worked out as well as some have hoped. This is due primarily to the fact that the RBL is based upon IP addresses, blocking the orginating mail server (often an Internet Service Provider). According to the RBL rules for inclusion, only those ISPs who operate an open mail relay will be blacklisted. Unfortunately, this includes both those supporting spam and those who are incapable or unwilling to restrict mail relaying via their servers. The RBL thus both reduces spam and generates much abuse from many of those banned. The remainder of the orginal paragraph should be deleted.

Anonymous   
Printed
Page 330

4th paragraph, 4th sentence now reads: This approach seemed to have promise, but has not worked out as well as some have hoped. This is due primarily to the fact that the RBL is based upon IP addresses, blocking the orginating mail server (often an Internet Service Provider). According to the RBL rules for inclusion, only those ISPs who operate an open mail relay will be blacklisted. Unfortunately, this includes both those supporting spam and those who are incapable or unwilling to restrict mail relaying via their servers. The RBL thus both reduces spam and generates much abuse from many of those banned. The remainder of the orginal paragraph was deleted.

Anonymous    Mar 01, 2000
Printed
Page 341
RFCs 2425/2426 are listed in reverse order.

Anonymous   
Printed
Page 348

Second column, eighth entry should be changed to include line breaks between the ten MIME types listed there.

Anonymous   
Printed
Page 348
8th entry in list

Added line breaks between the 10 MIME types listed.

Anonymous    Mar 01, 2000
Printed
Page 352
Added the following entry to the table

Site URL Description ----------------------------------------------------------- ACAP Home Page http://asg.web.cmu.edu/acap/ Information on and Implementations of the ACAP protocol.

Anonymous    Mar 01, 2000
Printed
Page 354
In the entry for MTA, change "deliverying" to "delivering."

Anonymous