Messages come into Postfix in one of four ways:
A message can be accepted into Postfix locally (sent from a user on the same machine).
A message can be accepted into Postfix over the network.
A message that was already accepted into Postfix through one of the other methods is resubmitted for forwarding to another address.
Postfix generates messages itself when it has to send notifications of undeliverable or deferred delivery attempts.
There is always the possibility that a message is rejected before it enters the Postfix system, or that some messages are deferred for later delivery.
The various Postfix components work together by writing messages to and reading messages from the queue. The queue manager has the responsibility of managing messages in the queue and alerting the correct component when it has a job to do.
illustrates the flow when a local email message enters the Postfix
system. Local messages are deposited into the maildrop directory of the Postfix queue by the postdrop command, usually through the sendmail compatibility program. The
pickup daemon reads the message from the queue and feeds it to
cleanup daemon. Some messages
arrive without all of the required information for a valid email
message. So in addition to sanity checks on the message, the
cleanup daemon, in conjunction with the
trivial-rewrite daemon inserts missing message headers, converts addresses to the email@example.com format ...