Filters

Expressions syntax:
simple expressions:
header("header_name") operator "string"
where operator can be
eq (equality), ex: header("X-Loop") eq "lists@ml.domain.tld"
equals: synonym for eq
ne: inverse of eq
contains, ex: header("From") contains "@domain.tld"
regmatches, ex: header("Subject") regmatches "^R[eE]: \[GENERAL\]"

Expressions can be combined with NOT, AND, OR, and use other conditions
Examples:

pg_gen: header("Sender") eq "pgsql-general-owner@postgresql.org"
pg_interf: header("Sender") eq "pgsql-interfaces-owner@postgresql.org"
pg: pg_gen OR pg_interf
Arbitrarily complex expressions can be written by combining conditions and operators:
(pg_gen OR pg_interf) AND NOT (header("From") contains "@mydomain.tld")

Actions
The action panel refers to the currently selected condition.
To add an action, select (New action) in the actions list
To remove the currently selected action, use the <Del> key.

Suggest
The "suggest" button is enabled when two or more messages are selected in the message window when the File->Filters command is run. Activating that button opens an "Header analysis" dialog, exposing headers whose values are identical across the set of selected messages.

When a header line is selected in the dialog, the corresponding expression header("header_name") eq "header_value" is automatically generated in the filter rules window as the current expression.

The purpose of this functionality is to ease the discovery and use of relevant headers to filter messages.