Postfix header/body checks are implemented by the
cleanup(8)
server before it injects mail into the
incoming queue. The diagram
below zooms in on the
cleanup(8) server, and shows that this server
handles mail from many different sources. In order to keep the
diagram readable, the sources of postmaster notifications are not
shown, because they can be produced by many Postfix daemon processes.
For efficiency reasons, only mail that enters from outside of
Postfix is inspected with header/body checks. It would be inefficient
to filter already filtered mail again, and it would be undesirable
to block postmaster notifications. The table below summarizes what
mail is and is not subject to header/body checks.
Message type | Source | Header/body checks? |
Undeliverable mail |
bounce(8) | No |
Network mail |
smtpd(8) | Configurable |
Network mail |
qmqpd(8) | Configurable |
Local submission |
pickup(8) | Configurable |
Local forwarding |
local(8) | No |
Postmaster notice | many | No |
How does Postfix decide what mail needs to be filtered? It
would be clumsy to make the decision in the
cleanup(8) server, as
this program receives mail from so many different sources. Instead,
header/body checks are requested by the source. Examples of how
to turn off header/body checks for mail received with
smtpd(8),
qmqpd(8) or
pickup(8) are given below under "Configuring header/body checks for mail from
outside users only" and "
Configuring
header/body checks for mail to some domains only".