The Postfix Milter implementation uses two different lists of
mail filters: one list of filters that are used for SMTP mail only,
and one list of filters that are used for non-SMTP mail. The two
lists have different capabilities, which is unfortunate. Avoiding
this would require major restructuring of Postfix.
-
The SMTP-only filters handle mail that arrives via the
Postfix
smtpd(8) server. They are typically used to filter unwanted
mail and to sign mail from authorized SMTP clients. You specify
SMTP-only Milter applications with the
smtpd_milters parameter as
described in a later section. Mail that arrives via the Postfix
smtpd(8) server is not filtered by the non-SMTP filters that are
described next.
-
The non-SMTP filters handle mail that arrives via the
Postfix
sendmail(1) command-line or via the Postfix
qmqpd(8) server.
They are typically used to digitally sign mail only. Although
non-SMTP filters can be used to filter unwanted mail, they have
limitations compared to the SMTP-only filters. You specify non-SMTP
Milter applications with the
non_smtpd_milters parameter as described
in a later section.
For those who are familiar with the Postfix architecture, the
figure below shows how Milter applications plug into Postfix. Names
followed by a number are Postfix commands or server programs, while
unnumbered names inside shaded areas represent Postfix queues. To
avoid clutter, the path for local submission is simplified (the
OVERVIEW document has a more complete description).