Summary: | filters not applied on read emails | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | tim blechmann <tim> |
Component: | Mail Filter Agent | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED INTENTIONAL | ||
Severity: | normal | CC: | amantia, redm |
Priority: | NOR | ||
Version: | 4.8 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
tim blechmann
2012-01-17 08:50:52 UTC
I can confirm this with IMAP Inbox. If the mail is read with a different client (e.g webmail), on the next sync the filter is not applied to the read mails. Actually after looking at the code and thinking more, this is intentional. To explain it: filters are applied that appear in special folders (Inbox). If we would filter also newly added read mail, it would be impossible to move back a mail that was filtered to inbox (for whatever reasons, including bad filtering). For similar reasons mails marked as ignored or spam are also excluded from filters. well, i've stopped using kmail for other reasons, but i fail to see the reason why this is not possible. if a mail was moved to inbox by a filter, the filter could simply ignore that mail. pseudocode: newlyAddedMails = collectNewlyAddedMails(); foreach (mail in newlyAddedMails): applyFilter(mail) if applyFilter moves the mail to inbox, it won't be filtered, again. Please reconsider setting this as Won't Fix. For instance I read regularly mail through a webmail frontend at work or through the mail client of my phone, none of these have filters setup but mark mails as read. Which is IMHO a perfectly usual use case. And at home I always have to filter them again manually. This is pretty annoying behavior. And actually I don't understand the problem. Simply filter all mails newly synced to Inbox, and ignore manually moved mails (set a flag or whatever). Maybe this is not trivial with the current implementation (no idea) and takes a bit longer to fix, but this doesn't mean the behavior is correct. |