Postfix Architecture Overview


Introduction

This document presents an overview of the Postfix architecture, and is the place where you find a pointer to every Postfix command or server program. The text gives the general context in which each command or server program is used, and provides pointers to documents with specific usage examples and background information.

Topics covered by this document:

How Postfix receives mail

When a message enters the Postfix mail system, the first stop on the inside is the incoming queue. The figure below shows the main processes that are involved with new mail. Names followed by a number are Postfix commands or server programs, while unnumbered names inside shaded areas represent Postfix queues.

trivial-
rewrite(8)
Network -> smtpd(8)
^
|
|
v
\
Network -> qmqpd(8) -> cleanup(8) -> incoming
/
pickup(8) <- maildrop
^
|
Local -> sendmail(1) -> postdrop(1)

How Postfix delivers mail

Once a message has reached the incoming queue the next step is to deliver it. The figure shows the main components of the Postfix mail delivery apparatus. Names followed by a number are Postfix commands or server programs, while unnumbered names inside shaded areas represent Postfix queues.

trivial-
rewrite(8)
smtp(8) -> Network
/
^
|
|
v
- lmtp(8) -> Network
/
incoming -> active -> qmgr(8) --- local(8) -> File, command
^
|
|
v
\
- virtual(8) -> File
deferred \
pipe(8) -> Command

Postfix behind the scenes

The previous sections gave an overview of how Postfix server processes send and receive mail. These server processes rely on other server processes that do things behind the scenes. The text below attempts to visualize each service in its own context. As before, names followed by a number are Postfix commands or server programs, while unnumbered names inside shaded areas represent Postfix queues.

Postfix support commands

The Postfix architecture overview ends with a summary of command-line utilities for day-to-day use of the Postfix mail system. Besides the Sendmail-compatible sendmail(1), mailq(1), and newaliases(1) commands, the Postfix system comes with it own collection of command-line utilities. For consistency, these are all named postsomething.