- 论坛徽章:
- 0
|
http://www.howau.org/emailserver.txt
Create a Linux box with SMTP and POP3 service
Appendix
Appendix A: Life with qmail
1. Introduction
1.1. What is qmail?
qmail is an Internet Mail Transfer Agent (MTA) for UNIX-like operating systems. It’s a drop-in replacement for the Sendmail system provided with UNIX operating system. qmail uses the Simple Mail Transfer Protocol (SMTP) to exchange messages with MTA’s on other systems.
1.2. Why use qmail?
1.2.1. Security
1.2.2. Performance
1.2.3. Reliability
1.2.4. Simplicity
1.3. Features
1.3.1. Setup
* Automatic adaptation to your UNIX variant—no porting needed
* Automatic per-host configuration
* Quick installation—no big list of decisions to make
1.3.2. Security
* Clear separation between addresses, files, and programs
* Minimization of setuid code
* Minimization of root code
* Five-way trust partitioning—security in depth
* Optional logging of one-way message hashes, entire message contents, etc.
1.3.3. Message construction
* RFC 822 and RFC 1123 compliant
* Full support for address groups
* Automatic conversion of old-style address list to RFC 822 format
* Sendmail command for compatibility with current user agents
* Header line length limited only by memory
* Host masquerading
* User masquerading
* Automatic Mail-Followup-To creation
1.3.4. SMTP service
* RFC 821, RFC 1123, RFC 1651, RFC 1652, and RFC 1854 compliant
* 8-bit clean
* RFC 931/1413/ident/TAP callback—can help track spammers/forgers
* Relay control—stops unauthorized relaying by outsiders
* No interference between relay control and aliases
* Automatic recognition of local IP addresses
* Per-buffer timeouts
* Hop counting
* Parallelism limit
* Refusal of connections from known abusers
* Relaying and message rewriting for authorized clients
* Optional RBL/ORBS support
1.3.5. Queue management
* Instant handling of message added to queue
* Parallelism limits
* Split queue directory—no slowdown when queue gets big
* Quadratic retry schedule
* Independent message retry schedules
* Automatic safe queue—no loss of mail if system crashes
* Automatic per-recipient checkpointing
* Automatic queue cleanups
* Queue viewing
* Detailed delivery statistics
1.3.6. Bounces
* QSBMF bounce messages—both-machine-readable and human-readable
* HCMSSC support—language-independent RFC 1893 error codes
* Double bounces sent to postmaster
1.3.7. Routing by domain
* Any number of names for local host
* Any number of virtual domains
* Domain wildcards
* Configurable “percent hack” support
* UUCP hook
1.3.8. SMTP delivery
* RFC 821, RFC 974, and RFC 1123 compliant
* 8-bit clean
* Automatic downed host backoffs
* Artificial routing—smarthost, localnet, mailertable
* Per-buffer timeouts
* Passive SMTP queue—perfect for SLIP/PPP
* AutoTURN support
1.3.9. Forwarding and mailing lists
* Sendmail .forward compatibility
* Hashed forwarding databases
* Sendmail /etc/aliases compatibility
* Address wildcards
* Mailing list owners—automatically divert bounces and vacation messages
* VERPs—automatic recipient identification for mailing list bounces
* Delivered-To—automatic loop prevention, even across hosts
1.3.10. Local delivery
* User-controlled address hierarchy—fred controls fred-anything mbox delivery
* Reliable NFS delivery
* User-controlled program delivery: procmail etc.
* Optional new-mail notification
* Optional NRUDT return receipts
* Conditional filtering
1.3.11. POP3 service
* RFC 1939 compliant
* UIDL support
* TOP support
* APOP hook
* Modular password checking
2. Installation
2.1. Download the source
* Qmail
* Ucspi-tcp
* Daemontools
2.2. Build the source
2.2.1. Unpack the distribution
2.2.2. Create directories
2.2.3. Create users and groups
2.2.4. Do the build
2.3. Install ucspi-tcp
2.4. Install daemontools
2.5. Start qmail
2.5.1. /var/qmail/rc
2.5.2. System start-up files
* The qmailctl script
* The supervise scripts
* SMTP Access Control
2.5.3. Stop and disable the installed MTA
2.5.4. Create System aliases
2.5.5. Start qmail
3. Configuration
3.1. Configuration Files
3.2. Relaying
3.2.1. Introduction
What is relaying? It’s when an MTA accepts a message via SMTP that doesn’t appear to be either for a local address or from a local sender.
3.2.2. Disabling relaying
3.2.3. Allowing selective relaying
3.3. Multiple host names
* rcpthosts
* locals
3.4. Virtual domains
3.5. Aliases
3.6. qmail-users
3.7. Spam control
3.8. Virus Scanning
4. Usage
4.1. .qmail files
4.1.1. program delivery
4.1.2. mbox delivery
4.1.3. maildir delivery
4.1.4. forward delivery
4.1.5. extension addresses
4.2. Sending messages
4.2.1. SMTP
4.2.2. /var/qmail/bin/Sendmail
4.2.3. qmail-inject
4.3. Environment Variables
5. Advanced Topics
5.1. procmail
5.2. POP and IMAP servers
5.2.1. qmail-pop3d
5.2.1.1. Architecture of qmail-pop3d
* qmail-popup—gets username/password
* checkpassword—authenticates username/password
* qmail-pop3d—the POP daemon
5.2.1.2. Installation of qmail-pop3d
* Completely install and test qmail
* Download a checkpassword program from http://www.qmail.org/top.html#checkpassword
* Compile and install checkpassword according to the directions
* Create a /var/qmail/supervise/qmail-pop3d/run script
* Create a /var/qmail/supervise/qmail-pop3d/log/run script
* Set up the log directory and permissions on the run scripts, and link the service into /service
* Add the following to qmailctl’s “start” section
* Add the following to qmailctl’s “stop” section
* Add the following to qmailctl’s “stat” section
* Add the following to qmailctl’s “pause” section
* Add the following to qmailctl’s “cont” section
* Add the following to qmailctl’s “restart” section
5.2.2. Qpopper
5.2.3. SolidPOP
5.2.4. Binc IMAP
5.2.5. Dovecot
5.2.6. imap-maildir
5.2.7. Courier-IMAP
5.2.8. Cyrus
5.3. POP and IMAP clients
5.3.1. fetchmail
5.3.2. getmail
5.4. Multi-RCPT vs. Single RCPT delivery
* You could start three processes, each of which opens an SMTP connection to hostx, sends a copy of the message to one of the users, then closes the connection
5.5. VERP
Variable Envelope Return Path
5.6. Troubleshooting
5.6.1. Processes
* qmail-send qmails
* qmail-clean qmailq
* qmail-rspawn qmailr
* qmail-lspawn root
5.6.2. Logs
5.6.2.1. multilog
5.6.2.2. splogger
5.6.2.3. Log messages
5.7. Big Servers
5.7.1. Scalable parallelism
5.8. Migrating from Sendmail to qmail
5.9. Mailing List Managers
5.9.1. ezmlm
5.9.2. Majordomo
5.10. Patches
5.10.1. Recommended Patches
5.10.1.1. errno.h patches
5.10.1.2. qmail-local TAB patch
5.10.1.3. IP 0.0.0.0 patch
5.10.2. DNS
5.10.2.1. Christopher K. Davis’ patch, http://www.ckdhr.com/ckd/qmail-103.patch
5.10.2.2. Bump the packet buffer size up to 65536
5.10.2.3. Run dnscache from djbdns
5.10.3. qmail-ldap
5.11. QMTP |
|