Mail filters are not working

Order of Filters

The order of filters is very important. They are applied to the original message in sequence, like a recipe.

If your first filter has a Stop Processing rule, then all messages that match this filter will ignore all succeeding filters.

When you move a message to another folder, "moving" actually means appending a copy of the message to the destination folder and marking the original message for deletion. So any subsequent filter rules will be applied to the original message that is now marked for deletion. Therefore moving a message should usually appear last in a sequence of filter rules.

To check the rules and their order of an existing filter, review its actions in the Then section by editing the filter.

Using Several Mail Clients

Another thing you have to keep in mind is that filters depend on the "new" flag that is set on the server when a particular email message is initially fetched from the server. If you use another email client aside from Evolution, your filters may not work automatically.

Logging Filter Actions

If it is still unclear why filters do not work as expected, you can enable logging filter actions.

  • Close Evolution.

  • Open the Terminal application.

  • Run the command gsettings set org.gnome.evolution.mail filters-log-actions true

  • Run the command gsettings set org.gnome.evolution.mail filters-log-file "/home/myusername/my-filter-log" and replace myusername by your username. This will create a text file named my-filter-log in your home directory. Note that the absolute path to the file name must be entered; a syntax like ~ or $HOME will not work.

  • Start Evolution.

  • Fetch mail to apply filters.

  • Open the file my-filter-log with a text editor to see which filter actions have been applied.

Note that you can disable filter logging again by using the command gsettings set org.gnome.evolution.mail filters-log-actions false

You can also use the dconf-editor application to do this.