5 <title>Postfix Anatomy - Receiving Mail
</title>
7 <META NAME=
"ROBOTS" CONTENT=
"NOINDEX,NOFOLLOW">
10 <body background=
"obsolete.gif">
12 <h1><a href=
"big-picture.html"><img src=
"small-picture.gif" width=
"115" height=
"45"></a> Postfix
13 Anatomy - Receiving Mail
</h1>
17 <p> <strong> Note: this web page is no longer maintained. It exists
18 only to avoid breaking links in web pages that describe earlier
19 versions of the Postfix mail system.
</strong> </p>
21 <a href=
"docs.html">Up one level
</a> | Receiving Mail |
<a
22 href=
"delivering.html">Delivering Mail
</a> |
<a
23 href=
"backstage.html">Behind the Scenes
</a> |
<a
24 href=
"commands.html">Command-line Utilities
</a>
28 When a message enters the Postfix mail system, the first stop on
29 the inside is the
<b>incoming
</b> queue. The figure below shows
30 the main components that are involved with new mail. For an
31 explanation of the symbols used, click on the icon in the upper
32 left-hand corner of this page.
38 <img src=
"inbound.gif" width=
"497" height=
"213">
46 <li>Mail is posted locally. The Postfix
<a
47 href=
"sendmail.1.html">sendmail
</a> program invokes the privileged
48 <a href=
"postdrop.1.html">postdrop
</a> program which deposits the
49 message into the
<b>maildrop
</b> directory, where the message is
50 picked up by the
<a href=
"pickup.8.html">pickup
</a> daemon. This
51 daemon does some sanity checks, in order to protect the rest of
56 <li>Mail comes in via the network. The Postfix
<a href=
"smtpd.8.html">SMTP
57 server
</a> receives the message and does some sanity checks, in
58 order to protect the rest of the Postfix system. The SMTP server
59 can be configured to implement
<a href=
"uce.html">UCE
</a> controls
60 on the basis of local or network-based black lists, DNS lookups,
61 and other client request information.
65 <li>Mail is generated internally by the Postfix system itself, in
66 order to return undeliverable mail to the sender. The
<a
67 href=
"bounce.8.html">bounce or defer
</a> daemon brings the bad
72 <li>Mail is forwarded by the
<a href=
"local.8.html">local
</a>
73 delivery agent, either via an entry in the system-wide
<a
74 href=
"aliases.5.html">alias
</a> database, or via an entry in a
75 per-user
<a href=
"aliases.5.html">.forward
</a> file. This is
76 indicated with the unlabeled arrow.
80 <li>Mail is generated internally by the Postfix system itself, in
81 order to notify the postmaster of a problem (this path is also
82 indicated with the unlabeled arrow). The Postfix system can be
83 configured to
<a href=
"basic.html#notify">notify
</a> the postmaster
84 of SMTP protocol problems, UCE policy violations, and so on.
88 <li>The
<a href=
"cleanup.8.html">cleanup
</a> daemon implements the
89 final processing stage for new mail. It adds missing
<b>From:
</b>
90 and other message headers, arranges for address rewriting to the
91 standard
<i>user@fully.qualified.domain
</i> form, and optionally
92 extracts recipient addresses from message headers. The
<b> cleanup
</b>
93 daemon inserts the result as a single queue file into the
94 <b>incoming
</b> queue, and notifies the
<a href=
"qmgr.8.html">queue
95 manager
</a> of the arrival of new mail. The
<b>cleanup
</b> daemon
96 can be configured to transform addresses on the basis of
<a
97 href=
"rewrite.html#canonical">canonical
</a> and
<a
98 href=
"rewrite.html#virtual">virtual
</a> table lookups.
102 <li>On request by the
<b>cleanup
</b> daemon, the
<a
103 href=
"trivial-rewrite.8.html">trivial-rewrite
</a> daemon rewrites
104 addresses to the standard
<i>user@fully.qualified.domain
</i> form.
105 The initial Postfix version does not implement a rewriting language.
106 Implementing one would take a lot of effort, and most sites do not
107 need it. Instead, Postfix makes extensive use of
<a
108 href=
"rewrite.html">table lookup
</a>.
114 <a href=
"docs.html">Up one level
</a> | Receiving Mail |
<a
115 href=
"delivering.html">Delivering Mail
</a> |
<a
116 href=
"backstage.html">Behind the Scenes
</a> |
<a
117 href=
"commands.html">Command-line Utilities
</a>