Appendix A: How qmail Works

 < Free Open Study > 



You don't need to understand how qmail works to install or use qmail. And you don't have to be an auto mechanic to operate a car or a watchmaker to tell time. But if you really want to master qmail, knowing exactly how it does what it does is crucial.

Luckily, qmail's simple, modular design makes understanding how it works easy for a system as complex as a Mail Transfer Agent (MTA). This appendix takes a top-down approach: first looking at how the modules interact with each other, then looking at how each module does its job.

High-Level Overview

The grand division in qmail is between the modules that accept new messages and place them into the queue and the modules that deliver them from the queue. We'll call these functions receiving and sending. The separation between receiving and sending is complete: Either of these functions can be fully operational while the other is shut down. Figure A-1 shows the high-level organization of qmail.

click to expand
Figure A-1: High-level qmail organization

Receiving

Messages enter the queue through two main routes: local injection using qmail-inject or sendmail and network injection using qmail-smtpd, qmail-qmtpd or qmail-qmqpd. Both of these routes use qmail-queue to actually inject their messages into the queue. Figure A-2 shows the organization of the receiving function.

click to expand
Figure A-2: The receiving function

Sending

Messages are delivered from the queue through two main routes: local delivery using qmail-local and remote delivery using qmail-remote. Both types of deliveries are dispatched by qmail-send through qmail-lspawn and qmail-rspawn, respectively. Figure A-3 shows the organization of the sending function.

click to expand
Figure A-3: The sending function



 < Free Open Study > 



The Qmail Handbook
The qmail Handbook
ISBN: 1893115402
EAN: 2147483647
Year: 2001
Pages: 186
Authors: Dave Sill

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net