| Acknowledgments | p. xiii |
| About the Author | p. xv |
| About the Technical Reviewer | p. xvii |
| Introduction | p. xix |
| Introducing qmail | p. 1 |
| Overview | p. 2 |
| What Is qmail? | p. 2 |
| Why Use qmail? | p. 3 |
| Why Not Use qmail? | p. 9 |
| Qmail Features | p. 12 |
| History | p. 15 |
| Architecture | p. 16 |
| License | p. 19 |
| Documentation | p. 20 |
| Support | p. 23 |
| Conclusion | p. 25 |
| Installing qmail | p. 27 |
| Overview | p. 27 |
| Preparing to Install qmail | p. 28 |
| Installing qmail: Quick-Start Instructions | p. 38 |
| Installing qmail Step by Step | p. 52 |
| An Overview of the Finished Product | p. 86 |
| Installing from RPMs | p. 87 |
| Conclusion | p. 91 |
| Configuring qmail: The Basics | p. 93 |
| Overview | p. 93 |
| Control Files Reference | p. 93 |
| Relaying | p. 110 |
| Multiple Host Names | p. 115 |
| Virtual Domains | p. 115 |
| Aliases | p. 116 |
| The qmail-users Mechanism | p. 117 |
| Conclusion | p. 119 |
| Using qmail | p. 121 |
| Overview | p. 121 |
| Sending Messages | p. 121 |
| Receiving Messages | p. 136 |
| User Utilities | p. 148 |
| Conclusion | p. 156 |
| Managing qmail | p. 159 |
| Overview | p. 159 |
| Understanding the qmailctl Script | p. 159 |
| Learning qmail's Management Commands | p. 165 |
| Managing the Queue | p. 187 |
| Conclusion | p. 198 |
| Troubleshooting qmail | p. 199 |
| Overview | p. 199 |
| Process Monitoring | p. 200 |
| Understanding Logs | p. 201 |
| Using Message Headers | p. 211 |
| Testing | p. 217 |
| Fixing Common Problems | p. 218 |
| Conclusion | p. 223 |
| Configuring qmail: Advanced Options | p. 225 |
| Overview | p. 225 |
| Setting Up Typical Configurations | p. 226 |
| Migrating from Sendmail to qmail | p. 237 |
| Modifying the Source Code | p. 249 |
| Using Quick Mail Transfer Protocol | p. 254 |
| Using Quick Mail Queuing Protocol | p. 258 |
| Securing SMTP | p. 264 |
| Performance Tuning | p. 273 |
| Conclusion | p. 284 |
| Controlling Junk Mail | p. 285 |
| Overview | p. 286 |
| An Ounce of Prevention | p. 286 |
| Setting System-Level Controls | p. 287 |
| Setting User-Level Controls | p. 292 |
| Conclusion | p. 294 |
| Managing Mailing Lists | p. 295 |
| Overview | p. 295 |
| Setting Up Simple Mailing Lists | p. 295 |
| Working with ezmlm | p. 297 |
| Working with Majordomo | p. 305 |
| Working with Mailman | p. 315 |
| Using Other MLMs | p. 324 |
| Conclusion | p. 326 |
| Serving Mailboxes | p. 327 |
| Overview | p. 328 |
| Installing and Using POP3 Servers | p. 328 |
| Installing and Using IMAP Servers | p. 344 |
| Securing POP3 | p. 353 |
| Securing IMAP | p. 362 |
| Retrieving Mail with POP3 and IMAP | p. 369 |
| Conclusion | p. 374 |
| Hosting Virtual Domain and Users | p. 375 |
| Overview | p. 376 |
| Choosing between VMailMgr and Vpopmail | p. 376 |
| Using VMailMgr | p. 377 |
| Using Vpopmail | p. 383 |
| Conclusion | p. 389 |
| Understanding Advanced Topics | p. 391 |
| Overview | p. 391 |
| Single-Recipient Delivery vs. Multiple-Recipient Delivery | p. 391 |
| Using Variable Envelope Return Paths | p. 394 |
| Configuring Scalable Servers | p. 395 |
| Using Lightweight Directory Access Protocol | p. 401 |
| Using Structured Query Language | p. 402 |
| Virus Scanning | p. 403 |
| Conclusion | p. 414 |
| How qmail Works | p. 417 |
| High-Level Overview | p. 417 |
| Receiving Modules | p. 418 |
| Sending Modules | p. 425 |
| Related Packages | p. 431 |
| checkpassword | p. 431 |
| Courier-IMAP | p. 432 |
| daemontools | p. 432 |
| djbdns | p. 432 |
| dot-forward | p. 433 |
| ezmlm | p. 433 |
| ezmlm-idx | p. 433 |
| fastforward | p. 434 |
| getmail | p. 434 |
| maildrop | p. 434 |
| mess822 | p. 435 |
| oMail-webmail | p. 435 |
| oSpam | p. 435 |
| qlogtools | p. 436 |
| qmail-autoresponder | p. 436 |
| qmail-qfilter | p. 436 |
| qmail-Scanner | p. 437 |
| qmail-vacation | p. 437 |
| qmailanalog | p. 437 |
| safecat | p. 439 |
| serialmail | p. 439 |
| SqWebMail | p. 440 |
| syncdir | p. 440 |
| TMDA | p. 440 |
| ucspi-tcp | p. 441 |
| VMailMgr | p. 441 |
| Vpopmail | p. 441 |
| How Internet Mail Works | p. 443 |
| How a Message Gets from Point A to Point B | p. 443 |
| Envelopes vs. Headers | p. 444 |
| Finding More Information | p. 446 |
| qmail Features | p. 449 |
| Setup Features | p. 449 |
| Security Features | p. 449 |
| Message Construction | p. 450 |
| SMTP Service | p. 450 |
| Queue Management | p. 451 |
| Bounces | p. 452 |
| Routing by Domain | p. 453 |
| SMTP Delivery | p. 453 |
| Forwarding and Mailing Lists | p. 454 |
| Local Delivery | p. 454 |
| POP3 Service | p. 455 |
| Error Messages | p. 457 |
| Interactive Error Messages | p. 457 |
| Log Messages | p. 457 |
| Bounce Messages | p. 459 |
| Gotchas | p. 465 |
| qmail Doesn't Deliver to Superusers | p. 465 |
| qmail Doesn't Deliver to Users Who Don't Own Their Home Directory | p. 465 |
| qmail Doesn't Deliver to Users Whose Usernames Contain Uppercase Letters | p. 465 |
| qmail Replaces Dots (.) in Extension Addresses with Colons (:) | p. 466 |
| qmail Converts Uppercase Characters in Extension Addresses to Lowercase | p. 466 |
| qmail Doesn't Use /etc/hosts | p. 466 |
| qmail Doesn't Log SMTP Activity | p. 466 |
| qmail Doesn't Generate Deferral Notices | p. 467 |
| qmail Is Slow If trigger Is Wrong | p. 467 |
| DNS or IDENT Lookups Can Make SMTP Slow | p. 467 |
| qmail-smtpd Accepts Mail for All Recipients | p. 467 |
| qmail-smtpd Doesn't Automatically Relay for the Local Host | p. 468 |
| Table of Contents provided by Syndetics. All Rights Reserved. |