From MozillaWiki
Jump to: navigation, search


todo: add bug numbers

Improvements for SeaMonkey MailNews filters

While we have a very fine Bayesian junk filter, there are still many corners in our filter architecture that simply suck:

  • The Bayesian junk filter is not part of the normal filtering process:
    • It's applied to (almost) all folders, while normal filters only affect inboxes and newsgroups.
    • It's applied after all other rules, when entering a folder.
  • Only inboxes and newsgroups are affected by normal filters, not subfolders.
  • The message filters are not hierarchical, ie you can't specify a filter just for mail folder G, where G is a subfolder of another mail folder F (this does work for news, though).
  • You can't have true global filters, all filters are specified on account level (except for news accounts).
  • There's no scoring system for messages.
  • There are no regular expressions.
  • There's no real nesting of conditions (and, or), all conditions are either or'ed or and'ed.
  • There's no "always" condition, you need to work around it by 'something or not something'.
    → Fixed; see bug 66771 for details.
  • There's no "end filter processing for this message" action.
  • The message filters dialog doesn't allow copying rules.
  • The "Run now" button in the message filters dialog does not give visual feedback, the function just blocks the UI!
  • The message filters dialog doesn't have a close button.
  • The dropdownboxes of the message filters dialog just show the leaf name of a folder, ie. if you have folders with equal names, you can't tell which one is selected.
  • You can use only 6 different labels (0 to 5).
    → Fixed; see bug 114656 for details.

Most of these points can be tackled indepently of each other:

  • A scoring system would be just a property score with a range of maybe 1..1000, along with some new conditions
    • Score [is|isn't|is lower than|is lower than or equal to|is greater than|is greater than or equal to][\/] [<value in range>]
    and actions
    • [Increment score by|Decrement score by|Set score to][\/] [<value in range>]
  • The junk controls should be accessible as a condition
    • Junk controls say this message [is junk|is not junk|is in unknown state][\/]
    and appear as an action
    • Junk status selection: [set as junk|set as not junk|run junk controls on this message ('analyze message')][\/]
  • Filters should not only be applied when messages are downloaded (ie. in inboxes and newsgroups), but also when moved or copied by another filter. If the user moves or copies the message by hand, it should not be filtered, because it's his explicit desire to do so. (This will mean having to check for filter cycles which may slow down filtering considerably if implemented sloppily!)
  • Filters should be applied hierarchically, ie. every folder can have its own filters and global filters have precedence over a subfolders' filters
    Bug 263441 – Hierarchical Message Filtering Proposals