上卷 Perface I: A Tutorial 1: Introduction 1.1 MUA Versus MTA 1.2 Why IS sendmail So Complex? 1.3 Three Important Parts 1.4 Run sendmailby Hand 1.5 The Header 1.6 The Body 1.7 The Envelope 1.8 Things to Try 2: Have a V8 2.1 Get the Source 2.2 Read the Documents 2.3 What’s What in src 2.4 Preliminaries 2.5 Build 2.6 Test It 2.7 Things to Try 3: The Roles of sendmail 3.1 Role in the Filesystem 3.2 Role in Local Delivery 3.3 Role in Network Transport 3.4 Role as a Daemon 3.5 Thins to Try 4: How to Run sendmail 4.1 Become a Mode(-b) 4.2 Verbose(-v) 4.3 Debugging(-d) 4.4 Things to Try 5: The sendmail.cf file 5.1 Overview 5.2 The Minimal File 5.3 A Quick Tour 5.4 Things to Try 6: The Mail Hub and Delivery Agents 6.1 The client.cf File 6.2 Define a Mail Delivery Agent 6.3 The Local Delivery Agent 6.4 Add the Missing Parts to Mhub 6.5 Things to Try 7: Macros 7.1 Overview 7.2 Defining Macros 7.3 Prdedfined Macros 7.4 Things to Try 8: Addresses and Rules 8.1 A Fictional Network 8.2 Why rules? 8.3 Rule Sets 8.4 Rules 8.5 The Workspace 8.6 The Flow of Addresses Through Rules 8.7 Wildcard Operators 9: Rule Set 0 9.1 Introducing Rule Set 0 9.2 The RHS Triple 9.3 Testing Rule Set 0 9.4 The error Delivery Agent 9.5 Things to Try 10: Rule Set 3 10.1 Why Preprocess? 10.2 Rule Set 3 10.3 Missing Addresses 10.4 Nested Angle Brackets 10.5 Details of Rule Flow 10.6 Things to Try 11: Rule Sets 1and S= 11.1 flow of the Sender’s Address 11.2 Rule Set S= 11.3 All Mail from the Hub 11.4 Rule Set Hubset 11.5 Testing So Far 11.6 Handling user@thishost 11.7 Rule Set 1 11.8 Things to Try 12: Class 12.1 The Class Command 12.2 The File Form of Class 12.3 Things to Try 13: Setting Options 13.1 Options:An Overview 13.2 Required Options 13.3 Testing the Options 13.4 Sending Mail 13.5 Things to Try 14: Headers,Precedence,and Trust 14.1 Headers 14.2 Headers Versus Delivery Agent Flags 14.3 Headers Learned So Far 14.4 Precedence 14.5 Sending Real Mail 14.6 Tristed User 14.7 Things to Try 15: Install and Test the client.cf File 15.1 Test the Configuration File 15.2 The Real Queue Directory 15.3 MX Records 15.4 Hub Accepts Mail for Client 15.5 Prevent the Daemon from Running 15.6 Install the client.cf File 15.7 Things to Try 16: The null.mc File and m4 16.1 The cf/cf Directory 16.2 The null.mc File 16.3 Run m4 16.4 Test the Result 16.5 Qualify All Addresses? 16.6 Things to Try 17: The Hub’s Complex Rules 17.1 Rule set 3 17.2 Rule set 96 17.3 Rule set 0 17.4 Rule set 4 17.5 Things to Try II: Build and Install 18: Compile and Install sendmail 18.1 To Use or Not to Use 18.2 Vendor Versus Compiling 18.3 Obtain the Source 18.4 Tuning Makefile 18.5 Run Make 18.6 Install sendmail 18.7 Pitfalls 18.8 Alphabetized Reference 19: V8 m4 Configuration 19.1 The m4 Preprocessor 19.2 Build with m4 19.3 The Minimal mc File 19.4 m4 Macros by Function 19.5 Pitfalls 19.6 Alphabetized m4 Macros 20: The cbeckcompat O Cookbook 20.1 How checkcompat O Works 20.2 The Cookbook 20.3 Alphabetized V8.8 Subroutines Ⅲ: Administration 21: DNS and sendmail 21.1 Overview 21.2 How sendmail Uses DNS 21.3 Set Up MX Records 21.4 How to Use nslookup 21.5 Prepare for Disaster 21.6 Pitfalls 22: Security 22.1 Why root? 22.2 The Environment 22.3 SMTP Probes 22.4 The Configuration File 22.5 Permissions 22.6 The Aliases File 22.7 Forged Mail 22.8 Security Features 22.9 Pitfalls 23: The Queue 23.1 Overview of the Queue 23.2 Parts of a Queued Message 23.3 A Bogus qf File(V8 only):Qf 23.4 Printing the Queue 23.5 How the Queue Is Processed 23.6 Cause the Queue to Be Processed 23.7 Process Alternate Queue 23.8 Pitfalls 23.9 The qf File Internals 24: Aliases 24.1 The aliases(5)File 24.2 Forms of Alias Delivery 24.3 Write a Delivery Agent Script 24.4 Special Aliases 24.5 The Aliases Database 24.6 Prevent Aliasing with-n 24.7 Pitfalls 25: Mailing Lists and ~/.forward 25.1 Internal Mailing Lists 25.2 :include:Mailing Lists 25.3 Defining a Mailing List Ownet 25.4 Exploder Mailing Lists 25.5 Problems with Mailing Lists 25.6 Packages That Help 25.7 The User’s~/.forward File 25.8 Pitfalls 26: Logging and Statistics 26.1 Logging with syslog 26.2 Statistics 26.3 Signaling the Daemon 26.4 Log Transactions with-X 26.5 Pitfalls 下卷 Ⅳ: Reference 27: The Configuration File 27.1 Overall Syntax 27.2 Comments 27.3 V8 Comments 27.4 Continuation Lines 27.5 The V Configuration Command 27.6 Pitfalls 28: Rules 28.1 Overview 28.2 Todinizing Rule 28.3 The Workspace 28.4 The Behavior of a Rule 28.5 The LHS 28.6 The RHS 28.7 Pitfalls 29: Rule Sets 29.1 The S Configuration Command 29.2 Rule Sets and m4 29.3 The Sequence of Rule Sets 29.4 Rule Set 3 29.5 Rule set 4 29.6 Rule set 0 29.7 Rule set 5 29.8 Rule set 2 29.9 Rule set 1 29.10 The check_...Rule Sets 29.11 Pitfalls 30: Delivery Agents 30.1 Configuration File Syntax 30.2 The Symbolic Name 30.3 m4 Configuration Syntax 30.4 The Equates 30.5 Internally Dfined Names 30.6 How Executed 30.7 Pitfalls 30.8 Alphabetized F= Flags 31: Defined Macros 31.1 Preassigned Macros 31.2 Command-Line Definitions 31.3 Configuration File Definitions 31.4 Macro Names 31.5 Macro Expansion:$ and $& 31.6 Macro Conditionals:$?,$|,and $ 31.7 Categories of Macros 31.8 Macros with the m4 Technique 31.9 Pitfalls 31.10 Alphabetized Reference 32: Class Macros 32.1 Class Configuration Commands 32.2 Access Class in Rules 32.3 Class with m4 32.4 Pitfalls 32.5 Alphabetized Reference 33: Database Macros 33.1 Enable at Compile Time 33.2 create Files with makemap 33.3 The K Configuration Command 33.4 Use Maps with $(and $)in Rules 33.5 The User Database 33.6 Database Maps and m4 33.7 Pitfalls 33.8 Alphabetized Reference 34: Options 34.1 Command-Line Options 34.2 Configuration-File Options 34.3 Configuring with V8 m4 Options 34.4 Alphabetical Table of All Options 34.5 Option Argument Types 34.6 Interrelating Options 34.7 Pitfalls 34.8 Alphabetized Rference 35: Headers 35.1 The H Configuration Command 35.2 Header Names 35.3 Header Field Contents 35.4 ?flags? in Header Definitions 35.5 Header Behavior in conf.c 35.6 Headers by Category 35.7 Forwarding with Resent-Headers 35.8 Precedence 35.9 Pitfalls 35.10 Alphabetized Reference 36: The Command Line 36.1 Alternative argv[0] Names 36.2 Command-Line Switches 36.3 List of Recipient Addresses 36.4 Processing the Command Line 36.5 sendmail’s exit() Status 36.6 Pitfalls 36.7 Alphabetized Reference 37: Debugging with-d 37.1 The Syntax of -d 37.2 Debugging Behavior 37.3 Iterpreting the Output 37.4 Pitfalls 37.5 Reference in Numerical Order 38: Rule-Set Testing with-bt 38.1 Overview 38.2 Configuration Lines 38.3 Dump a Macro 38.4 Show an Item 38.5 Complex Actions Made Simple 38.6 Process-Specified Addresses 38.7 Add Debugging for Detail 38.8 Batch Rule-Set Testing 38.9 Pitfalls V: Appendixes A: The client.cf File B: Host Status File Internals C: The Berkeley DB Database D: Sun Enhancements Bibliography Index