Version: Git (master) OS: Linux I have an email that is completely broken when reading it in kmail2. here is how I see it, note that I have configured kmail to always display plaintext if possible. Furthermore I've replaced the actual contents of the email with "#..." sections below, along with some comment. If you have questions, just ask. So here goes the mail, enclosed in ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ --nextPart5494940.N5jNNXLpBq Content-Type: multipart/alternative; boundary="nextPart5405349.qtCSgRVpqk" Content-Transfer-Encoding: 7Bit --nextPart5405349.qtCSgRVpqk Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" # here is some readable message On lundi 28 novembre 2011 00:24:05 you wrote: > On Sunday 27 November 2011 23:36:43 XYZ wrote: # quoted mail here, looks fine, but then: --nextPart5405349.qtCSgRVpqk Content-Transfer-Encoding: 7Bit Content-Type: text/html; charset="us-ascii" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } # lots more HTML here... </p></body></html> --nextPart5405349.qtCSgRVpqk-- --nextPart5494940.N5jNNXLpBq Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) # the signature -----END PGP SIGNATURE----- --nextPart5494940.N5jNNXLpBq-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ Reproducible: Sometimes Steps to Reproduce: read an email like the above Actual Results: garbage, results look like it displays the raw multipart mail Expected Results: nicely formatted email
Created attachment 66151 [details] raw email triggering this problem here is the raw source of that email, lambert clara was OK with me publishing it here - doesn't contain any sensitive info anyways :)
That mail is text/plain with some text that is what an multipart/alternative message should look like. Note the "Content-Type: text/plain;" header in the main section. If it is correct that this mail was composed in KMail there is a bug in the composer.
Created attachment 66154 [details] Originial sent mail in raw format
That mail displays fine here (4.8 pre) and it seems to have the correct structure. What is the difference between those two attachments, ie what has the first one gone through that the second hasn't?
it definitely went through filters on my side, but dunno if that is the issue here. How do I find out? Note that not all of my emails are messed up in this way...
as andris suggested, I've downloaded the raw mail from Lambert and put it into ~/.local/share/local-mail/new. Then in kmail, I manually applied my filters to it. This time it worked like a charm though, so probably something else is messed up?
Closing as worksforme until it can be reproduced.
Uhm Torgny, while I agree that it is hard to fix an issue without an easy way to reproduce it, is it really appropriate to close it? Just yesterday I had again an email which was broken in the same way. So this is "sometimes" reproducible, the question remains how. In KDevelop at least, I only close bugs as "works for me", if I tried the steps to reproduce an issue, and it indeed "worked for me". Here we have a bug, but did not yet find the actual reason, hence no idea how to fix it. tl;dr; can we reopen this?
Sure
For the record: just got another bunch of such broken emails, all spam though. In all of them, the content type was text/plain. Maybe KMail could be more forgiving, i.e. if it finds that the mail should probably be multipart, even though the header does not say that, offer the user to display it as such?
*** Bug 298393 has been marked as a duplicate of this bug. ***
Git commit d64d61b470c56b92294f6adee6d74305a217628d by Andras Mantia. Committed on 04/07/2012 at 17:35. Pushed by amantia into branch 'master'. A biggish refactoring of the filter functionality: 1) Do not take the items from the cache only, as they might be incomplete (especially in online imap case, but not only). This should fix the body loss bug on spam filtering.(Bug 287752 and similar ones + countless of reports on user list) Might fix 293768. 2) Download only what is really needed for the filter and add safety checks that the mail is not modified if the requested part is missing. So far the distinction was only betwee the body and rest. This should speed up filtering. Also related to 287752, but should fix also 292283, 288109. 3) Rename qDebug->kDebug + fix some includes 4) The code should also fix the duplicate mails appearing after filtering (some of the duplicates with empty content), eg. 275233 All bug reporters: in case you still see the bug, reopen the corresponding one. For the reports that were CC'd, but not closed, please try to reproduce and tell the result. So far the bug is fixed on master, but might be backported later to 4.9. Related: bug 292283, bug 288109, bug 286043, bug 295484, bug 302337, bug 295000, bug 295684, bug 293768, bug 275233, bug 293918, bug 284310, bug 286364, bug 283682 M +7 -11 kmail/kmcommands.cpp M +10 -7 kmail/kmcommands.h M +1 -1 kmail/kmmainwidget.cpp M +1 -5 mailcommon/filter/filteraction.cpp M +6 -5 mailcommon/filter/filteraction.h M +6 -0 mailcommon/filter/filteractionaddheader.cpp M +2 -0 mailcommon/filter/filteractionaddheader.h M +2 -2 mailcommon/filter/filteractionaddtag.cpp M +1 -1 mailcommon/filter/filteractionaddtag.h M +9 -3 mailcommon/filter/filteractionaddtoaddressbook.cpp M +2 -0 mailcommon/filter/filteractionaddtoaddressbook.h M +7 -0 mailcommon/filter/filteractionbeep.cpp M +1 -0 mailcommon/filter/filteractionbeep.h M +18 -1 mailcommon/filter/filteractioncopy.cpp M +7 -0 mailcommon/filter/filteractioncopy.h M +6 -0 mailcommon/filter/filteractiondelete.cpp M +1 -0 mailcommon/filter/filteractiondelete.h M +5 -0 mailcommon/filter/filteractionexec.cpp M +1 -0 mailcommon/filter/filteractionexec.h M +5 -0 mailcommon/filter/filteractionforward.cpp M +1 -0 mailcommon/filter/filteractionforward.h M +6 -0 mailcommon/filter/filteractionmove.cpp M +2 -0 mailcommon/filter/filteractionmove.h M +6 -0 mailcommon/filter/filteractionpipethrough.cpp M +1 -0 mailcommon/filter/filteractionpipethrough.h M +6 -0 mailcommon/filter/filteractionplaysound.cpp M +2 -0 mailcommon/filter/filteractionplaysound.h M +5 -0 mailcommon/filter/filteractionredirect.cpp M +1 -0 mailcommon/filter/filteractionredirect.h M +6 -1 mailcommon/filter/filteractionremoveheader.cpp M +1 -0 mailcommon/filter/filteractionremoveheader.h M +6 -0 mailcommon/filter/filteractionreplyto.cpp M +1 -0 mailcommon/filter/filteractionreplyto.h M +6 -0 mailcommon/filter/filteractionrewriteheader.cpp M +1 -0 mailcommon/filter/filteractionrewriteheader.h M +6 -0 mailcommon/filter/filteractionsendfakedisposition.cpp M +1 -0 mailcommon/filter/filteractionsendfakedisposition.h M +8 -2 mailcommon/filter/filteractionsendreceipt.cpp M +1 -0 mailcommon/filter/filteractionsendreceipt.h M +6 -0 mailcommon/filter/filteractionsetidentity.cpp M +1 -0 mailcommon/filter/filteractionsetidentity.h M +6 -0 mailcommon/filter/filteractionsetstatus.cpp M +1 -0 mailcommon/filter/filteractionsetstatus.h M +6 -0 mailcommon/filter/filteractionsettransport.cpp M +1 -0 mailcommon/filter/filteractionsettransport.h M +5 -0 mailcommon/filter/filteractionstatus.cpp M +2 -0 mailcommon/filter/filteractionstatus.h M +5 -2 mailcommon/filter/filteractionunsetstatus.cpp M +2 -1 mailcommon/filter/filteractionunsetstatus.h M +4 -4 mailcommon/filter/filterimporter/filterimporterevolution.cpp M +1 -1 mailcommon/filter/filterimporter/filterimporterprocmail.cpp M +1 -1 mailcommon/filter/filterimporter/filterimportersylpheed.cpp M +2 -2 mailcommon/filter/filtermanager.cpp M +2 -8 mailcommon/filter/filtermanager.h M +8 -2 mailcommon/filter/itemcontext.cpp M +8 -1 mailcommon/filter/itemcontext.h M +10 -17 mailcommon/filter/kmfilterdialog.cpp M +2 -1 mailcommon/filter/kmfilterdialog.h M +25 -8 mailcommon/filter/mailfilter.cpp M +4 -3 mailcommon/filter/mailfilter.h M +48 -20 mailcommon/searchpattern.cpp M +34 -11 mailcommon/searchpattern.h M +1 -1 mailcommon/tests/searchpatterntest.cpp M +78 -47 mailfilteragent/filtermanager.cpp M +10 -8 mailfilteragent/filtermanager.h M +8 -6 mailfilteragent/mailfilteragent.cpp M +3 -0 mailfilteragent/mailfilteragent.h http://commits.kde.org/kdepim/d64d61b470c56b92294f6adee6d74305a217628d
Git commit e3a03f1d704838a9ced4ff41358785392774ae69 by Andras Mantia. Committed on 04/07/2012 at 17:35. Pushed by amantia into branch 'KDE/4.9'. (Backport filter fix from master) A biggish refactoring of the filter functionality: 1) Do not take the items from the cache only, as they might be incomplete (especially in online imap case, but not only). This should fix the body loss bug on spam filtering.(Bug 287752 and similar ones + countless of reports on user list) Might fix 293768. 2) Download only what is really needed for the filter and add safety checks that the mail is not modified if the requested part is missing. So far the distinction was only betwee the body and rest. This should speed up filtering. Also related to 287752, but should fix also 292283, 288109. 3) Rename qDebug->kDebug + fix some includes 4) The code should also fix the duplicate mails appearing after filtering (some of the duplicates with empty content), eg. 275233 All bug reporters: in case you still see the bug, reopen the corresponding one. For the reports that were CC'd, but not closed, please try to reproduce and tell the result. So far the bug is fixed on master, but might be backported later to 4.9. Related: bug 292283, bug 288109, bug 286043, bug 295484, bug 302337, bug 295000, bug 295684, bug 293768, bug 275233, bug 293918, bug 284310, bug 286364, bug 283682 (cherry picked from commit d64d61b470c56b92294f6adee6d74305a217628d) FIXED-IN: 4.9 M +7 -11 kmail/kmcommands.cpp M +10 -7 kmail/kmcommands.h M +1 -1 kmail/kmmainwidget.cpp M +1 -5 mailcommon/filter/filteraction.cpp M +6 -5 mailcommon/filter/filteraction.h M +6 -0 mailcommon/filter/filteractionaddheader.cpp M +2 -0 mailcommon/filter/filteractionaddheader.h M +2 -2 mailcommon/filter/filteractionaddtag.cpp M +1 -1 mailcommon/filter/filteractionaddtag.h M +9 -3 mailcommon/filter/filteractionaddtoaddressbook.cpp M +2 -0 mailcommon/filter/filteractionaddtoaddressbook.h M +7 -0 mailcommon/filter/filteractionbeep.cpp M +1 -0 mailcommon/filter/filteractionbeep.h M +18 -1 mailcommon/filter/filteractioncopy.cpp M +7 -0 mailcommon/filter/filteractioncopy.h M +6 -0 mailcommon/filter/filteractiondelete.cpp M +1 -0 mailcommon/filter/filteractiondelete.h M +5 -0 mailcommon/filter/filteractionexec.cpp M +1 -0 mailcommon/filter/filteractionexec.h M +5 -0 mailcommon/filter/filteractionforward.cpp M +1 -0 mailcommon/filter/filteractionforward.h M +6 -0 mailcommon/filter/filteractionmove.cpp M +2 -0 mailcommon/filter/filteractionmove.h M +6 -0 mailcommon/filter/filteractionpipethrough.cpp M +1 -0 mailcommon/filter/filteractionpipethrough.h M +6 -0 mailcommon/filter/filteractionplaysound.cpp M +2 -0 mailcommon/filter/filteractionplaysound.h M +5 -0 mailcommon/filter/filteractionredirect.cpp M +1 -0 mailcommon/filter/filteractionredirect.h M +6 -1 mailcommon/filter/filteractionremoveheader.cpp M +1 -0 mailcommon/filter/filteractionremoveheader.h M +6 -0 mailcommon/filter/filteractionreplyto.cpp M +1 -0 mailcommon/filter/filteractionreplyto.h M +6 -0 mailcommon/filter/filteractionrewriteheader.cpp M +1 -0 mailcommon/filter/filteractionrewriteheader.h M +6 -0 mailcommon/filter/filteractionsendfakedisposition.cpp M +1 -0 mailcommon/filter/filteractionsendfakedisposition.h M +8 -2 mailcommon/filter/filteractionsendreceipt.cpp M +1 -0 mailcommon/filter/filteractionsendreceipt.h M +6 -0 mailcommon/filter/filteractionsetidentity.cpp M +1 -0 mailcommon/filter/filteractionsetidentity.h M +6 -0 mailcommon/filter/filteractionsetstatus.cpp M +1 -0 mailcommon/filter/filteractionsetstatus.h M +6 -0 mailcommon/filter/filteractionsettransport.cpp M +1 -0 mailcommon/filter/filteractionsettransport.h M +5 -0 mailcommon/filter/filteractionstatus.cpp M +2 -0 mailcommon/filter/filteractionstatus.h M +5 -2 mailcommon/filter/filteractionunsetstatus.cpp M +2 -1 mailcommon/filter/filteractionunsetstatus.h M +4 -4 mailcommon/filter/filterimporter/filterimporterevolution.cpp M +1 -1 mailcommon/filter/filterimporter/filterimporterprocmail.cpp M +1 -1 mailcommon/filter/filterimporter/filterimportersylpheed.cpp M +2 -2 mailcommon/filter/filtermanager.cpp M +2 -8 mailcommon/filter/filtermanager.h M +8 -2 mailcommon/filter/itemcontext.cpp M +8 -1 mailcommon/filter/itemcontext.h M +10 -17 mailcommon/filter/kmfilterdialog.cpp M +2 -1 mailcommon/filter/kmfilterdialog.h M +25 -8 mailcommon/filter/mailfilter.cpp M +4 -3 mailcommon/filter/mailfilter.h M +48 -20 mailcommon/searchpattern.cpp M +34 -11 mailcommon/searchpattern.h M +1 -1 mailcommon/tests/searchpatterntest.cpp M +78 -47 mailfilteragent/filtermanager.cpp M +10 -8 mailfilteragent/filtermanager.h M +8 -6 mailfilteragent/mailfilteragent.cpp M +3 -0 mailfilteragent/mailfilteragent.h http://commits.kde.org/kdepim/e3a03f1d704838a9ced4ff41358785392774ae69
Git commit 8846d44b217108351c35f8afd883f72ee88388ec by Andras Mantia. Committed on 06/07/2012 at 11:12. Pushed by amantia into branch 'KDE/4.8'. Backport part of the filter fix: this is the actual fix, the rest were optimizations and safety checks, but it is difficult to backport. An unwanted side-effect might be that more data is downloaded than before, based on the type of filters used. FIXED-IN: 4.8.5 Related: bug 292283, bug 288109, bug 286043, bug 295484, bug 302337, bug 295000, bug 295684, bug 293768, bug 275233, bug 293918, bug 284310, bug 286364, bug 283682 M +0 -1 mailfilteragent/mailfilteragent.cpp http://commits.kde.org/kdepim/8846d44b217108351c35f8afd883f72ee88388ec