Difference between revisions of "Postfix/flow"
(extracted from main Postfix page) |
(→About: there is now a subpage for local(8)) |
||
Line 53: | Line 53: | ||
<td valign="middle" align="center" bgcolor="#f0f0ff"> [http://postfix.org/pickup.8.html pickup(8)] | <td valign="middle" align="center" bgcolor="#f0f0ff"> [http://postfix.org/pickup.8.html pickup(8)] | ||
</td> | </td> | ||
− | <td valign="middle" align="center" bgcolor="#f0f0ff"> [ | + | <td valign="middle" align="center" bgcolor="#f0f0ff"> [[Postfix/local|local]] |
</td> | </td> | ||
</tr> | </tr> |
Latest revision as of 17:55, 12 June 2011
About
There are multiple stages inside Postfix, and each stage can be affected by configuration parameters. I have not yet found a clear documentation of the data flow, but it seems to go like this (only much more complicated) under normal circumstances:
- SMTP → Postfix delivery queue → user alias mappings → local delivery (MDA, e.g. Dovecot)
However, when using virtual (non-system) users, internally-generated emails (e.g. mail from cron or PHP's mail() function) seem to bypass the alias mappings, which the MDA then rejects if they are addressed to an alias instead of a user.
A table from the official documentation is more detailed (the "-<" between the last two boxes in the original document is apparently intended to indicate rightward movement with a fan-out, i.e. the message may go through any of the 3 sub-boxes on the right; it has been replaced with "->" here).
trivial- rewrite(8) (std form) |
trivial- rewrite(8) (resolve) |
|||||||||||||
|
| |||||||||||||
smtpd(8) | >- | cleanup(8) | -> | incoming | -> | active | -> | qmgr(8) | -> | smtp(8) | ||||
qmqpd(8) | lmtp(8) | |||||||||||||
pickup(8) | local | |||||||||||||
^ | |
| |||||||||||||
bounces forwarding notices |
deferred |
There are two more diagrams here; the first shows the input stage in a bit more detail, and the second shows the delivery stage. There are two more diagrams here, showing where filtering takes place.