Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Postfix: The Definitive Guide
Foreword
Preface
Audience
Organization
Conventions Used in This Book
Comments and Questions
Acknowledgments
1. Introduction
1.1. Postfix Origins and Philosophy
1.2. Email and the Internet
1.2.1. Email Components
1.2.2. Major Email Protocols
1.2.2.1. SMTP and email submission
1.2.2.2. POP/IMAP and mailbox access
1.3. The Role of Postfix
1.4. Postfix Security
1.4.1. Modular Design
1.4.2. Shells and Processes
1.4.3. Security by Design
1.5. Additional Information and How to Obtain Postfix
2. Prerequisites
2.1. Unix Topics
2.1.1. Login Names and UID Numbers
2.1.2. Pseudo-Accounts
2.1.3. Standard Input/Standard Output
2.1.4. The Superuser
2.1.5. Command Prompts
2.1.6. Long Lines
2.1.7. ManPages
2.2. Email Topics
2.2.1. RFCs
2.2.2. Email Agents
2.2.3. The Postmaster
2.2.4. Reject or Bounce
2.2.5. Envelope Addresses and Message Headers
2.2.6. Local Parts of Email Addresses
2.2.7. Email Message Format
2.2.7.1. RFC 2822 messages
2.2.8. The SMTP Protocol
3. Postfix Architecture
3.1. Postfix Components
3.2. How Messages Enter the Postfix System
3.2.1. Local Email Submission
3.2.2. Email from the Network
3.2.3. Postfix Email Notifications
3.2.4. Email Forwarding
3.3. The Postfix Queue
3.4. Mail Delivery
3.4.1. Local Delivery
3.4.2. Virtual Alias Messages
3.4.3. Virtual Mailbox Messages
3.4.4. Relay Messages
3.4.5. Other Messages
3.4.6. Other Delivery Agents
3.4.6.1. Delivery via LMTP
3.4.6.2. Pipe delivery
3.5. Tracing a Message Through Postfix
4. General Configuration and Administration
4.1. Starting Postfix the First Time
4.2. Configuration Files
4.2.1. The main.cf Configuration File
4.2.1.1. Line continuation
4.2.1.2. Configuration variables
4.2.1.3. Multiple values
4.2.2. Lookup Tables
4.2.2.1. Lookup table format
4.2.2.2. Database formats
4.2.2.3. Search order
4.2.2.4. Lookup tables and simple lists
4.2.2.5. Regular expression tables
4.2.3. Other Formats
4.2.4. Alias Files
4.2.4.1. Locating aliases
4.2.4.2. Building alias database files
4.2.4.3. Alias file format
4.2.4.4. Alias restrictions
4.2.4.5. Important aliases
4.3. Important Configuration Considerations
4.3.1. Configuring Your MTA Identity
4.3.1.1. myhostname and mydomain
4.3.1.2. myorigin
4.3.1.3. mydestination
4.3.2. Relay Control
4.3.2.1. Restricting relay access
4.3.2.2. SMTP authentication
4.3.2.3. Dynamic IP solutions
4.3.2.4. Certificate authentication
4.4. Administration
4.4.1. Logging
4.4.2. Starting, Stopping, and Reloading Postfix
4.4.3. Running Postfix at System Startup
4.4.3.1. Do it yourself
4.4.4. Queue Management
4.5. master.cf
4.6. Receiving Limits
4.7. Rewriting Addresses
4.7.1. Canonical Addresses
4.7.2. Masquerading Hostnames
4.7.3. Relocated Users
4.7.4. Unknown Users
4.8. chroot
4.9. Documentation
5. Queue Management
5.1. How qmgr Works
5.1.1. Deferred Mail
5.1.2. Queue Scheduling
5.1.3. Message Delivery
5.1.4. Corrupt Messages
5.1.5. Error Notifications
5.2. Queue Tools
5.2.1. Listing the Queue
5.2.2. Deleting Messages
5.2.3. Holding Messages
5.2.4. Requeuing Messages
5.2.5. Displaying Messages
5.2.6. Flushing Messages
6. Email and DNS
6.1. DNS Overview
6.2. Email Routing
6.3. Postfix and DNS
6.3.1. DNS and Sending Mail
6.3.1.1. Configuration options
6.3.1.2. Reverse PTR records
6.3.2. DNS and Receiving Mail
6.4. Common Problems
7. Local Delivery and POP/IMAP
7.1. Postfix Delivery Transports
7.2. Message Store Formats
7.2.1. The Mbox Format
7.2.2. The Maildir Format
7.2.3. Mbox Versus Maildir
7.3. Local Delivery
7.3.1. .forward Files
7.3.2. Alias Deliveries
7.3.3. Mailbox Delivery
7.4. POP and IMAP
7.4.1. POP Versus IMAP
7.4.2. Postfix and POP/IMAP Servers
7.5. Local Mail Transfer Protocol
7.5.1. Postfix and Cyrus IMAP
7.5.2. A Postfix and Cyrus IMAP Example
8. Hosting Multiple Domains
8.1. Shared Domains with System Accounts
8.2. Separate Domains with System Accounts
8.3. Separate Domains with Virtual Accounts
8.3.1. Mailbox File Ownership
8.3.2. Virtual Aliases
8.3.3. Catchall Addresses
8.3.3.1. Virtual mailbox catchall
8.3.3.2. Virtual alias catchall
8.4. Separate Message Store
8.5. Delivery to Commands
8.5.1. Configuring a Virtual Auto-Responder
8.5.2. Configuring a Virtual Mailing List Manager
9. Mail Relaying
9.1. Backup MX
9.1.1. Relay Recipients
9.1.2. Fast Flushing
9.2. Transport Maps
9.2.1. Postponing Mail Delivery
9.2.1.1. Deferring mail relay
9.2.1.2. Deferring delivery
9.3. Inbound Mail Gateway
9.4. Outbound Mail Relay
9.5. UUCP, Fax, and Other Deliveries
10. Mailing Lists
10.1. Simple Mailing Lists
10.1.1. Mailing-List Owners
10.1.2. Separate List Files
10.1.3. Additional Alias Files
10.1.4. Creating a Simple Mailing List
10.1.5. Testing Your List
10.2. Mailing-List Managers
10.2.1. Majordomo
10.2.1.1. Creating a Majordomo list
10.2.1.2. Potential problems
10.2.2. Mailman
10.2.2.1. Creating a Mailman list
11. Blocking Unsolicited Bulk Email
11.1. The Nature of Spam
11.2. The Problem of Spam
11.3. Open Relays
11.4. Spam Detection
11.4.1. Client-Based Spam Detection
11.4.1.1. DNS-based blacklists
11.4.2. Content-Based Spam Detection
11.4.3. Detection Difficulties
11.5. Anti-Spam Actions
11.6. Postfix Configuration
11.7. Client-Detection Rules
11.7.1. The SMTP Conversation (Briefly)
11.7.2. Listing Restrictions
11.7.2.1. How restrictions work
11.7.2.2. Testing new restrictions
11.7.2.3. A simple example
11.7.3. Restriction Definitions
11.7.3.1. Access maps
11.7.3.2. Other client-checking restrictions
11.7.3.3. Strict syntax restrictions
11.7.3.4. DNS restrictions
11.7.3.5. Real-time blacklists
11.7.3.6. Generic restrictions
11.7.4. Tracing a Restriction List
11.8. Strict Syntax Parameters
11.9. Content-Checking
11.9.1. Content Checking Configuration
11.9.2. Content Checking Actions
11.9.3. Comparing Patterns
11.10. Customized Restriction Classes
11.10.1. Sample Restriction Classes
11.11. Postfix Anti-Spam Example
12. SASL Authentication
12.1. SASL Overview
12.1.1. Choosing an Authentication Mechanism
12.1.2. Choosing an Authentication Framework
12.2. Postfix and SASL
12.3. Configuring Postfix for SASL
12.3.1. Specifying a Framework
12.3.1.1. Unix passwords
12.3.1.2. SASL passwords
12.3.2. Configuring Postfix
12.3.2.1. Enabling SASL
12.3.2.2. Preventing sender spoofing
12.3.2.3. Permitting authenticated users
12.3.2.4. Specifying mechanisms
12.3.3. Configuration Summary
12.4. Testing Your Authentication Configuration
12.5. SMTP Client Authentication
12.5.1. Procedure to Enable SMTP Client Authentication
13. Transport Layer Security
13.1. Postfix and TLS
13.2. TLS Certificates
13.2.1. Becoming a CA
13.2.2. Generating Server Certificates
13.2.3. Installing CA Certificates
13.2.4. Postfix/TLS Configuration
13.2.5. Postfix/TLS Configuration Summary
13.2.6. Requiring Client-Side Certificates
13.2.6.1. Creating client certificates
13.2.6.2. Configuring client-side certificate authentication
13.2.7. Configuring TLS/SMTP Client
14. Content Filtering
14.1. Command-Based Filtering
14.1.1. Configuration
14.2. Daemon-Based Filtering
14.2.1. Configuration
14.2.1.1. Creating a pseudoaccount
14.2.1.2. Installing a content filter
14.2.1.3. Configuring additional Postfix components
14.2.1.4. Turning on filtering
14.2.2. Daemon-Based Filter Example
14.3. Other Considerations
15. External Databases
15.1. MySQL
15.1.1. MySQL Configuration
15.1.1.1. MySQL parameters
15.1.2. MySQL Example
15.1.2.1. Configuring local_recipient_maps
15.1.2.2. Configuring alias_maps
15.1.2.3. Configuring virtual domains
15.2. LDAP
15.2.1. LDAP Configuration
15.2.2. LDAP Example
15.2.2.1. Configuring local_recipient_maps
15.2.2.2. Configuring transport_maps
A. Configuration Parameters
A.1. Postfix Parameter Reference
2bounce_notice_recipient
access_map_reject_code
alias_maps
allow_mail_to_files
allow_percent_hack
alternate_config_directories
append_at_myorigin
authorized_verp_clients
berkeley_db_read_buffer_size
biff
body_checks_size_limit
bounce_service_name
canonical_maps
command_directory
command_time_limit
content_filter
daemon_timeout
debug_peer_list
default_destination_concurrency_limit
default_extra_recipient_limit
default_process_limit
default_recipient_limit
default_verp_delimiters
defer_service_name
delay_notice_recipient
deliver_lock_attempts
disable_dns_lookups
disable_mime_output_conversion
disable_vrfy_command
double_bounce_sender
empty_address_recipient
error_service_name
export_environment
fallback_relay
fast_flush_domains
fast_flush_refresh_time
fork_attempts
forward_expansion_filter
hash_queue_depth
header_address_token_limit
header_size_limit
home_mailbox
ignore_mx_lookup_error
in_flow_delay
initial_destination_concurrency
ipc_idle
line_length_limit
lmtp_connect_timeout
lmtp_data_init_timeout
lmtp_lhlo_timeout
lmtp_quit_timeout
lmtp_rset_timeout
lmtp_tcp_port
local_destination_concurrency_limit
local_recipient_maps
luser_relay
mail_owner
mail_spool_directory
mailbox_command
mailbox_delivery_lock
mailbox_transport
manpage_directory
masquerade_domains
max_idle
maximal_backoff_time
message_size_limit
mime_header_checks
minimal_backoff_time
mydomain
mynetworks
myorigin
newaliases_path
notify_classes
parent_domain_matches_subdomains
pickup_service_name
process_id_directory
proxy_interfaces
qmgr_clog_warn_time
qmgr_message_active_limit
qmgr_message_recipient_minimum
qmqpd_error_delay
queue_directory
queue_run_delay
rbl_reply_maps
recipient_canonical_maps
reject_code
relay_domains_reject_code
relay_transport
relocated_maps
resolve_dequoted_address
sample_directory
sendmail_path
setgid_group
showq_service_name
smtp_bind_address
smtp_data_done_timeout
smtp_data_xfer_timeout
smtp_destination_recipient_limit
smtp_helo_timeout
smtp_mail_timeout
smtp_pix_workaround_delay_time
smtp_quit_timeout
smtp_rcpt_timeout
smtp_skip_5xx_greeting
smtpd_banner
smtpd_data_restrictions
smtpd_error_sleep_time
smtpd_expansion_filter
smtpd_helo_required
smtpd_history_flush_threshold
smtpd_noop_commands
smtpd_recipient_limit
smtpd_restriction_classes
smtpd_soft_error_limit
soft_bounce
strict_7bit_headers
strict_8bitmime_body
strict_rfc821_envelopes
swap_bangpath
syslog_name
transport_retry_time
undisclosed_recipients_header
unknown_client_reject_code
unknown_local_recipient_reject_code
unknown_virtual_alias_reject_code
verp_delimiter_filter
virtual_alias_maps
virtual_mailbox_base
virtual_mailbox_limit
virtual_mailbox_maps
virtual_transport
B. Postfix Commands
C. Compiling and Installing Postfix
C.1. Obtaining Postfix
C.2. Postfix Compiling Primer
C.2.1. Compiler Options
C.2.2. Linker Options
C.3. Building Postfix
C.3.1. Customizing Your Build
C.3.2. Modifying Postfix Defaults
C.4. Installation
C.4.1. Upgrading
C.5. Compiling Add-on Packages
C.5.1. Cyrus SASL
C.5.2. TLS
C.5.3. MySQL
C.5.4. LDAP
C.6. Common Problems
C.6.1. Compile Time
C.6.2. Runtime
C.7. Wrapping Things Up
D. Frequently Asked Questions
Index
About the Author
Colophon
Copyright
← Prev
Back
Next →
← Prev
Back
Next →