Summary: | GMail filtering does not work if the message is not moved | ||
---|---|---|---|
Product: | [Unmaintained] kmail | Reporter: | Clovis Gladstone <clovisgladstone> |
Component: | IMAP | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | christophe |
Priority: | NOR | ||
Version: | SVN trunk (KDE 4) | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Clovis Gladstone
2008-07-09 17:14:05 UTC
Are you using GMail? This is while using opensuse 4.0.85 packages (I'd selected it in my bug report but somehow it doesn't show up here), so this concerns the brand new kmail. Yes I am OK, filtering IMAP message which stay in the same folder will simply not work with GMail, because of their idiotic duplicate prevention. Filtering works the following way: 1. KMail copies the IMAP messages to a local folder 2. KMail filters the message in the local folder 3. KMail moves the filtered message from the local folder to the IMAP folder 4. KMail deletes the original message from the IMAP folder Because GMail prevents duplicate messages, step 3) will fail (although the new message has an additional header). Please complain about this to Google. The other problem is that filtering stops when encountering such a problem. This is being worked on, but the patch won't make it into 4.1. Ok, thanks for looking into this. I'll be sure to complain to google about this. Do you know if the patch you mentioned will be ready for one of the 4.1.x releases ? Thanks again. SVN commit 833475 by tmcguire: Some fixes for online IMAP filtering: - In the action scheduler, don't error out when the filtered message couldn't be moved back to the target folder. Instead, ignore the error (but don't delete the orginal message). This fixes filtering stopping on GMail accounts once a message was encountered that was not moved to another folder, but stayed in the same folder (GMail prevents moving in this case, since it thinks it is a duplicate message) - When moving the filtered message with the action scheduler from the temporary filter folder to the target folder, the original message wouldn't get deleted properly. The reason for this was that the move command thought the move failed because a message with another serial number arrived. Fix this by remembering the serial number (based on the message ID) when using the action scheduler for filtering. This fixes filters which move messages to other folders: Now the message is properly removed from the source folder again. - add comments and kDebug output This does _not_ solve the following problem: When using GMail and online IMAP, filter actions which modify the message will not have any effect, since GMails duplicate message prevention prevents the filtered message to be moved back to the IMAP folder. This will not be fixed, I see no way to work around this. GMail should fix their IMAP server instead. Please test, I'm not sure if this is safe to backport. CCBUG: 166150 M +80 -38 actionscheduler.cpp M +26 -1 actionscheduler.h M +20 -2 imapjob.cpp M +7 -0 kmfolderimap.cpp M +8 -0 kmfolderimap.h M +1 -1 kmmessage.h M +1 -1 kmmsgbase.cpp M +1 -1 kmmsgbase.h M +1 -1 kmmsginfo.cpp M +1 -1 kmmsginfo.h M +20 -0 messageproperty.cpp M +23 -1 messageproperty.h WebSVN link: http://websvn.kde.org/?view=rev&revision=833475 >Do you know if the patch you mentioned will be ready for one of the 4.1.x releases ? Thanks again.
Depending on how much testing it gets in trunk, it might even make it into 4.1.0, otherwise into 4.1.1.
SVN commit 836580 by tmcguire: Backport r833475 by tmcguire to the 4.1 branch: Some fixes for online IMAP filtering: - In the action scheduler, don't error out when the filtered message couldn't be moved back to the target folder. Instead, ignore the error (but don't delete the orginal message). This fixes filtering stopping on GMail accounts once a message was encountered that was not moved to another folder, but stayed in the same folder (GMail prevents moving in this case, since it thinks it is a duplicate message) - When moving the filtered message with the action scheduler from the temporary filter folder to the target folder, the original message wouldn't get deleted properly. The reason for this was that the move command thought the move failed because a message with another serial number arrived. Fix this by remembering the serial number (based on the message ID) when using the action scheduler for filtering. This fixes filters which move messages to other folders: Now the message is properly removed from the source folder again. - add comments and kDebug output This does _not_ solve the following problem: When using GMail and online IMAP, filter actions which modify the message will not have any effect, since GMails duplicate message prevention prevents the filtered message to be moved back to the IMAP folder. This will not be fixed, I see no way to work around this. GMail should fix their IMAP server instead. Please test, I'm not sure if this is safe to backport. CCBUG: 166150 M +80 -38 actionscheduler.cpp M +26 -1 actionscheduler.h M +20 -2 imapjob.cpp M +7 -0 kmfolderimap.cpp M +8 -0 kmfolderimap.h M +1 -1 kmmessage.h M +1 -1 kmmsgbase.cpp M +1 -1 kmmsgbase.h M +1 -1 kmmsginfo.cpp M +1 -1 kmmsginfo.h M +20 -0 messageproperty.cpp M +23 -1 messageproperty.h WebSVN link: http://websvn.kde.org/?view=rev&revision=836580 thanks a lot for your work. I am unfortunately not able to test this at the moment. But I'll be sure to do it as soon as possible. Did you tested it? Does it works for you? Yes this has been fixed. |