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