Manitou-Mail has a filtering system with rules evaluated when a message is imported into the database, and associated actions that are applied when the rule's condition is met. Typical actions are tagging the mail, giving it a priority, or discarding it.
The user interface has an editor for conditions and actions, launched by the File/Filters menu command.
Below is a screenshot with some sample rules defined:
simple:
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\]"
Conditions can be combined with NOT, AND, OR, and use the result of
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_interfArbitrarily complex expressions can be written by combining conditions and operators:
(pg_gen OR pg_interf) AND NOT (header("From") contains "@mydomain.tld")
Note that the expressions are not tested for syntax or semantic validity. If an expression is incorrect, it will only be detected at the time it gets evaluated by the mail-database exchanger (manitou-mdx). This may be improved in a future version.
All the rules that have at least one action connected to them will be evaluated on any incoming mail. There's no flag in rules indicating that the evaluation should stop if a rule matches.
The action panel refers to the currently selected condition. It
is disabled when no condition is selected.
To add an action, select (New action) in the actions list
To remove the currently selected action, use the <Del> key.
Actions currently supported are:
action's name | argument |
---|---|
tag | Name of the tag to assign. Child tags are expressed flattened as parent_tag->child_tag->grandchild_tag->... |
status | Combination of letters 'R' for read,'A' for archive,'D' for discard,'T' for trash, all separated by + signs. |
priority | Either =X to set the priority to X, or +=X to add X to the priority (so that multiple rules can add up).
X is a signed integer value. |