Sendmail. 3rd Edition - Helion
ISBN: 978-05-965-5052-3
stron: 1232, Format: ebook
Data wydania: 2002-12-18
Księgarnia: Helion
Cena książki: 152,15 zł (poprzednio: 176,92 zł)
Oszczędzasz: 14% (-24,77 zł)
Reliable, flexible, and configurable enough to solve the mail routing needs of any web site, sendmail has withstood the test of time, but has become no less daunting in its complexity. Even the most experienced system administrators have found it challenging to configure and difficult to understand. For help in unraveling its intricacies, sendmail administrators have turned unanimously to one reliable source--the bat book, or sendmail by Bryan Costales and the creator of sendmail, Eric Allman. Now in its third edition, this best-selling reference will help you master the most demanding version of sendmail yet.The new edition of sendmail has been completely revised to cover sendmail 8.12--a version with more features and fundamental changes than any previous version of the Unix-based email routing program. Because the latest version of sendmail differs so significantly from earlier versions, a massive rewrite of this best-selling reference was called for.The book begins by guiding you through the building and installation of sendmail and its companion programs, such as vacation and makemap. These additional programs are pivotal to sendmail's daily operation. Next, you'll cover the day-to-day administration of sendmail. This section includes two entirely new chapters, "Performance Tuning" to help you make mail delivery as efficient as possible, and "Handling Spam" to deal with sendmail's rich anti-spam features. The next section of the book tackles the sendmail configuration file and debugging. And finally, the book wraps up with five appendices that provide more detail about sendmail than you may ever need. Altogether, versions 8.10 through 8.12 include dozens of new features, options, and macros, and this greatly expanded edition thoroughly addresses each, and provides and advance look at sendmail version 8.13 (expected to be released in 2003).With sendmail, Third Edition in hand, you will be able to configure this challenging but necessary utility for whatever needs your system requires. This much anticipated revision is essential reading for sendmail administrators.
Osoby które kupowały "Sendmail. 3rd Edition", wybierały także:
- sendmail. 4th Edition 196,69 zł, (169,15 zł -14%)
- sendmail Cookbook. Administering, Securing & Spam-Fighting 186,80 zł, (160,65 zł -14%)
- sendmail. Receptury 49,90 zł
- sendmail 125,00 zł
- sendmail. Leksykon kieszonkowy 9,00 zł
Spis treści
Sendmail. 3rd Edition eBook -- spis treści
- sendmail, 3rd Edition
- SPECIAL OFFER: Upgrade this ebook with OReilly
- 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
- 1. Some Basics
- 1.1. Email Basics
- 1.2. Requests for Comments (RFCs)
- 1.3. Email and sendmail
- 1.3.1. Other MTAs
- 1.3.2. Why sendmail Is So Complex
- 1.4. Basic Parts of sendmail
- 1.4.1. The Configuration File
- 1.4.2. The Queue
- 1.4.3. Aliases and Mailing Lists
- 1.5. Basic Parts of a Mail Message
- 1.5.1. Run sendmail by Hand
- 1.5.2. The Header
- 1.5.3. The Body
- 1.5.4. The Envelope
- 1.6. Basic Roles of sendmail
- 1.6.1. Role in the Filesystem
- 1.6.2. The Role in the Aliases File
- 1.6.3. Role in Queue Management
- 1.6.4. Role in Local Delivery
- 1.6.5. Delivery to a Mailbox
- 1.6.6. Delivery Through a Program
- 1.6.7. Role in Network Transport
- 1.6.8. TCP/IP
- 1.6.9. UUCP
- 1.6.10. Other Protocols
- 1.6.11. Role as a Daemon
- 1.7. Basic Modes of sendmail
- 1.7.1. How to Run sendmail
- 1.7.1.1. Become a mode (-b)
- 1.7.1.2. Daemon mode (-bd)
- 1.7.2. Kill and Restart, Beginning with V8.7
- 1.7.2.1. Kill and restart, with V8.6
- 1.7.2.2. Kill and restart, old versions
- 1.7.2.3. If you forget to kill the daemon
- 1.7.3. Show Queue Mode (-bp)
- 1.7.4. Rebuild Aliases Mode (-bi)
- 1.7.5. Verify Mode (-bv)
- 1.7.6. Verbose (-v)
- 1.7.7. Debugging (-d)
- 1.7.1. How to Run sendmail
- 1.8. The sendmail.cf File
- 1.8.1. Configuration Commands
- 1.8.2. The version Command
- 1.8.3. Comments
- 1.8.4. A Quick Tour
- 1.8.4.1. Mail delivery agents
- 1.8.4.2. Macros
- 1.8.4.3. Rules
- 1.8.4.4. Rule sets
- 1.8.4.5. Class macros
- 1.8.4.6. File class macros
- 1.8.4.7. Options
- 1.8.4.8. Headers
- 1.8.4.9. Priority
- 1.8.4.10. Trusted users
- 1.8.4.11. Keyed databases
- 1.8.4.12. Environment variables
- 1.8.4.13. Queues defined
- 1.8.4.14. External filter programs
- I. Build and Install
- 2. Build and Install sendmail
- 2.1. Vendor Versus Compiling
- 2.2. Obtain the Source
- 2.2.1. Whats Where in the Source
- 2.2.1.1. The top-level Build script
- 2.2.1.2. The contrib directory
- 2.2.1.3. The devtools directory
- 2.2.1.4. The doc directory
- 2.2.1.5. The include directory
- 2.2.1.6. The INSTALL file
- 2.2.1.7. The KNOWNBUGS file
- 2.2.1.8. The libmilter directory
- 2.2.1.9. The libsm directory
- 2.2.1.10. The libsmdb directory
- 2.2.1.11. The libsmutil directory
- 2.2.1.12. The LICENSE file
- 2.2.1.13. The Makefile file
- 2.2.1.14. The PGPKEYS file
- 2.2.1.15. The README file
- 2.2.1.16. The RELEASE_NOTES file
- 2.2.1.17. The test directory
- 2.2.1. Whats Where in the Source
- 2.3. The Build Script
- 2.4. Building with m4
- 2.5. Build sendmail
- 2.5.1. If You Change Your m4 Build File
- 2.5.2. Use libresolv.a
- 2.5.3. Badly Defined sys_errlist
- 2.5.4. Error at or Near Variable
- 2.5.5. Undefined Symbol strtoul
- 2.5.6. warning: & Before Array
- 2.5.7. Other Considerations
- 2.6. Install sendmail
- 2.6.1. Pre-V8.12 Installation
- 2.6.2. Installation with V8.12 and Above
- 2.6.2.1. Add smmsp to /etc/passwd
- 2.6.2.2. Add smmsp to /etc/group
- 2.6.2.3. Modify init files
- 2.6.2.4. The submit.cf file
- 2.6.3. The /etc/mail Directory
- 2.6.4. Old Alias Files
- 2.6.5. Other Moved Files
- 2.6.5.1. The MAIL_SETTINGS_DIR mc macro
- 2.6.6. The Wrong Symbolic Link
- 2.7. Pitfalls
- 2.8. Build m4 Macro Reference
- APPENDDEF( )
- APPENDDEF( )
- confBEFORE
- confBEFORE
- confBLDVARIANT
- confBLDVARIANT
- confBUILDBIN
- confBUILDBIN
- confCC
- confCC
- confCCOPTS
- confCCOPTS
- confCCOPTS_SO
- confCCOPTS_SO
- confCOPY
- confCOPY
- confDEPEND_TYPE
- confDEPEND_TYPE
- confDEPLIBS
- confDEPLIBS
- confDONT_INSTALL_CATMAN
- confDONT_INSTALL_CATMAN
- confEBINDIR
- confEBINDIR
- confENVDEF and conf_prog_ENVDEF
- confENVDEF and conf_prog_ENVDEF
- confFORCE_RMAIL
- confFORCE_RMAIL
- confGBIN...
- confGBIN...
- confHFDIR
- confHFDIR
- confHFFILE
- confHFFILE
- confINCDIRS
- confINCDIRS
- confINC...
- confINC...
- confINSTALL
- confINSTALL
- confINSTALL_RAWMAN
- confINSTALL_RAWMAN
- confLD
- confLD
- confLDOPTS
- confLDOPTS
- confLDOPTS_SO
- confLDOPTS_SO
- confLIB...
- confLIB...
- confLIBDIRS
- confLIBDIRS
- confLIBS and conf_prog_LIBS
- confLIBS and conf_prog_LIBS
- confLIBSEARCH
- confLIBSEARCH
- confLIBSEARCHPATH
- confLIBSEARCHPATH
- confLN
- confLN
- confLNOPTS
- confLNOPTS
- confLINKS
- confLINKS
- confMAN...
- confMAN...
- confMAPDEF
- confMAPDEF
- confMBIN...
- confMBIN...
- confMSPQOWN
- confMSPQOWN
- confMSP_QUEUE_DIR
- confMSP_QUEUE_DIR
- confMTCCOPTS
- confMTCCOPTS
- confMTLDOPTS
- confMTLDOPTS
- confNO_HELPFILE_INSTALL
- confNO_HELPFILE_INSTALL
- confNO_MAN_BUILD
- confNO_MAN_BUILD
- confNO_MAN_INSTALL
- confNO_MAN_INSTALL
- confNO_STATISTICS_INSTALL
- confNO_STATISTICS_INSTALL
- confOBJADD
- confOBJADD
- confOPTIMIZE
- confOPTIMIZE
- confRANLIB
- confRANLIB
- confRANLIBOPTS
- confRANLIBOPTS
- confREQUIRE_LIBSM
- confREQUIRE_LIBSM
- confSBINDIR
- confSBINDIR
- confSBINGRP
- confSBINGRP
- confSBINMODE
- confSBINMODE
- confSBINOWN
- confSBINOWN
- confSHAREDLIB...
- confSHAREDLIB...
- confSHELL
- confSHELL
- confSM_OS_HEADER
- confSM_OS_HEADER
- confSMOBJADD
- confSMOBJADD
- confSMSRCADD
- confSMSRCADD
- confSONAME
- confSONAME
- conf_prog_OBJADD
- conf_prog_OBJADD
- conf_prog_SRCADD
- conf_prog_SRCADD
- confSRCDIR
- confSRCDIR
- confSTDIOTYPE
- confSTDIOTYPE
- confSTDIR
- confSTDIR
- confSTFILE
- confSTFILE
- confSTRIP
- confSTRIP
- confSTRIPOPTS
- confSTRIPOPTS
- confUBINDIR
- confUBINDIR
- confUBINGRP
- confUBINGRP
- confUBINMODE
- confUBINMODE
- confUBINOWN
- confUBINOWN
- PREPENDDEF( )
- PREPENDDEF( )
- 3. Tune sendmail with Compile-Time Macros
- 3.1. Before You Begin, a Checklist
- 3.1.1. The tcpwrappers Package (V8.8 and Earlier)
- 3.1.2. The Sleepycat DB Library
- 3.1.3. The regex Library
- 3.2. To Port, Tune, or Debug
- 3.3. Pitfalls
- 3.4. Compile-Time Macro Reference
- AUTO_NIS_ALIASES
- AUTO_NIS_ALIASES
- BSD4_3
- BSD4_3
- BSD4_4
- BSD4_4
- DATA_PROGRESS_TIMEOUT
- DATA_PROGRESS_TIMEOUT
- DNSMAP
- DNSMAP
- DSN
- DSN
- EGD
- EGD
- ERRLIST_PREDEFINED
- ERRLIST_PREDEFINED
- FAST_PID_RECYCLE
- FAST_PID_RECYCLE
- _FFR...
- _FFR...
- FORK
- FORK
- HAS...
- HAS...
- HESIOD
- HESIOD
- HES_GETMAILHOST
- HES_GETMAILHOST
- IDENTPROTO
- IDENTPROTO
- IP_SRCROUTE
- IP_SRCROUTE
- ...IS_BROKEN
- ...IS_BROKEN
- LA_TYPE
- LA_TYPE
- LDAPMAP
- LDAPMAP
- LOG
- LOG
- MATCHGECOS
- MATCHGECOS
- MAX...
- MAX...
- MEMCHUNKSIZE
- MEMCHUNKSIZE
- MILTER
- MILTER
- MIME7TO8
- MIME7TO8
- MIME8TO7
- MIME8TO7
- NAMED_BIND
- NAMED_BIND
- MAP_NSD
- MAP_NSD
- MAP_REGEX
- MAP_REGEX
- NDBM
- NDBM
- NEED...
- NEED...
- NET...
- NET...
- NETINFO
- NETINFO
- NEWDB
- NEWDB
- NIS
- NIS
- NISPLUS
- NISPLUS
- NOFTRUNCATE
- NOFTRUNCATE
- NO_GROUP_SET
- NO_GROUP_SET
- NOTUNIX
- NOTUNIX
- _PATH...
- _PATH...
- PH_MAP
- PH_MAP
- PICKY_HELO_CHECK
- PICKY_HELO_CHECK
- PIPELINING
- PIPELINING
- PSBUFSIZ
- PSBUFSIZ
- QUEUE
- QUEUE
- QUEUESEGSIZE
- QUEUESEGSIZE
- REQUIRES_DIR_FSYNC
- REQUIRES_DIR_FSYNC
- SASL
- SASL
- SCANF
- SCANF
- SECUREWARE
- SECUREWARE
- SFS_TYPE
- SFS_TYPE
- SHARE_V1
- SHARE_V1
- SM_...
- SM_...
- SM_HEAP_CHECK
- SM_HEAP_CHECK
- SM_CONF_SHM
- SM_CONF_SHM
- SMTP
- SMTP
- SMTPDEBUG
- SMTPDEBUG
- SMTPLINELIM
- SMTPLINELIM
- SPT_TYPE
- SPT_TYPE
- STARTTLS
- STARTTLS
- SUID_ROOT_FILES_OK
- SUID_ROOT_FILES_OK
- SYSLOG_BUFSIZE
- SYSLOG_BUFSIZE
- SYSTEM5
- SYSTEM5
- TCPWRAPPERS
- TCPWRAPPERS
- TLS_NO_RSA
- TLS_NO_RSA
- TOBUFSIZE
- TOBUFSIZE
- TTYNAME
- TTYNAME
- ...T
- ...T
- UDB_DEFAULT_SPEC
- UDB_DEFAULT_SPEC
- USE_DOUBLE_FORK
- USE_DOUBLE_FORK
- USE_ENVIRON
- USE_ENVIRON
- USING_NETSCAPE_LDAP
- USING_NETSCAPE_LDAP
- USERDB
- USERDB
- USESETEUID
- USESETEUID
- WILDCARD_SHELL
- WILDCARD_SHELL
- XDEBUG
- XDEBUG
- 3.1. Before You Begin, a Checklist
- 4. Configure sendmail.cf with m4
- 4.1. The m4 Preprocessor
- 4.1.1. m4 Is Greedy
- 4.1.2. m4 and dnl
- 4.1.3. m4 and Arguments
- 4.1.4. The DOL m4 Macro
- 4.2. Configure with m4
- 4.2.1. The _CF_DIR_ m4 Macro
- 4.2.2. The Minimal mc File
- 4.2.2.1. OSTYPE( ) m4 macro
- 4.2.2.2. MAILER( ) m4 macro
- 4.2.2.3. DOMAIN( ) m4 macro
- 4.2.2.4. FEATURE( ) m4 macro
- 4.2.3. The Order of mc Lines
- 4.2.3.1. VERSIONID m4 macro
- 4.2.3.2. HACK( ) m4 macro
- 4.3. m4 Macros by Function
- 4.3.1. Options
- 4.3.2. Define sendmail Macros
- 4.3.3. Rules and Rule Sets
- 4.3.3.1. LOCAL_CONFIG mc macro
- 4.3.3.2. LOCAL_RULE_0 mc macro
- 4.3.3.3. LOCAL_RULE_1 and LOCAL_RULE_2 mc macros
- 4.3.3.4. LOCAL_RULE_3 mc macro
- 4.3.3.5. LOCAL_RULESETS mc macro
- 4.3.3.6. SMART_HOST mc macro
- 4.3.3.7. LOCAL_NET_CONFIG mc macro
- 4.4. Masquerading
- 4.4.1. EXPOSED_USER mc Macro
- 4.4.1.1. EXPOSED_USER_FILE mc macro
- 4.4.2. MASQUERADE_AS mc Macro
- 4.4.3. MASQUERADE_DOMAIN mc Macro
- 4.4.4. MASQUERADE_DOMAIN_FILE mc Macro
- 4.4.5. MASQUERADE_EXCEPTION mc Macro
- 4.4.6. MASQUERADE_EXCEPTION_FILE mc Macro
- 4.4.1. EXPOSED_USER mc Macro
- 4.5. Relays
- 4.5.1. BITNET_RELAY mc Macro
- 4.5.2. DECNET_RELAY mc Macro
- 4.5.3. FAX_RELAY mc Macro
- 4.5.4. LOCAL_RELAY mc Macro
- 4.5.5. LOCAL_USER mc Macro
- 4.5.6. LUSER_RELAY mc Macro
- 4.5.7. MAIL_HUB mc Macro
- 4.5.8. UUCP_RELAY mc Macro
- 4.6. UUCP Support
- 4.6.1. uucp-old (aka uucp)
- 4.6.2. uucp-new (aka suucp)
- 4.6.3. uucp-uudom
- 4.6.4. uucp-dom
- 4.6.5. SITE mc Macro (Obsolete)
- 4.6.6. SITECONFIG mc Macro (Obsolete)
- 4.6.7. UUCPSMTP mc Macro
- 4.7. Pitfalls
- 4.8. Configuration File Feature Reference
- FEATURE(accept_unqualified_senders)
- FEATURE(accept_unqualified_senders)
- FEATURE(accept_unresolvable_domains)
- FEATURE(accept_unresolvable_domains)
- FEATURE(access_db)
- FEATURE(access_db)
- FEATURE(allmasquerade)
- FEATURE(allmasquerade)
- FEATURE(always_add_domain)
- FEATURE(always_add_domain)
- FEATURE(authinfo)
- FEATURE(authinfo)
- FEATURE(bestmx_is_local)
- FEATURE(bestmx_is_local)
- FEATURE(bitdomain)
- FEATURE(bitdomain)
- FEATURE(blacklist_recipients)
- FEATURE(blacklist_recipients)
- FEATURE(compat_check)
- FEATURE(compat_check)
- FEATURE(delay_checks)
- FEATURE(delay_checks)
- FEATURE(dnsbl)
- FEATURE(dnsbl)
- FEATURE(domaintable)
- FEATURE(domaintable)
- FEATURE(enhdnsbl)
- FEATURE(enhdnsbl)
- FEATURE(generics_entire_domain)
- FEATURE(generics_entire_domain)
- FEATURE(genericstable)
- FEATURE(genericstable)
- FEATURE(ldap_routing)
- FEATURE(ldap_routing)
- FEATURE(limited_masquerade)
- FEATURE(limited_masquerade)
- FEATURE(local_lmtp)
- FEATURE(local_lmtp)
- FEATURE(local_no_masquerade)
- FEATURE(local_no_masquerade)
- FEATURE(local_procmail)
- FEATURE(local_procmail)
- FEATURE(lookupdotdomain)
- FEATURE(lookupdotdomain)
- FEATURE(loose_relay_check)
- FEATURE(loose_relay_check)
- FEATURE(mailertable)
- FEATURE(mailertable)
- FEATURE(masquerade_entire_domain)
- FEATURE(masquerade_entire_domain)
- FEATURE(masquerade_envelope)
- FEATURE(masquerade_envelope)
- FEATURE(msp)
- FEATURE(msp)
- FEATURE(nocanonify)
- FEATURE(nocanonify)
- FEATURE(nodns)
- FEATURE(nodns)
- FEATURE(no_default_msa)
- FEATURE(no_default_msa)
- FEATURE(notsticky)
- FEATURE(notsticky)
- FEATURE(nouucp)
- FEATURE(nouucp)
- FEATURE(nullclient)
- FEATURE(nullclient)
- FEATURE(promiscuous_relay)
- FEATURE(promiscuous_relay)
- FEATURE(preserve_local_plus_detail)
- FEATURE(preserve_local_plus_detail)
- FEATURE(preserve_luser_host)
- FEATURE(preserve_luser_host)
- FEATURE(queuegroup)
- FEATURE(queuegroup)
- FEATURE(rbl)
- FEATURE(rbl)
- FEATURE(redirect)
- FEATURE(redirect)
- FEATURE(relay_based_on_MX)
- FEATURE(relay_based_on_MX)
- FEATURE(relay_entire_domain)
- FEATURE(relay_entire_domain)
- FEATURE(relay_hosts_only)
- FEATURE(relay_hosts_only)
- FEATURE(relay_local_from)
- FEATURE(relay_local_from)
- FEATURE(relay_mail_from)
- FEATURE(relay_mail_from)
- FEATURE(smrsh)
- FEATURE(smrsh)
- FEATURE(stickyhost)
- FEATURE(stickyhost)
- FEATURE(use_ct_file)
- FEATURE(use_ct_file)
- FEATURE(use_cw_file)
- FEATURE(use_cw_file)
- FEATURE(uucpdomain)
- FEATURE(uucpdomain)
- FEATURE(virtuser_entire_domain)
- FEATURE(virtuser_entire_domain)
- FEATURE(virtusertable)
- FEATURE(virtusertable)
- 4.1. The m4 Preprocessor
- 5. Build and Use Companion Programs
- 5.1. The Build Script
- -A
- -A
- -c
- -c
- -E
- -E
- -f
- -f
- -I
- -I
- -L
- -L
- -M
- -M
- -m
- -m
- -n
- -n
- -O
- -O
- -Q
- -Q
- -S
- -S
- -v
- -v
- 5.2. The editmap Program
- 5.2.1. editmap Command-Line Switches
- -C
- -C
- -f
- -f
- -N
- -N
- -q
- -q
- -u
- -u
- -x
- -x
- 5.3. The mail.local Delivery Agent
- 5.3.1. Build mail.local
- 5.3.2. Set up sendmail.cf for mail.local
- 5.3.3. The mail.local Command-Line Switches
- -7
- -7
- -b
- -b
- -d
- -d
- -D
- -D
- -f
- -f
- -h
- -h
- -l (lowercase L)
- -l (lowercase L)
- -r
- -r
- 5.4. The mailstats Program
- 5.4.1. The statistics File
- 5.4.2. Viewing Statistics: mailstats
- 5.4.3. Using cron for Daily and Weekly Statistics
- 5.4.4. The mailstats Program's Switches
- -c
- -c
- -C
- -C
- -f
- -f
- -o
- -o
- -p
- -p
- -P
- -P
- 5.5. The makemap Program
- 5.5.1. makemap Command-Line Switches
- -c
- -c
- -C
- -C
- -d
- -d
- -e
- -e
- -f
- -f
- -l (lowercase L)
- -l (lowercase L)
- -N
- -N
- -o
- -o
- -r
- -r
- -s
- -s
- -t
- -t
- -u
- -u
- -v
- -v
- 5.6. The praliases Program
- 5.6.1. Some Examples of Using praliases
- -C
- -C
- -f
- -f
- 5.7. The rmail Delivery Agent
- 5.8. The smrsh Program
- 5.8.1. Build smrsh
- 5.8.2. Configure to Use smrsh
- 5.8.3. Populate its Directory
- 5.8.4. How smrsh Works
- 5.9. The vacation Program
- 5.9.1. Build the vacation Program
- 5.9.2. Other Uses for vacation
- 5.9.2.1. You are too busy to reply promptly
- 5.9.2.2. Retire users with notification
- 5.9.2.3. Manage your hours
- 5.9.3. Exclusions and assumptions
- 5.9.4. The vacation Program's Command-Line Switches
- -a
- -a
- -C
- -C
- -d
- -d
- -f
- -f
- -i or -I
- -i or -I
- -l (lowercase L)
- -l (lowercase L)
- -m
- -m
- -r
- -r
- -s
- -s
- -t
- -t
- -U
- -U
- -x
- -x
- -z
- -z
- 5.10. Pitfalls
- 2. Build and Install sendmail
- II. Administration
- 6. Tune Performance
- 6.1. Handle Deep Queues
- 6.1.1. Recover from a Full Queue
- 6.2. Sidestep Slow Hosts
- 6.2.1. Run Separate Fast and Slow sendmail Daemons
- 6.2.2. Run a Fallback Host
- 6.3. Deliver to Files
- 6.3.1. A Bounce-Mail Handler
- 6.3.2. Handle Bounces by Discarding Them
- 6.3.3. An Email Blackhole
- 6.4. Buffered File I/O
- 6.5. Use Multiple Queues
- 6.6. Condition the Network
- 6.6.1. Don't Appear to Spam
- 6.6.2. Use an Active Name Server
- 6.6.3. Make Reverse Lookups Swift
- 6.6.4. Don't Let identd Hang
- 6.7. Tune the Kernel
- 6.7.1. Maximize File Descriptor Limits
- 6.7.2. Disable Source-Routed Packets
- 6.7.3. Maximize TCP/IP Connections
- 6.7.4. Maximize TCP/IP Buffer Sizes
- 6.7.5. Decrease TCP/IP Keepalive Intervals
- 6.8. Pitfalls
- 6.1. Handle Deep Queues
- 7. How to Handle spam
- 7.1. The Local_check_ Rule Sets
- 7.1.1. Local_check_relay and check_relay
- 7.1.2. Local_check_mail and check_mail
- 7.1.3. Local_check_rcpt and check_rcpt
- 7.1.4. The check_compat Rule Set
- 7.2. How DNSBL Works
- 7.2.1. FEATURE(dnsbl)
- 7.2.2. FEATURE(enhdnsbl)
- 7.3. Check Headers with Rule Sets
- 7.3.1. Virus Screening by Subject
- 7.3.2. Check Validity of Received:
- 7.4. Relaying
- 7.4.1. Macros to Allow Relaying
- 7.4.1.1. The RELAY_DOMAIN mc macro
- 7.4.1.2. The RELAY_DOMAIN_FILE mc macro
- 7.4.2. FEATURE(loose_relay_check)
- 7.4.3. FEATURE(promiscuous_relay)
- 7.4.4. FEATURE(relay_based_on_MX)
- 7.4.5. FEATURE(relay_entire_domain)
- 7.4.6. FEATURE(relay_hosts_only)
- 7.4.7. FEATURE(relay_local_from)
- 7.4.8. FEATURE(relay_mail_from)
- 7.4.9. Risk with FEATURE(nouucp)
- 7.4.10. FEATURE(accept_unresolvable_domains)
- 7.4.11. FEATURE(accept_unqualified_senders)
- 7.4.1. Macros to Allow Relaying
- 7.5. The access Database
- 7.5.1. Enabling the access Database Generally
- 7.5.2. Create the access Database
- 7.5.2.1. OK
- 7.5.2.2. RELAY
- 7.5.2.3. REJECT
- 7.5.2.4. DISCARD
- 7.5.2.5. SKIP
- 7.5.2.6. XYZ text
- 7.5.2.7. ERROR:XYZ text
- 7.5.2.8. ERROR:D.S.N:XYZ text
- 7.5.3. Finer Control with V8.10
- 7.5.4. Rejection Message for REJECT
- 7.5.5. Reject Per Recipient
- 7.5.6. Accept and Reject Per Recipient
- 7.5.7. FEATURE(check_compat)V8.12 and Above
- 7.5.8. Screen by domain and .domain Too
- 7.5.9. Choose Queue Groups Via the access Database
- 7.5.10. Screen Based on STARTTLS and AUTH=
- 7.6. The Milter Library
- 7.6.1. Enable with -DMILTER
- 7.6.2. The X Configuration Command
- 7.6.2.1. The X configuration command F= equate
- 7.6.2.2. The X configuration command S= equate
- 7.6.2.3. The X configuration command T= equate
- 7.6.3. The InputMailFilters Option
- 7.6.4. Build a Filter
- 7.7. Pitfalls
- 7.1. The Local_check_ Rule Sets
- 8. Test Rule Sets with -bt
- 8.1. Overview
- 8.2. Configuration Lines
- 8.2.1. Define a Macro with .D
- 8.2.2. Add to a Class with .C
- 8.3. Dump a sendmail Macro or Class
- 8.3.1. Dump a Defined Macro with $
- 8.3.2. Dump a Class Macro with $=
- 8.4. Show an Item
- 8.4.1. Show Rules in a Rule Set with =S
- 8.4.2. Show Delivery Agents with =M
- 8.5. Complex Actions Made Simple
- 8.5.1. Canonify a Host with /canon
- 8.5.2. Look Up MX Records with /mx
- 8.5.3. Look up a Database Item with /map
- 8.5.3.1. The aliases database map
- 8.5.3.2. The host map
- 8.5.3.3. The dequote map
- 8.5.4. Select Whom to /parse or /try with /tryflags
- 8.5.5. Parse an Address with /parse
- 8.5.6. Try a Delivery Agent with /try
- 8.6. Process-Specified Addresses
- 8.6.1. Syntax
- 8.6.2. The Address
- 8.6.3. Rule Set 3 Always Called First with -bt
- 8.6.4. The Output
- 8.7. Add Debugging for Detail
- 8.7.1. A Trick
- 8.8. Batch Rule-Set Testing
- 8.9. Pitfalls
- 9. DNS and sendmail
- 9.1. Overview
- 9.1.1. Which BIND?
- 9.1.2. Make sendmail DNS-Aware
- 9.2. How sendmail Uses DNS
- 9.2.1. Determine the Local Canonical Name
- 9.2.2. Probe Network Interfaces
- 9.2.3. Look Up a Remote Host's Name
- 9.2.4. DNS Blacklist Lookups
- 9.2.5. Look Up Addresses for Delivery
- 9.2.6. The $[ and $] Operators
- 9.2.7. Broken IPv6 Name Servers
- 9.3. Set Up MX Records
- 9.3.1. MX Must Point to Host With an A or AAAA Record
- 9.3.2. MX to CNAME Is Illegal
- 9.3.3. MX Records Are Nonrecursive
- 9.3.4. Wildcard MX Records
- 9.3.5. What? They Ignore MX Records?
- 9.3.6. Caching MX Records
- 9.3.7. Ambiguous MX Records
- 9.4. How to Use nslookup
- 9.5. Prepare for Disaster
- 9.5.1. Offsite MX Hosts
- 9.5.2. Offsite Servers
- 9.6. Pitfalls
- 9.1. Overview
- 10. Maintain Security with sendmail
- 10.1. Why root?
- 10.1.1. Test seteuid and setreuid
- 10.2. The Environment
- 10.2.1. The E Configuration Command
- 10.3. SMTP Probes
- 10.3.1. SMTP Debug
- 10.3.2. SMTP vrfy and expn
- 10.4. The Configuration File
- 10.4.1. The F CommandFile Form
- 10.4.2. The F CommandProgram Form
- 10.4.3. The P= of Delivery Agents
- 10.4.4. The StatusFile Option and the Statistics File
- 10.5. Permissions
- 10.5.1. Dangerous Write Permissions
- 10.5.2. Permissions for :include:
- 10.5.3. Permissions for ~/.forward Files
- 10.5.4. Recommended Permissions
- 10.5.5. Don't Blame sendmail
- 10.6. The Aliases File
- 10.6.1. The Alias Database Files
- 10.7. Forged Mail
- 10.7.1. Forging with the Queue Directory
- 10.7.2. Forging with SMTP
- 10.8. Security Features
- 10.8.1. Trusted Users
- 10.8.1.1. Declare trusted users (ignored V8.1 through V8.6)
- 10.8.2. Security Options
- 10.8.2.1. The DefaultUser option
- 10.8.2.2. The RunAsUser option (V8.8 and above)
- 10.8.2.3. The TrustedUser option (V8.10 and above)
- 10.8.2.4. The ForwardPath option
- 10.8.2.5. The LogLevel option
- 10.8.2.6. The PostmasterCopy option
- 10.8.2.7. The PrivacyOptions option
- 10.8.2.8. The SafeFileEnvironment option
- 10.8.2.9. The TempFileMode and QueueFileMode options
- 10.8.3. The /etc/shells File
- 10.8.1. Trusted Users
- 10.9. Support SMTP AUTH
- 10.9.1. Get and Install the SASL Library
- 10.9.2. Add SASL Support to sendmail
- 10.9.2.1. Test SASL support in sendmail
- 10.9.3. SASL and Your mc File
- 10.9.3.1. Format of the default-auth-info file (V8.10 and V8.11)
- 10.9.3.2. Authinfo and the access database (V8.12 and above)
- 10.9.4. SASL and Rule Sets
- 10.9.5. Additional SASL Help
- 10.10. STARTTLS
- 10.10.1. The SSL Library
- 10.10.1.1. A proper random number source
- 10.10.1.2. SUNWski
- 10.10.1.3. EGD
- 10.10.1.4. PRNGD
- 10.10.1.5. Roll your own
- 10.10.2. Digital Certificates
- 10.10.3. Enable TLS with Build
- 10.10.4. Set Up Your Certificates
- 10.10.5. Add STARTTLS Support to Your mc File
- 10.10.6. Test STARTTLS
- 10.10.7. Macros for Use with STARTTLS
- 10.10.8. STARTTLS and the access Database
- 10.10.8.1. The access database and Local_Relay_Auth
- 10.10.8.2. The access database with tls_server and tls_client
- 10.10.8.3. The tls_rcpt rule set
- 10.10.8.4. Disable STARTTLS with the try_tls rule set
- 10.10.1. The SSL Library
- 10.11. Other Security Information
- 10.12. Pitfalls
- 10.1. Why root?
- 11. Manage the Queue
- 11.1. Overview of the Queue
- 11.2. Parts of a Queued Message
- 11.2.1. The Queue Identifier
- 11.2.2. The Data (Message Body) File: df
- 11.2.3. Queue File Locking
- 11.2.3.1. Current-style file locking
- 11.2.3.2. Locks shown when printing the queue
- 11.2.3.3. Locks can get stuck
- 11.2.4. The ID Creation File (Obsolete as of V5.62): nf
- 11.2.5. The Queue Control File: qf
- 11.2.6. The Temporary qf Rewrite Image: tf
- 11.2.7. The Transcript File: xf
- 11.3. Using Multiple Queue Directories
- 11.3.1. Multiple Queue Directories
- 11.3.1.1. Printing multiple queue directories
- 11.3.1.2. Processing multiple queue directories
- 11.3.2. Using qf, df, and xf Subdirectories
- 11.3.1. Multiple Queue Directories
- 11.4. Queue Groups (V8.12 and Above)
- 11.4.1. The Default Queue Group
- 11.4.2. The Q Configuration Command
- 11.4.2.1. The Flags= (F=) queue-group equate
- 11.4.2.2. The Interval= (I=) queue-group equate
- 11.4.2.3. The Jobs= (J=) queue-group equate
- 11.4.2.4. The Nice= (N=) queue-group equate
- 11.4.2.5. The Path= (P=) queue-group equate
- 11.4.2.6. The recipients= (r=) queue-group equate
- 11.4.2.7. The Runners= (R=) queue-group equate
- 11.4.3. How to Declare Queue Groups with the m4 Technique
- 11.4.4. The FEATURE(queuegroup) and the access Database
- 11.4.5. Rule Set Queue Group Selection
- 11.4.6. Queue Group Limitations
- 11.5. Bogus qf Files
- 11.5.1. Badly Formed qf Filename
- 11.5.2. Bad qf Owner or Permissions
- 11.5.3. Extra Data at End of qf File
- 11.5.4. Unknown Control Character in qf File
- 11.5.5. Funny Flag Bits in qf File
- 11.5.6. Savemail Panic
- 11.6. Printing the Queue
- 11.6.1. Printing the Queue in Verbose Mode
- 11.6.2. Print the Number of Messages in the Queue
- 11.7. How the Queue Is Processed
- 11.7.1. Processing a Single Message
- 11.8. Cause Queues to Be Processed
- 11.8.1. Periodically with -q
- 11.8.2. From the Command Line
- 11.8.2.1. Process the queue once: -q
- 11.8.2.2. Combine -v with -q
- 11.8.2.3. Process by identifier/recipient/sender: -q[ISR]
- 11.8.2.4. Process by negated identifier/recipient/sender (V8.12 and above)
- 11.8.2.5. Process by queue group with -qG (V8.12 and above)
- 11.8.2.6. Process the queue via ESMTP ETRN
- 11.8.3. Persistent Queue Runners with -qp
- 11.9. Process Alternate Queues
- 11.9.1. Handling a Down Site
- 11.9.1.1. Move mail with qtool.pl
- 11.9.1.2. Move mail with queue groups
- 11.9.1. Handling a Down Site
- 11.10. Pitfalls
- 11.11. The qf File Internals
- A line
- A line
- B line
- B line
- C line
- C line
- d line
- d line
- D line
- D line
- E line
- E line
- F line
- F line
- H line
- H line
- I line
- I line
- K line
- K line
- M line
- M line
- N line
- N line
- P line
- P line
- Q line
- Q line
- r line
- r line
- R line
- R line
- S line
- S line
- T line
- T line
- V line
- V line
- Z line
- Z line
- ! line
- ! line
- $ line
- $ line
- . line
- . line
- 12. Maintain Aliases
- 12.1. The aliases(5) File
- 12.1.1. The aliases(5) File's Location
- 12.1.2. Local Must Be Local
- 12.1.3. Alias Nonlocal Addresses
- 12.2. Forms of Alias Delivery
- 12.2.1. Delivery to Users
- 12.2.2. Delivery to Files
- 12.2.3. Delivery via Programs
- 12.2.3.1. Possible failures
- 12.3. Write a Delivery Agent Script
- 12.3.1. Duplicates Discarded
- 12.3.2. Correct exit(2) Values
- 12.3.3. Is It Really EX_OK?
- 12.4. Special Aliases
- 12.4.1. The Postmaster Alias
- 12.4.2. The MAILER-DAEMON Alias
- 12.4.3. Other Possible Required Aliases
- 12.4.4. Plussed Detail Addressing
- 12.4.5. Duplicate Entries and Automation
- 12.5. The Aliases Database
- 12.5.1. Rebuild the Alias Database
- 12.5.2. Check the Right Side of Aliases
- 12.5.3. Use Trailing Dots
- 12.5.4. Prevent Simultaneous Rebuilds
- 12.5.5. No DBM Aliasing
- 12.6. Prevent Aliasing with -n
- 12.6.1. Is an Alias Bad?
- 12.6.2. Filtering Recipients with a Shell Script
- 12.7. Pitfalls
- 12.1. The aliases(5) File
- 13. Mailing Lists and ~/.forward
- 13.1. Internal Mailing Lists
- 13.2. :include: Mailing Lists
- 13.2.1. Comments in :include: Lists
- 13.2.2. Tradeoffs
- 13.3. Defining a Mailing List Owner
- 13.4. Exploder Mailing Lists
- 13.5. Problems with Mailing Lists
- 13.5.1. Reply Versus Bounce
- 13.5.2. Gateway Lists to News
- 13.5.3. A List-Bounced Alias
- 13.5.4. Users Ignore list-request
- 13.5.5. Precedence: bulk
- 13.5.6. X.400 Addresses
- 13.6. Packages That Help
- 13.6.1. Majordomo
- 13.6.2. Mailman
- 13.6.3. ListProcessor
- 13.6.4. ListManager
- 13.7. The User's ~/.forward File
- 13.7.1. Unscrambling Forwards
- 13.7.2. Forwarding Loops
- 13.7.3. Appending to Files
- 13.7.4. Piping Through Programs
- 13.7.5. Specialty Programs for Use with ~/.forward
- 13.7.5.1. The procmail program
- 13.7.5.2. The slocal program
- 13.7.6. Force Requeue on Error
- 13.8. Pitfalls
- 14. Signals, Transactions, and Syslog
- 14.1. Signal the Daemon
- SIGTERM
- SIGTERM
- SIGINT
- SIGINT
- SIGKILL
- SIGKILL
- SIGHUP
- SIGHUP
- SIGUSR1
- SIGUSR1
- 14.2. Log Transactions with -X
- 14.3. Log with syslog
- 14.3.1. syslog(3)
- 14.3.2. Tuning syslog.conf
- 14.3.3. syslog's Output
- 14.3.4. Gathering Statistics from syslog
- 14.3.4.1. message_volume.sh
- 14.4. Pitfalls
- 14.5. Alphabetized syslog Equates
- arg1=
- arg1=
- bodytype=
- bodytype=
- class=
- class=
- ctladdr=
- ctladdr=
- daemon=
- daemon=
- delay=
- delay=
- dsn=
- dsn=
- from=
- from=
- intvl=
- intvl=
- len=
- len=
- mailer=
- mailer=
- msgid=
- msgid=
- nrcpts=
- nrcpts=
- ntries=
- ntries=
- pri=
- pri=
- proto=
- proto=
- reject=
- reject=
- relay=
- relay=
- ruleset=
- ruleset=
- size=
- size=
- stat=
- stat=
- to=
- to=
- xdelay=
- xdelay=
- 15. The sendmail Command Line
- 15.1. Alternative argv[0] Names
- 15.1.1. hoststat (V8.8 and Above)
- 15.1.2. mailq
- 15.1.3. newaliases
- 15.1.4. purgestat (V8.8 and Above)
- 15.1.5. smtpd
- 15.2. Command-Line Switches
- 15.3. List of Recipient Addresses
- 15.4. Processing the Command Line
- 15.4.1. First: Prescanning the Command Line
- 15.4.2. Second: Processing Prior to the Switches
- 15.4.2.1. Initialize the environment
- 15.4.2.2. Initialize sendmail macros
- 15.4.3. Third: Processing Switches
- 15.4.4. Fourth: Reading the Configuration File
- 15.4.5. Fifth: Collecting Recipients
- 15.5. sendmail's exit( ) Status
- EX_CANTCREAT
- EX_CANTCREAT
- EX_CONFIG
- EX_CONFIG
- EX_IOERR
- EX_IOERR
- EX_OK
- EX_OK
- EX_OSERR
- EX_OSERR
- EX_OSFILE
- EX_OSFILE
- EX_SOFTWARE
- EX_SOFTWARE
- EX_TEMPFAIL
- EX_TEMPFAIL
- EX_UNAVAILABLE
- EX_UNAVAILABLE
- EX_USAGE
- EX_USAGE
- 15.6. Pitfalls
- 15.7. Alphabetized Command-Line Switches
- -A
- -A
- -B
- -B
- -b
- -b
- -ba
- -ba
- -bD
- -bD
- -bd
- -bd
- -bH
- -bH
- -bh
- -bh
- -bi
- -bi
- -bm
- -bm
- -bP
- -bP
- -bp
- -bp
- -bs
- -bs
- -bt
- -bt
- -bv
- -bv
- -bz
- -bz
- -C
- -C
- -c
- -c
- -d
- -d
- -E
- -E
- -e
- -e
- -F
- -F
- -f
- -f
- -G
- -G
- -h
- -h
- -I
- -I
- -i
- -i
- -J
- -J
- -L
- -L
- -M
- -M
- -m
- -m
- -N
- -N
- -n
- -n
- -O
- -O
- -o
- -o
- -p
- -p
- -q
- -q
- -R
- -R
- -r
- -r
- -s
- -s
- -T
- -T
- -t
- -t
- -U
- -U
- -V
- -V
- -v
- -v
- -X
- -X
- -x
- -x
- 15.1. Alternative argv[0] Names
- 16. Debug sendmail with -d
- 16.1. The Syntax of -d
- 16.2. The Behavior of -d
- 16.3. Interpret the Output
- 16.4. Table of All -d Categories
- 16.5. Pitfalls
- 16.6. Reference for -d in Numerical Order
- -d0.1
- -d0.1
- -d0.4
- -d0.4
- -d0.10
- -d0.10
- -d0.12
- -d0.12
- -d0.13
- -d0.13
- -d0.15
- -d0.15
- -d0.20
- -d0.20
- -d2.1
- -d2.1
- -d2.9
- -d2.9
- -d4.80
- -d4.80
- -d6.1
- -d6.1
- -d8.1
- -d8.1
- -d8.2
- -d8.2
- -d8.3
- -d8.3
- -d8.5
- -d8.5
- -d8.7
- -d8.7
- -d8.8
- -d8.8
- -d11.1
- -d11.1
- -d11.2
- -d11.2
- -d12.1
- -d12.1
- -d13.1
- -d13.1
- -d20.1
- -d20.1
- -d21.1
- -d21.1
- -d21.2
- -d21.2
- -d22.1
- -d22.1
- -d22.11
- -d22.11
- -d22.12
- -d22.12
- -d25.1
- -d25.1
- -d26.1
- -d26.1
- -d27.1
- -d27.1
- -d27.2
- -d27.2
- -d27.3
- -d27.3
- -d27.4
- -d27.4
- -d27.5
- -d27.5
- -d27.8
- -d27.8
- -d27.9
- -d27.9
- -d28.1
- -d28.1
- -d29.1
- -d29.1
- -d29.4
- -d29.4
- -d31.2
- -d31.2
- -d34.1
- -d34.1
- -d34.11
- -d34.11
- -d35.9
- -d35.9
- -d37.1
- -d37.1
- -d37.8
- -d37.8
- -d38.2
- -d38.2
- -d38.3
- -d38.3
- -d38.4
- -d38.4
- -d38.9
- -d38.9
- -d38.10
- -d38.10
- -d38.12
- -d38.12
- -d38.19
- -d38.19
- -d38.20
- -d38.20
- -d41.1
- -d41.1
- -d44.4
- -d44.4
- -d44.5
- -d44.5
- -d48.2
- -d48.2
- -d49.1
- -d49.1
- -d52.1
- -d52.1
- -d52.100
- -d52.100
- -d60.1
- -d60.1
- -d99.100
- -d99.100
- 6. Tune Performance
- III. The Configuration File
- 17. Configuration File Overview
- 17.1. Overall Syntax
- 17.2. Comments
- 17.3. V8 Comments
- 17.4. Continuation Lines
- 17.5. The V Configuration Command
- 17.5.1. The V Configuration Command's Level Part
- 17.5.2. The V Configuration Command's Vendor Part
- 17.6. Pitfalls
- 18. The R (Rules) Configuration Command
- 18.1. Why Rules?
- 18.2. The R Configuration Command
- 18.2.1. Macros in Rules
- 18.2.2. Rules are Treated Like Addresses
- 18.2.2.1. Backslashes in rules
- 18.3. Tokenizing Rules
- 18.3.1. $-operators Are Tokens
- 18.3.2. The Space Character Is Special
- 18.3.3. Pasting Addresses Back Together
- 18.4. The Workspace
- 18.5. The Behavior of a Rule
- 18.6. The LHS
- 18.6.1. Minimum Matching
- 18.6.2. Backup and Retry
- 18.7. The RHS
- 18.7.1. Copy by Position: $digit
- 18.7.2. Rewrite Once Prefix: $:
- 18.7.3. Rewrite-and-Return Prefix: $@
- 18.7.4. Rewrite Through Another Rule Set: $>set
- 18.7.5. Return a Selection: $#
- 18.7.6. Canonicalize Hostname: $[ and $]
- 18.7.6.1. An example of canonicalization
- 18.7.6.2. Default in canonicalization: $:
- 18.7.7. Other Operators
- 18.8. Pitfalls
- 18.9. Rule Operator Reference
- $&
- $&
- $@
- $@
- $@
- $@
- $@
- $@
- $@
- $@
- $@
- $@
- $:
- $:
- $:
- $:
- $:
- $:
- $:
- $:
- $digit
- $digit
- $=
- $=
- $>
- $>
- $[ $]
- $[ $]
- $( $)
- $( $)
- $-
- $-
- $+
- $+
- $#
- $#
- $#
- $#
- $#
- $#
- $*
- $*
- $~
- $~
- $|
- $|
- 19. The S (Rule Sets) Configuration Command
- 19.1. The S Configuration Command
- 19.1.1. Rule-Set Numbers
- 19.1.2. Rule-Set Names
- 19.1.3. Associate Number with Name
- 19.1.4. Macros in Rule-Set Names
- 19.1.5. Rule Sets and Lists of Rules
- 19.1.6. Odds and Ends
- 19.1.7. Rule Sets and m4
- 19.2. The Sequence of Rule Sets
- 19.2.1. V8 Enhancements
- 19.3. The canonify Rule Set 3
- 19.3.1. A Special Case: From:<>
- 19.3.2. Basic Textual Canonicalization
- 19.3.3. Handling Routing Addresses
- 19.3.4. Handling Specialty Addresses
- 19.3.5. Focusing for @ Syntax
- 19.4. The final Rule Set 4
- 19.4.1. Stripping Trailing Dots
- 19.4.2. Restoring Source Routes
- 19.4.3. Removing Focus
- 19.4.4. Correcting Tags
- 19.5. The parse Rule Set 0
- 19.5.1. Further Processing: $:address
- 19.5.2. Selecting S= and R=
- 19.5.3. Delivering to Local Recipient
- 19.5.4. Forwarding to a Knowledgeable Host
- 19.5.5. Handling UUCP Locally
- 19.5.6. Forwarding over the Network
- 19.5.7. Handling Leftover Local Addresses
- 19.6. The localaddr Rule Set 5
- 19.6.1. The Local_localaddr Hook
- 19.7. Rule Sets 1 and 2
- 19.7.1. Rule Set 1
- 19.7.2. Rule Set 2
- 19.8. Pitfalls
- 19.9. Policy Rule-Set Reference
- check_data
- check_data
- check_etrn
- check_etrn
- check_vrfy and check_expn
- check_vrfy and check_expn
- srv_features
- srv_features
- 19.1. The S Configuration Command
- 20. The M (Mail Delivery Agent) Configuration Command
- 20.1. The M Configuration Command
- 20.2. The Symbolic Delivery Agent Name
- 20.2.1. Required Symbolic Names
- 20.3. The mc Configuration Syntax
- 20.3.1. Choose Preferred Agents
- 20.3.1.1. confSMTP_MAILER
- 20.3.1.2. confUUCP_MAILER
- 20.3.1.3. confLOCAL_MAILER
- 20.3.1.4. confRELAY_MAILER
- 20.3.2. Tuning Without an Appropriate Keyword
- 20.3.3. Create a New mc Delivery Agent
- 20.3.3.1. MAILER_DEFINITIONS
- 20.3.1. Choose Preferred Agents
- 20.4. Delivery Agents by Name
- cyrus
- cyrus
- cyrusv2
- cyrusv2
- discard
- discard
- error
- error
- fax
- fax
- *file* and *include*
- *file* and *include*
- local and prog
- local and prog
- mail11
- mail11
- ph
- ph
- pop
- pop
- procmail
- procmail
- qpage
- qpage
- smtp, etc.
- smtp, etc.
- usenet
- usenet
- uucp
- uucp
- 20.5. Delivery Agent Equates
- /= (forward slash)
- /= (forward slash)
- A=
- A=
- C=
- C=
- D=
- D=
- E=
- E=
- F=
- F=
- L=
- L=
- M=
- M=
- m=
- m=
- N=
- N=
- P=
- P=
- Q=
- Q=
- R=
- R=
- r=
- r=
- S=
- S=
- T=
- T=
- U=
- U=
- W=
- W=
- 20.6. How a Delivery Agent Is Executed
- 20.6.1. The Fork
- 20.6.2. The Child
- 20.7. Pitfalls
- 20.8. Delivery Agent F= Flags
- F=%
- F=%
- F=0 (zero)
- F=0 (zero)
- F=1 (one)
- F=1 (one)
- F=2
- F=2
- F=3
- F=3
- F=5
- F=5
- F=6
- F=6
- F=7
- F=7
- F=8
- F=8
- F=9
- F=9
- F=: (colon)
- F=: (colon)
- F=| (vertical bar)
- F=| (vertical bar)
- F=/ (forward slash)
- F=/ (forward slash)
- F=@
- F=@
- F=a
- F=a
- F=A
- F=A
- F=b
- F=b
- F=c
- F=c
- F=C
- F=C
- F=d
- F=d
- F=D
- F=D
- F=e
- F=e
- F=E
- F=E
- F=f
- F=f
- F=F
- F=F
- F=g
- F=g
- F=h
- F=h
- F=i
- F=i
- F=I (uppercase i)
- F=I (uppercase i)
- F=j
- F=j
- F=k
- F=k
- F=l (lowercase L)
- F=l (lowercase L)
- F=L
- F=L
- F=m
- F=m
- F=M
- F=M
- F=n
- F=n
- F=o
- F=o
- F=p
- F=p
- F=P
- F=P
- F=q
- F=q
- F=r
- F=r
- F=R
- F=R
- F=s
- F=s
- F=S
- F=S
- F=u
- F=u
- F=U
- F=U
- F=w
- F=w
- F=x
- F=x
- F=X
- F=X
- F=z
- F=z
- F=Z
- F=Z
- 21. The D (Define a Macro) Configuration Command
- 21.1. Preassigned sendmail Macros
- 21.1.1. Macros and the System Identity
- 21.2. Command-Line Definitions
- 21.2.1. Syntax of the Command-Line Macro's Text
- 21.3. Configuration-File Definitions
- 21.3.1. Syntax of the Configuration-File Macro's Text
- 21.3.2. Required Macros (V8.6 and Earlier)
- 21.4. Macro Names
- 21.4.1. Single-Character Names
- 21.4.2. Multicharacter Names
- 21.5. Macro Expansion: $ and $&
- 21.5.1. Macro Expansion Is Recursive
- 21.5.2. When Is a Macro Expanded?
- 21.5.3. Use Value As Is with $&
- 21.6. Macro Conditionals: $?, $|, and $.
- 21.6.1. Conditionals Can Nest
- 21.6.2. Macro Translations
- 21.7. Macros with mc Configuration
- 21.8. Pitfalls
- 21.9. Alphabetized sendmail Macros
- $_
- $_
- $a
- $a
- ${addr_type}
- ${addr_type}
- ${alg_bits}
- ${alg_bits}
- ${auth_authen}
- ${auth_authen}
- ${auth_author}
- ${auth_author}
- ${auth_ssf}
- ${auth_ssf}
- ${auth_type}
- ${auth_type}
- $b
- $b
- ${bodytype}
- ${bodytype}
- $B
- $B
- $c
- $c
- ${cert_issuer}
- ${cert_issuer}
- ${cert_md5}
- ${cert_md5}
- ${cert_subject}
- ${cert_subject}
- ${cipher}
- ${cipher}
- ${cipher_bits}
- ${cipher_bits}
- ${client_addr}
- ${client_addr}
- ${client_flags}
- ${client_flags}
- ${client_name}
- ${client_name}
- ${client_port}
- ${client_port}
- ${client_resolve}
- ${client_resolve}
- ${cn_issuer}
- ${cn_issuer}
- ${cn_subject}
- ${cn_subject}
- ${currHeader}
- ${currHeader}
- $C
- $C
- $d
- $d
- ${daemon_addr}
- ${daemon_addr}
- ${daemon_family}
- ${daemon_family}
- ${daemon_flags}
- ${daemon_flags}
- ${daemon_info}
- ${daemon_info}
- ${daemon_name}
- ${daemon_name}
- ${daemon_port}
- ${daemon_port}
- ${deliveryMode}
- ${deliveryMode}
- ${dsn_envid}
- ${dsn_envid}
- ${dsn_notify}
- ${dsn_notify}
- ${dsn_ret}
- ${dsn_ret}
- $D
- $D
- $e
- $e
- ${envid}
- ${envid}
- $E
- $E
- $f
- $f
- $F
- $F
- $g
- $g
- $h
- $h
- ${hdr_name}
- ${hdr_name}
- ${hdrlen}
- ${hdrlen}
- $H
- $H
- $i
- $i
- ${if_addr}
- ${if_addr}
- ${if_addr_out}
- ${if_addr_out}
- ${if_family}
- ${if_family}
- ${if_family_out}
- ${if_family_out}
- ${if_name}
- ${if_name}
- ${if_name_out}
- ${if_name_out}
- $j
- $j
- $k
- $k
- $l (lowercase L)
- $l (lowercase L)
- ${load_avg}
- ${load_avg}
- $L
- $L
- $m
- $m
- ${mail_addr}
- ${mail_addr}
- ${mail_host}
- ${mail_host}
- ${mail_mailer}
- ${mail_mailer}
- ${msg_size}
- ${msg_size}
- $M
- $M
- ${MTAHost}
- ${MTAHost}
- $n
- $n
- ${nrcpts}
- ${nrcpts}
- ${ntries}
- ${ntries}
- $o
- $o
- ${opMode}
- ${opMode}
- $p
- $p
- $q
- $q
- ${queue_interval}
- ${queue_interval}
- $r
- $r
- ${rcpt_addr}
- ${rcpt_addr}
- ${rcpt_host}
- ${rcpt_host}
- ${rcpt_mailer}
- ${rcpt_mailer}
- $R
- $R
- $s
- $s
- ${sendmailMTACluster}
- ${sendmailMTACluster}
- ${server_addr}
- ${server_addr}
- ${server_name}
- ${server_name}
- $S
- $S
- $t
- $t
- ${tls_version}
- ${tls_version}
- $u
- $u
- $U
- $U
- $v
- $v
- ${verify}
- ${verify}
- $V
- $V
- $w
- $w
- $W
- $W
- $x
- $x
- $X
- $X
- $y
- $y
- $Y
- $Y
- $z
- $z
- $Z
- $Z
- 21.1. Preassigned sendmail Macros
- 22. The C and F (Class Macro) Configuration Commands
- 22.1. Class Configuration Commands
- 22.1.1. The C Class Command
- 22.1.1.1. Append one class to another
- 22.1.2. The F Class Command
- 22.1.2.1. scanf(3) variations
- 22.1.3. Class Via Database Map Lookups
- 22.1.3.1. Class by replacing files with database lookups in mc macros
- 22.1.3.2. Class via ldap map lookups
- 22.1.1. The C Class Command
- 22.2. Access Classes in Rules
- 22.2.1. Matching Any in a Class: $=
- 22.2.2. Matching Any Token Not in a Class: $~
- 22.2.3. Backup and Retry
- 22.2.4. Class Name Hashing Algorithm
- 22.3. Classes with mc Configuration
- 22.4. Internal Class Macros
- 22.5. Pitfalls
- 22.6. Alphabetized Class Macros
- $=b
- $=b
- $={checkMIMEFieldHeaders}
- $={checkMIMEFieldHeaders}
- $={checkMIMEHeaders}
- $={checkMIMEHeaders}
- $={checkMIMETextHeaders}
- $={checkMIMETextHeaders}
- $=e
- $=e
- $=k
- $=k
- $=m
- $=m
- $=n
- $=n
- $={persistentMacros}
- $={persistentMacros}
- $=q
- $=q
- $={ResOk}
- $={ResOk}
- $=R
- $=R
- $={tls}
- $={tls}
- $=s
- $=s
- $=t
- $=t
- $=w
- $=w
- 22.1. Class Configuration Commands
- 23. The K (Database-Map) Configuration Command
- 23.1. Enable at Compile Time
- 23.1.1. Create Files with makemap
- 23.2. The K Configuration Command
- 23.2.1. The name
- 23.2.2. The type
- 23.2.3. The args
- 23.3. The K Command switches
- -A
- -A
- -a
- -a
- -D
- -D
- -f
- -f
- -k
- -k
- -l (lowercase L)
- -l (lowercase L)
- -m
- -m
- -N
- -N
- -O
- -O
- -o
- -o
- -q
- -q
- -S
- -S
- -T
- -T
- -t
- -t
- -v
- -v
- -z
- -z
- 23.4. Use $( and $) in Rules
- 23.4.1. Specify a Default with $:
- 23.4.2. Specify Numbered Substitution with $@
- 23.4.3. $[ and $]: A Special Case
- 23.5. Database Maps with mc Configuration
- 23.5.1. Set a Default Database-Map Type for Features
- 23.6. Pitfalls
- 23.7. Alphabetized Database-Map Types
- arith
- arith
- btree
- btree
- bestmx
- bestmx
- dbm
- dbm
- dequote
- dequote
- dns
- dns
- hash
- hash
- hesiod
- hesiod
- host
- host
- implicit
- implicit
- ldap (was ldapx)
- ldap (was ldapx)
- macro
- macro
- netinfo
- netinfo
- nis
- nis
- nisplus
- nisplus
- nsd
- nsd
- null
- null
- ph
- ph
- program
- program
- regex
- regex
- sequence
- sequence
- stab
- stab
- switch
- switch
- syslog
- syslog
- text
- text
- userdb
- userdb
- user
- user
- 23.1. Enable at Compile Time
- 24. The O (Options) Configuration Command
- 24.1. Overview
- 24.2. Command-Line Options
- 24.2.1. Pre-V8.7 Command-Line Option Declarations
- 24.2.2. Multicharacter Command-Line Options
- 24.2.2.1. Multicharacter name shorthand
- 24.2.3. Appropriateness of Options
- 24.2.4. Options That Are Safe
- 24.3. Configuration File Options
- 24.3.1. Pre-V8.7 Configuration File Declarations
- 24.3.2. V8.7 Configuration File Declarations
- 24.4. Options in the mc File
- 24.5. Alphabetical Table of All Options
- 24.6. Option Argument Types
- 24.7. Interrelating Options
- 24.7.1. File Locations
- 24.7.2. The Queue
- 24.7.3. Managing Aliases
- 24.7.4. Controlling Machine Load
- 24.7.5. Connection Caching
- 24.7.6. Problem Solving
- 24.7.7. Other Options
- 24.8. Pitfalls
- 24.9. Alphabetized Options
- AliasFile
- AliasFile
- AliasWait
- AliasWait
- AllowBogusHELO
- AllowBogusHELO
- AuthMaxBits
- AuthMaxBits
- AuthMechanisms
- AuthMechanisms
- AuthOptions
- AuthOptions
- AutoRebuildAliases
- AutoRebuildAliases
- BadRcptThrottle
- BadRcptThrottle
- BlankSub
- BlankSub
- CACertFile
- CACertFile
- CACertPath
- CACertPath
- CheckAliases
- CheckAliases
- CheckpointInterval
- CheckpointInterval
- ClassFactor
- ClassFactor
- ClientCertFile
- ClientCertFile
- ClientKeyFile
- ClientKeyFile
- ClientPortOptions
- ClientPortOptions
- ColonOkInAddr
- ColonOkInAddr
- ConnectionCacheSize
- ConnectionCacheSize
- ConnectionCacheTimeout
- ConnectionCacheTimeout
- ConnectionRateThrottle
- ConnectionRateThrottle
- ConnectOnlyTo
- ConnectOnlyTo
- ControlSocketName
- ControlSocketName
- DaemonPortOptions
- DaemonPortOptions
- DataFileBufferSize
- DataFileBufferSize
- DeadLetterDrop
- DeadLetterDrop
- DefaultAuthInfo
- DefaultAuthInfo
- DefaultCharSet
- DefaultCharSet
- DefaultUser
- DefaultUser
- DelayLA
- DelayLA
- DeliverByMin
- DeliverByMin
- DeliveryMode
- DeliveryMode
- DHParameters
- DHParameters
- DialDelay
- DialDelay
- DirectSubmissionModifiers
- DirectSubmissionModifiers
- DontBlameSendmail
- DontBlameSendmail
- DontExpandCnames
- DontExpandCnames
- DontInitGroups
- DontInitGroups
- DontProbeInterfaces
- DontProbeInterfaces
- DontPruneRoutes
- DontPruneRoutes
- DoubleBounceAddress
- DoubleBounceAddress
- EightBitMode
- EightBitMode
- ErrorHeader
- ErrorHeader
- ErrorMode
- ErrorMode
- FallbackMXhost
- FallbackMXhost
- FastSplit
- FastSplit
- ForkEachJob
- ForkEachJob
- ForwardPath
- ForwardPath
- HelpFile
- HelpFile
- HoldExpensive
- HoldExpensive
- HostsFile
- HostsFile
- HostStatusDirectory
- HostStatusDirectory
- IgnoreDots
- IgnoreDots
- InputMailFilters
- InputMailFilters
- LDAPDefaultSpec
- LDAPDefaultSpec
- LogLevel
- LogLevel
- MailboxDatabase
- MailboxDatabase
- MatchGECOS
- MatchGECOS
- MaxAliasRecursion
- MaxAliasRecursion
- MaxDaemonChildren
- MaxDaemonChildren
- MaxHeadersLength
- MaxHeadersLength
- MaxHopCount
- MaxHopCount
- MaxMessageSize
- MaxMessageSize
- MaxMimeHeaderLength
- MaxMimeHeaderLength
- MaxQueueChildren
- MaxQueueChildren
- MaxQueueRunSize
- MaxQueueRunSize
- MaxRecipientsPerMessage
- MaxRecipientsPerMessage
- MaxRunnersPerQueue
- MaxRunnersPerQueue
- MeToo
- MeToo
- Milter
- Milter
- MinFreeBlocks
- MinFreeBlocks
- MinQueueAge
- MinQueueAge
- MustQuoteChars
- MustQuoteChars
- NiceQueueRun
- NiceQueueRun
- NoRecipientAction
- NoRecipientAction
- OldStyleHeaders
- OldStyleHeaders
- OperatorChars
- OperatorChars
- PidFile
- PidFile
- PostmasterCopy
- PostmasterCopy
- PrivacyOptions
- PrivacyOptions
- ProcessTitlePrefix
- ProcessTitlePrefix
- QueueDirectory
- QueueDirectory
- QueueFactor
- QueueFactor
- QueueFileMode
- QueueFileMode
- QueueLA
- QueueLA
- QueueSortOrder
- QueueSortOrder
- QueueTimeout
- QueueTimeout
- RandFile
- RandFile
- RecipientFactor
- RecipientFactor
- RefuseLA
- RefuseLA
- ResolverOptions
- ResolverOptions
- RetryFactor
- RetryFactor
- RrtImpliesDsn
- RrtImpliesDsn
- RunAsUser
- RunAsUser
- SafeFileEnvironment
- SafeFileEnvironment
- SaveFromLine
- SaveFromLine
- SendMimeErrors
- SendMimeErrors
- ServerCertFile
- ServerCertFile
- ServerKeyFile
- ServerKeyFile
- ServiceSwitchFile
- ServiceSwitchFile
- SevenBitInput
- SevenBitInput
- SharedMemoryKey
- SharedMemoryKey
- SingleLineFromHeader
- SingleLineFromHeader
- SingleThreadDelivery
- SingleThreadDelivery
- SmtpGreetingMessage
- SmtpGreetingMessage
- StatusFile
- StatusFile
- SuperSafe
- SuperSafe
- TempFileMode
- TempFileMode
- Timeout
- Timeout
- TimeZoneSpec
- TimeZoneSpec
- TLSSrvOptions
- TLSSrvOptions
- TrustedUser
- TrustedUser
- TryNullMXList
- TryNullMXList
- UnixFromLine
- UnixFromLine
- UnsafeGroupWrites
- UnsafeGroupWrites
- UseErrorsTo
- UseErrorsTo
- UseMSP
- UseMSP
- UserDatabaseSpec
- UserDatabaseSpec
- Verbose
- Verbose
- XscriptFileBufferSize
- XscriptFileBufferSize
- M
- M
- 25. The H (Headers) Configuration Command
- 25.1. Overview
- 25.2. Header Names
- 25.3. Header Field Contents
- 25.3.1. Macros in the Header Field
- 25.3.2. Escape Character in the Header Field
- 25.3.3. Quoted Strings in the Header Field
- 25.3.4. Comments in the Header Field
- 25.3.4.1. Balancing special characters
- 25.4. ?flags? in Header Definitions
- 25.4.1. Macros Force Header Inclusion
- 25.4.2. Macro-Included Headers Don't Survive Queueing
- 25.5. Rules Check Header Contents
- 25.5.1. Use $>+ to Include RFC2822 Comments
- 25.5.1.1. Check the header's length
- 25.5.2. H* a Default for All Headers
- 25.5.3. The check_eoh Rule Set
- 25.5.3.1. Check for missing headers
- 25.5.1. Use $>+ to Include RFC2822 Comments
- 25.6. Header Behavior in conf.c
- 25.6.1. H_ACHECK Header Flag (V5 and above)
- 25.6.1.1. Replace headers with H_ACHECK
- 25.6.2. H_BCC Header Flag (V8.7 and above)
- 25.6.3. H_BINDLATE Header Flag (V8.10 and above)
- 25.6.4. H_CHECK Header Flag (V5 and above)
- 25.6.5. H_CTE Header Flag (V8.7 and above)
- 25.6.6. H_CTYPE Header Flag (V8.7 and above)
- 25.6.7. H_DEFAULT Header Flag (V5 and above)
- 25.6.8. H_ENCODABLE Header Flag (V8.8 and above)
- 25.6.9. H_EOH Header Flag (V5 and above)
- 25.6.10. H_ERRORSTO (Was H_ERRSTO) (V8.7 and above)
- 25.6.11. H_FORCE Header Flag (V5 and above)
- 25.6.12. H_FROM Header Flag (V5 and above)
- 25.6.13. H_RCPT Header Flag (V5 and above)
- 25.6.14. H_RECEIPTTO Header Flag (V8.7 and above)
- 25.6.15. H_RESENT Header Flag (V5 and above)
- 25.6.16. H_STRIPCOMM Header Flag (V8.10 and above)
- 25.6.17. H_TRACE Header Flag (V5 and above)
- 25.6.18. H_USER Header Flag (V8.11 and above)
- 25.6.19. H_VALID Header Flag (V5 and above)
- 25.6.1. H_ACHECK Header Flag (V5 and above)
- 25.7. Headers and mc Configuration
- 25.8. Headers by Category
- 25.8.1. Recommended Headers
- 25.8.2. Sender Headers
- 25.8.3. Recipient Headers
- 25.8.4. Identification and Control Headers
- 25.8.5. Date and Trace Headers
- 25.8.6. Other Headers
- 25.8.7. MIME Headers
- 25.9. Forwarding with Resent Headers
- 25.9.1. Remove and Re-create the From: Header
- 25.10. Precedence
- 25.10.1. The P Configuration Command
- 25.11. Pitfalls
- 25.12. Alphabetized Header Reference
- Apparently-From:
- Apparently-From:
- Apparently-To:
- Apparently-To:
- Auto-Submitted:
- Auto-Submitted:
- Bcc:
- Bcc:
- Cc:
- Cc:
- Comments:
- Comments:
- Content-Description:
- Content-Description:
- Content-Disposition:
- Content-Disposition:
- Content-Id:
- Content-Id:
- Content-Length:
- Content-Length:
- Content-Transfer-Encoding:
- Content-Transfer-Encoding:
- Content-Type:
- Content-Type:
- Date:
- Date:
- Delivered-To:
- Delivered-To:
- Disposition-Notification-To:
- Disposition-Notification-To:
- Encrypted:
- Encrypted:
- Errors-To:
- Errors-To:
- From:
- From:
- Full-Name:
- Full-Name:
- In-Reply-To:
- In-Reply-To:
- Keywords:
- Keywords:
- Mail-From:
- Mail-From:
- Message-ID:
- Message-ID:
- Message:
- Message:
- MIME-Version:
- MIME-Version:
- Posted-Date:
- Posted-Date:
- Precedence:
- Precedence:
- Priority:
- Priority:
- Received:
- Received:
- References:
- References:
- Reply-To:
- Reply-To:
- Return-Path:
- Return-Path:
- Return-Receipt-To:
- Return-Receipt-To:
- Sender:
- Sender:
- Subject:
- Subject:
- Text:
- Text:
- To:
- To:
- Via:
- Via:
- X-Authentication-Warning:
- X-Authentication-Warning:
- X400-Received:
- X400-Received:
- 17. Configuration File Overview
- IV. Appendixes
- A. The mc Configuration Macros and Directives
- B. What's New Since V8.8
- B.1. Chapter 1
- B.2. Chapter 2
- B.3. Chapter 3
- B.4. Chapter 4
- B.5. Chapter 5
- B.6. Chapter 6
- B.7. Chapter 7
- B.8. Chapter 8
- B.9. Chapter 9
- B.10. Chapter 10
- B.11. Chapter 11
- B.12. Chapter 12
- B.13. Chapter 13
- B.14. Chapter 14
- B.15. Chapter 15
- B.16. Chapter 16
- B.17. Chapter 17
- B.18. Chapter 18
- B.19. Chapter 19
- B.20. Chapter 20
- B.21. Chapter 21
- B.22. Chapter 22
- B.23. Chapter 23
- B.24. Chapter 24
- B.25. Chapter 25
- C. Error Message Reference
- C.1. Where Errors Are Printed
- C.2. Alphabetized Error Reference
- D. The checkcompat( ) Cookbook
- D.1. How checkcompat( ) Works
- D.1.1. Arguments Passed to checkcompat( )
- D.1.2. Global Variables
- D.2. Reject Bad Body Lines
- D.3. Reject Excess 8-Bit Characters
- D.1. How checkcompat( ) Works
- E. A Map to Tutorial Information
- E.1. How to Use This Guide
- E.2. The Guide
- E.2.1. Tutorial Introduction
- E.2.2. Tutorial Guide to Building and Installing sendmail
- E.2.3. Tutorial Guide to Rules and Rule Sets
- E.2.4. Tutorial Guide to the Configuration File
- E.2.5. Tutorial Guide to Configuring with m4
- Bibliography
- Requests for Comments
- Publications and Postings
- About the Author
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly