Chapter 10. Message Filtering

The word filtering is used for the process of inspecting a message as it passes through Exim, and possibly changing the way it is handled. We discuss transport filters in Section 9.1.7, in Chapter 9. In this chapter, we are concerned with a different kind of filtering, which happens while a message is being processed to determine where it should be delivered. We have already mentioned user and system filters without much explanation; now is the time to rectify that omission. These filters work as follows:

  • Provided the configuration permits it, users may place filtering instructions in their .forward files instead of just a list of forwarding destinations.[116] User filters are obeyed when Exim is directing addresses, and they extend the concept of forwarding by allowing conditions to be tested. A user filter is run as a consequence of directing one address, whose constituent parts are available in $local_part and $domain (and, if relevant, $local_part_prefix and/or $local_part_suffix).

  • A single system filter can be set up by the administrator. This uses the same filtering commands as a user filter (with a few additions), but is obeyed just once per delivery attempt, before any directing or routing is done. Because there may be many recipients for a message, address-related variables such as $local_part and $domain are not set when a system filter is run, but a list of all the recipients is available in the variable $recipients.

Before describing ...

Get Exim: The Mail Transfer Agent now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.