home
|
O'Reilly's CD bookshelfs
|
FreeBSD
|
Linux
|
Cisco
|
Cisco Exam
•
Table of Contents
•
Index
•
Reviews
•
Reader Reviews
•
Errata
sendmail, 3rd Edition
By
Bryan Costales
Publisher
: O'Reilly
Pub Date
: December 2002
ISBN
: 1-56592-839-3
Pages
: 1232
Copyright
Dedication
Preface
Changes Since the Previous Edition
Why This Book Is Necessary
History
Eric Allman Speaks
Organization
Audience and Assumptions
Unix and sendmail Versions
Conventions Used in This Handbook
Additional Sources of Information
Other Books, Other Problems
How to Contact Us
Acknowledgments
Chapter 1. Some Basics
Section 1.1. Email Basics
Section 1.2. Requests for Comments (RFCs)
Section 1.3. Email and sendmail
Section 1.4. Basic Parts of sendmail
Section 1.5. Basic Parts of a Mail Message
Section 1.6. Basic Roles of sendmail
Section 1.7. Basic Modes of sendmail
Section 1.8. The sendmail.cf File
Part I: Build and Install
Chapter 2. Build and Install sendmail
Section 2.1. Vendor Versus Compiling
Section 2.2. Obtain the Source
Section 2.3. The Build Script
Section 2.4. Building with m4
Section 2.5. Build sendmail
Section 2.6. Install sendmail
Section 2.7. Pitfalls
Section 2.8. Build m4 Macro Reference
APPENDDEF( )
confBEFORE
confBLDVARIANT
confBUILDBIN
confCC
confCCOPTS
confCCOPTS_SO
confCOPY
confDEPEND_TYPE
confDEPLIBS
confDONT_INSTALL_CATMAN
confEBINDIR
confENVDEF and conf_prog_ENVDEF
confFORCE_RMAIL
confGBIN...
confHFDIR
confHFFILE
confINCDIRS
confINC...
confINSTALL
confINSTALL_RAWMAN
confLD
confLDOPTS
confLDOPTS_SO
confLIB...
confLIBDIRS
confLIBS and conf_prog_LIBS
confLIBSEARCH
confLIBSEARCHPATH
confLN
confLNOPTS
confLINKS
confMAN...
confMAPDEF
confMBIN...
confMSPQOWN
confMSP_QUEUE_DIR
confMTCCOPTS
confMTLDOPTS
confNO_HELPFILE_INSTALL
confNO_MAN_BUILD
confNO_MAN_INSTALL
confNO_STATISTICS_INSTALL
confOBJADD
confOPTIMIZE
confRANLIB
confRANLIBOPTS
confREQUIRE_LIBSM
confSBINDIR
confSBINGRP
confSBINMODE
confSBINOWN
confSHAREDLIB...
confSHELL
confSM_OS_HEADER
confSMOBJADD
confSMSRCADD
confSONAME
conf_prog_OBJADD
conf_prog_SRCADD
confSRCDIR
confSTDIOTYPE
confSTDIR
confSTFILE
confSTRIP
confSTRIPOPTS
confUBINDIR
confUBINGRP
confUBINMODE
confUBINOWN
PREPENDDEF( )
Chapter 3. Tune sendmail with Compile-Time Macros
Section 3.1. Before You Begin, a Checklist
Section 3.2. To Port, Tune, or Debug
Section 3.3. Pitfalls
Section 3.4. Compile-Time Macro Reference
AUTO_NIS_ALIASES
BSD4_3
BSD4_4
DATA_PROGRESS_TIMEOUT
DNSMAP
DSN
EGD
ERRLIST_PREDEFINED
FAST_PID_RECYCLE
_FFR...
FORK
HAS...
HESIOD
HES_GETMAILHOST
IDENTPROTO
IP_SRCROUTE
...IS_BROKEN
LA_TYPE
LDAPMAP
LOG
MATCHGECOS
MAX...
MEMCHUNKSIZE
MILTER
MIME7TO8
MIME8TO7
NAMED_BIND
MAP_NSD
MAP_REGEX
NDBM
NEED...
NET...
NETINFO
NEWDB
NIS
NISPLUS
NOFTRUNCATE
NO_GROUP_SET
NOTUNIX
_PATH...
PH_MAP
PICKY_HELO_CHECK
PIPELINING
PSBUFSIZ
QUEUE
QUEUESEGSIZE
REQUIRES_DIR_FSYNC
SASL
SCANF
SECUREWARE
SFS_TYPE
SHARE_V1
SM_...
SM_HEAP_CHECK
SM_CONF_SHM
SMTP
SMTPDEBUG
SMTPLINELIM
SPT_TYPE
STARTTLS
SUID_ROOT_FILES_OK
SYSLOG_BUFSIZE
SYSTEM5
TCPWRAPPERS
TLS_NO_RSA
TOBUFSIZE
TTYNAME
...T
UDB_DEFAULT_SPEC
USE_DOUBLE_FORK
USE_ENVIRON
USING_NETSCAPE_LDAP
USERDB
USESETEUID
WILDCARD_SHELL
XDEBUG
Chapter 4. Configure sendmail.cf with m4
Section 4.1. The m4 Preprocessor
Section 4.2. Configure with m4
Section 4.3. m4 Macros by Function
Section 4.4. Masquerading
Section 4.5. Relays
Section 4.6. UUCP Support
Section 4.7. Pitfalls
Section 4.8. Configuration File Feature Reference
FEATURE(accept_unqualified_senders)
FEATURE(accept_unresolvable_domains)
FEATURE(access_db)
FEATURE(allmasquerade)
FEATURE(always_add_domain)
FEATURE(authinfo)
FEATURE(bestmx_is_local)
FEATURE(bitdomain)
FEATURE(blacklist_recipients)
FEATURE(compat_check)
FEATURE(delay_checks)
FEATURE(dnsbl)
FEATURE(domaintable)
FEATURE(enhdnsbl)
FEATURE(generics_entire_domain)
FEATURE(genericstable)
FEATURE(ldap_routing)
FEATURE(limited_masquerade)
FEATURE(local_lmtp)
FEATURE(local_no_masquerade)
FEATURE(local_procmail)
FEATURE(lookupdotdomain)
FEATURE(loose_relay_check)
FEATURE(mailertable)
FEATURE(masquerade_entire_domain)
FEATURE(masquerade_envelope)
FEATURE(msp)
FEATURE(nocanonify)
FEATURE(nodns)
FEATURE(no_default_msa)
FEATURE(notsticky)
FEATURE(nouucp)
FEATURE(nullclient)
FEATURE(promiscuous_relay)
FEATURE(preserve_local_plus_detail)
FEATURE(preserve_luser_host)
FEATURE(queuegroup)
FEATURE(rbl)
FEATURE(redirect)
FEATURE(relay_based_on_MX)
FEATURE(relay_entire_domain)
FEATURE(relay_hosts_only)
FEATURE(relay_local_from)
FEATURE(relay_mail_from)
FEATURE(smrsh)
FEATURE(stickyhost)
FEATURE(use_ct_file)
FEATURE(use_cw_file)
FEATURE(uucpdomain)
FEATURE(virtuser_entire_domain)
FEATURE(virtusertable)
Chapter 5. Build and Use Companion Programs
Section 5.1. The Build Script
-A
-c
-E
-f
-I
-L
-M
-m
-n
-O
-Q
-S
-v
Section 5.2. The editmap Program
-C
-f
-N
-q
-u
-x
Section 5.3. The mail.local Delivery Agent
-7
-b
-d
-D
-f
-h
-l (lowercase L)
-r
Section 5.4. The mailstats Program
-c
-C
-f
-o
-p
-P
Section 5.5. The makemap Program
-c
-C
-d
-e
-f
-l (lowercase L)
-N
-o
-r
-s
-t
-u
-v
Section 5.6. The praliases Program
-C
-f
Section 5.7. The rmail Delivery Agent
Section 5.8. The smrsh Program
Section 5.9. The vacation Program
-a
-C
-d
-f
-i or -I
-l (lowercase L)
-m
-r
-s
-t
-U
-x
-z
Section 5.10. Pitfalls
Part II: Administration
Chapter 6. Tune Performance
Section 6.1. Handle Deep Queues
Section 6.2. Sidestep Slow Hosts
Section 6.3. Deliver to Files
Section 6.4. Buffered File I/O
Section 6.5. Use Multiple Queues
Section 6.6. Condition the Network
Section 6.7. Tune the Kernel
Section 6.8. Pitfalls
Chapter 7. How to Handle spam
Section 7.1. The Local_check_ Rule Sets
Section 7.2. How DNSBL Works
Section 7.3. Check Headers with Rule Sets
Section 7.4. Relaying
Section 7.5. The access Database
Section 7.6. The Milter Library
Section 7.7. Pitfalls
Chapter 8. Test Rule Sets with -bt
Section 8.1. Overview
Section 8.2. Configuration Lines
Section 8.3. Dump a sendmail Macro or Class
Section 8.4. Show an Item
Section 8.5. Complex Actions Made Simple
Section 8.6. Process-Specified Addresses
Section 8.7. Add Debugging for Detail
Section 8.8. Batch Rule-Set Testing
Section 8.9. Pitfalls
Chapter 9. DNS and sendmail
Section 9.1. Overview
Section 9.2. How sendmail Uses DNS
Section 9.3. Set Up MX Records
Section 9.4. How to Use nslookup
Section 9.5. Prepare for Disaster
Section 9.6. Pitfalls
Chapter 10. Maintain Security with sendmail
Section 10.1. Why root?
Section 10.2. The Environment
Section 10.3. SMTP Probes
Section 10.4. The Configuration File
Section 10.5. Permissions
Section 10.6. The Aliases File
Section 10.7. Forged Mail
Section 10.8. Security Features
Section 10.9. Support SMTP AUTH
Section 10.10. STARTTLS
Section 10.11. Other Security Information
Section 10.12. Pitfalls
Chapter 11. Manage the Queue
Section 11.1. Overview of the Queue
Section 11.2. Parts of a Queued Message
Section 11.3. Using Multiple Queue Directories
Section 11.4. Queue Groups (V8.12 and Above)
Section 11.5. Bogus qf Files
Section 11.6. Printing the Queue
Section 11.7. How the Queue Is Processed
Section 11.8. Cause Queues to Be Processed
Section 11.9. Process Alternate Queues
Section 11.10. Pitfalls
Section 11.11. The qf File Internals
A line
B line
C line
d line
D line
E line
F line
H line
I line
K line
M line
N line
P line
Q line
r line
R line
S line
T line
V line
Z line
! line
$ line
. line
Chapter 12. Maintain Aliases
Section 12.1. The aliases(5) File
Section 12.2. Forms of Alias Delivery
Section 12.3. Write a Delivery Agent Script
Section 12.4. Special Aliases
Section 12.5. The Aliases Database
Section 12.6. Prevent Aliasing with -n
Section 12.7. Pitfalls
Chapter 13. Mailing Lists and ~/.forward
Section 13.1. Internal Mailing Lists
Section 13.2. :include: Mailing Lists
Section 13.3. Defining a Mailing List Owner
Section 13.4. Exploder Mailing Lists
Section 13.5. Problems with Mailing Lists
Section 13.6. Packages That Help
Section 13.7. The User's ~/.forward File
Section 13.8. Pitfalls
Chapter 14. Signals, Transactions, and Syslog
Section 14.1. Signal the Daemon
SIGTERM
SIGINT
SIGKILL
SIGHUP
SIGUSR1
Section 14.2. Log Transactions with -X
Section 14.3. Log with syslog
Section 14.4. Pitfalls
Section 14.5. Alphabetized syslog Equates
arg1=
bodytype=
class=
ctladdr=
daemon=
delay=
dsn=
from=
intvl=
len=
mailer=
msgid=
nrcpts=
ntries=
pri=
proto=
reject=
relay=
ruleset=
size=
stat=
to=
xdelay=
Chapter 15. The sendmail Command Line
Section 15.1. Alternative argv[0] Names
Section 15.2. Command-Line Switches
Section 15.3. List of Recipient Addresses
Section 15.4. Processing the Command Line
Section 15.5. sendmail's exit( ) Status
EX_CANTCREAT
EX_CONFIG
EX_IOERR
EX_OK
EX_OSERR
EX_OSFILE
EX_SOFTWARE
EX_TEMPFAIL
EX_UNAVAILABLE
EX_USAGE
Section 15.6. Pitfalls
Section 15.7. Alphabetized Command-Line Switches
-A
-B
-b
-ba
-bD
-bd
-bH
-bh
-bi
-bm
-bP
-bp
-bs
-bt
-bv
-bz
-C
-c
-d
-E
-e
-F
-f
-G
-h
-I
-i
-J
-L
-M
-m
-N
-n
-O
-o
-p
-q
-R
-r
-s
-T
-t
-U
-V
-v
-X
-x
Chapter 16. Debug sendmail with -d
Section 16.1. The Syntax of -d
Section 16.2. The Behavior of -d
Section 16.3. Interpret the Output
Section 16.4. Table of All -d Categories
Section 16.5. Pitfalls
Section 16.6. Reference for -d in Numerical Order
-d0.1
-d0.4
-d0.10
-d0.12
-d0.13
-d0.15
-d0.20
-d2.1
-d2.9
-d4.80
-d6.1
-d8.1
-d8.2
-d8.3
-d8.5
-d8.7
-d8.8
-d11.1
-d11.2
-d12.1
-d13.1
-d20.1
-d21.1
-d21.2
-d22.1
-d22.11
-d22.12
-d25.1
-d26.1
-d27.1
-d27.2
-d27.3
-d27.4
-d27.5
-d27.8
-d27.9
-d28.1
-d29.1
-d29.4
-d31.2
-d34.1
-d34.11
-d35.9
-d37.1
-d37.8
-d38.2
-d38.3
-d38.4
-d38.9
-d38.10
-d38.12
-d38.19
-d38.20
-d41.1
-d44.4
-d44.5
-d48.2
-d49.1
-d52.1
-d52.100
-d60.1
-d99.100
Part III: The Configuration File
Chapter 17. Configuration File Overview
Section 17.1. Overall Syntax
Section 17.2. Comments
Section 17.3. V8 Comments
Section 17.4. Continuation Lines
Section 17.5. The V Configuration Command
Section 17.6. Pitfalls
Chapter 18. The R (Rules) Configuration Command
Section 18.1. Why Rules?
Section 18.2. The R Configuration Command
Section 18.3. Tokenizing Rules
Section 18.4. The Workspace
Section 18.5. The Behavior of a Rule
Section 18.6. The LHS
Section 18.7. The RHS
Section 18.8. Pitfalls
Section 18.9. Rule Operator Reference
$&
$@
$@
$@
$@
$@
$:
$:
$:
$:
$digit
$=
$>
$[ $]
$( $)
$-
$+
$#
$#
$#
$*
$~
$|
Chapter 19. The S (Rule Sets) Configuration Command
Section 19.1. The S Configuration Command
Section 19.2. The Sequence of Rule Sets
Section 19.3. The canonify Rule Set 3
Section 19.4. The final Rule Set 4
Section 19.5. The parse Rule Set 0
Section 19.6. The localaddr Rule Set 5
Section 19.7. Rule Sets 1 and 2
Section 19.8. Pitfalls
Section 19.9. Policy Rule-Set Reference
check_data
check_etrn
check_vrfy and check_expn
srv_features
Chapter 20. The M (Mail Delivery Agent) Configuration Command
Section 20.1. The M Configuration Command
Section 20.2. The Symbolic Delivery Agent Name
Section 20.3. The mc Configuration Syntax
Section 20.4. Delivery Agents by Name
cyrus
cyrusv2
discard
error
fax
*file* and *include*
local and prog
mail11
ph
pop
procmail
qpage
smtp, etc.
usenet
uucp
Section 20.5. Delivery Agent Equates
/= (forward slash)
A=
C=
D=
E=
F=
L=
M=
m=
N=
P=
Q=
R=
r=
S=
T=
U=
W=
Section 20.6. How a Delivery Agent Is Executed
Section 20.7. Pitfalls
Section 20.8. Delivery Agent F= Flags
F=%
F=0 (zero)
F=1 (one)
F=2
F=3
F=5
F=6
F=7
F=8
F=9
F=: (colon)
F=| (vertical bar)
F=/ (forward slash)
F=@
F=a
F=A
F=b
F=c
F=C
F=d
F=D
F=e
F=E
F=f
F=F
F=g
F=h
F=i
F=I (uppercase i)
F=j
F=k
F=l (lowercase L)
F=L
F=m
F=M
F=n
F=o
F=p
F=P
F=q
F=r
F=R
F=s
F=S
F=u
F=U
F=w
F=x
F=X
F=z
F=Z
Chapter 21. The D (Define a Macro) Configuration Command
Section 21.1. Preassigned sendmail Macros
Section 21.2. Command-Line Definitions
Section 21.3. Configuration-File Definitions
Section 21.4. Macro Names
Section 21.5. Macro Expansion: $ and $&
Section 21.6. Macro Conditionals: $?, $|, and $.
Section 21.7. Macros with mc Configuration
Section 21.8. Pitfalls
Section 21.9. Alphabetized sendmail Macros
$_
$a
${addr_type}
${alg_bits}
${auth_authen}
${auth_author}
${auth_ssf}
${auth_type}
$b
${bodytype}
$B
$c
${cert_issuer}
${cert_md5}
${cert_subject}
${cipher}
${cipher_bits}
${client_addr}
${client_flags}
${client_name}
${client_port}
${client_resolve}
${cn_issuer}
${cn_subject}
${currHeader}
$C
$d
${daemon_addr}
${daemon_family}
${daemon_flags}
${daemon_info}
${daemon_name}
${daemon_port}
${deliveryMode}
${dsn_envid}
${dsn_notify}
${dsn_ret}
$D
$e
${envid}
$E
$f
$F
$g
$h
${hdr_name}
${hdrlen}
$H
$i
${if_addr}
${if_addr_out}
${if_family}
${if_family_out}
${if_name}
${if_name_out}
$j
$k
$l (lowercase L)
${load_avg}
$L
$m
${mail_addr}
${mail_host}
${mail_mailer}
${msg_size}
$M
${MTAHost}
$n
${nrcpts}
${ntries}
$o
${opMode}
$p
$q
${queue_interval}
$r
${rcpt_addr}
${rcpt_host}
${rcpt_mailer}
$R
$s
${sendmailMTACluster}
${server_addr}
${server_name}
$S
$t
${tls_version}
$u
$U
$v
${verify}
$V
$w
$W
$x
$X
$y
$Y
$z
$Z
Chapter 22. The C and F (Class Macro) Configuration Commands
Section 22.1. Class Configuration Commands
Section 22.2. Access Classes in Rules
Section 22.3. Classes with mc Configuration
Section 22.4. Internal Class Macros
Section 22.5. Pitfalls
Section 22.6. Alphabetized Class Macros
$=b
$={checkMIMEFieldHeaders}
$={checkMIMEHeaders}
$={checkMIMETextHeaders}
$=e
$=k
$=m
$=n
$={persistentMacros}
$=q
$={ResOk}
$=R
$={tls}
$=s
$=t
$=w
Chapter 23. The K (Database-Map) Configuration Command
Section 23.1. Enable at Compile Time
Section 23.2. The K Configuration Command
Section 23.3. The K Command switches
-A
-a
-D
-f
-k
-l (lowercase L)
-m
-N
-O
-o
-q
-S
-T
-t
-v
-z
Section 23.4. Use $( and $) in Rules
Section 23.5. Database Maps with mc Configuration
Section 23.6. Pitfalls
Section 23.7. Alphabetized Database-Map Types
arith
btree
bestmx
dbm
dequote
dns
hash
hesiod
host
implicit
ldap (was ldapx)
macro
netinfo
nis
nisplus
nsd
null
ph
program
regex
sequence
stab
switch
syslog
text
userdb
user
Chapter 24. The O (Options) Configuration Command
Section 24.1. Overview
Section 24.2. Command-Line Options
Section 24.3. Configuration File Options
Section 24.4. Options in the mc File
Section 24.5. Alphabetical Table of All Options
Section 24.6. Option Argument Types
Section 24.7. Interrelating Options
Section 24.8. Pitfalls
Section 24.9. Alphabetized Options
AliasFile
AliasWait
AllowBogusHELO
AuthMaxBits
AuthMechanisms
AuthOptions
AutoRebuildAliases
BadRcptThrottle
BlankSub
CACertFile
CACertPath
CheckAliases
CheckpointInterval
ClassFactor
ClientCertFile
ClientKeyFile
ClientPortOptions
ColonOkInAddr
ConnectionCacheSize
ConnectionCacheTimeout
ConnectionRateThrottle
ConnectOnlyTo
ControlSocketName
DaemonPortOptions
DataFileBufferSize
DeadLetterDrop
DefaultAuthInfo
DefaultCharSet
DefaultUser
DelayLA
DeliverByMin
DeliveryMode
DHParameters
DialDelay
DirectSubmissionModifiers
DontBlameSendmail
DontExpandCnames
DontInitGroups
DontProbeInterfaces
DontPruneRoutes
DoubleBounceAddress
EightBitMode
ErrorHeader
ErrorMode
FallbackMXhost
FastSplit
ForkEachJob
ForwardPath
HelpFile
HoldExpensive
HostsFile
HostStatusDirectory
IgnoreDots
InputMailFilters
LDAPDefaultSpec
LogLevel
MailboxDatabase
MatchGECOS
MaxAliasRecursion
MaxDaemonChildren
MaxHeadersLength
MaxHopCount
MaxMessageSize
MaxMimeHeaderLength
MaxQueueChildren
MaxQueueRunSize
MaxRecipientsPerMessage
MaxRunnersPerQueue
MeToo
Milter
MinFreeBlocks
MinQueueAge
MustQuoteChars
NiceQueueRun
NoRecipientAction
OldStyleHeaders
OperatorChars
PidFile
PostmasterCopy
PrivacyOptions
ProcessTitlePrefix
QueueDirectory
QueueFactor
QueueFileMode
QueueLA
QueueSortOrder
QueueTimeout
RandFile
RecipientFactor
RefuseLA
ResolverOptions
RetryFactor
RrtImpliesDsn
RunAsUser
SafeFileEnvironment
SaveFromLine
SendMimeErrors
ServerCertFile
ServerKeyFile
ServiceSwitchFile
SevenBitInput
SharedMemoryKey
SingleLineFromHeader
SingleThreadDelivery
SmtpGreetingMessage
StatusFile
SuperSafe
TempFileMode
Timeout
TimeZoneSpec
TLSSrvOptions
TrustedUser
TryNullMXList
UnixFromLine
UnsafeGroupWrites
UseErrorsTo
UseMSP
UserDatabaseSpec
Verbose
XscriptFileBufferSize
M
Chapter 25. The H (Headers) Configuration Command
Section 25.1. Overview
Section 25.2. Header Names
Section 25.3. Header Field Contents
Section 25.4. ?flags? in Header Definitions
Section 25.5. Rules Check Header Contents
Section 25.6. Header Behavior in conf.c
Section 25.7. Headers and mc Configuration
Section 25.8. Headers by Category
Section 25.9. Forwarding with Resent Headers
Section 25.10. Precedence
Section 25.11. Pitfalls
Section 25.12. Alphabetized Header Reference
Apparently-From:
Apparently-To:
Auto-Submitted:
Bcc:
Cc:
Comments:
Content-Description:
Content-Disposition:
Content-Id:
Content-Length:
Content-Transfer-Encoding:
Content-Type:
Date:
Delivered-To:
Disposition-Notification-To:
Encrypted:
Errors-To:
From:
Full-Name:
In-Reply-To:
Keywords:
Mail-From:
Message-ID:
Message:
MIME-Version:
Posted-Date:
Precedence:
Priority:
Received:
References:
Reply-To:
Return-Path:
Return-Receipt-To:
Sender:
Subject:
Text:
To:
Via:
X-Authentication-Warning:
X400-Received:
Part IV: Appendixes
Appendix A. The mc Configuration Macros and Directives
Appendix B. What's New Since V8.8
Section B.1. Chapter 1
Section B.2. Chapter 2
Section B.3. Chapter 3
Section B.4. Chapter 4
Section B.5. Chapter 5
Section B.6. Chapter 6
Section B.7. Chapter 7
Section B.8. Chapter 8
Section B.9. Chapter 9
Section B.10. Chapter 10
Section B.11. Chapter 11
Section B.12. Chapter 12
Section B.13. Chapter 13
Section B.14. Chapter 14
Section B.15. Chapter 15
Section B.16. Chapter 16
Section B.17. Chapter 17
Section B.18. Chapter 18
Section B.19. Chapter 19
Section B.20. Chapter 20
Section B.21. Chapter 21
Section B.22. Chapter 22
Section B.23. Chapter 23
Section B.24. Chapter 24
Section B.25. Chapter 25
Appendix C. Error Message Reference
Section C.1. Where Errors Are Printed
Section C.2. Alphabetized Error Reference
Appendix D. The checkcompat( ) Cookbook
Section D.1. How checkcompat( ) Works
Section D.2. Reject Bad Body Lines
Section D.3. Reject Excess 8-Bit Characters
Appendix E. A Map to Tutorial Information
Section E.1. How to Use This Guide
Section E.2. The Guide
Bibliography
Requests for Comments
Publications and Postings
Colophon
Index