Version: 4.8 (using Devel) OS: Linux i'm running kmail on 2 machines, my laptop and my workstation. the filter rules are similar, but they do not match, especially the workstation has more filter rules than the laptop. however if i read emails in INBOX on my laptop, but the filter rules on the workstation should move them to a different directory, the filter is not applied (possibly because it does not filter read emails?). i have to select the specific mails and apply the filter manually. seems to be an issue on both 4.7 and 4.8 Reproducible: Always Steps to Reproduce: use the same imap account on at least two machines with different filter rules. Actual Results: filters are not applied Expected Results: filters should be applied
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.