diff --git a/mail/base/content/msgHdrViewOverlay.js b/mail/base/content/msgHdrViewOverlay.js index 84214daf6de..da3d3850b8e 100644 --- a/mail/base/content/msgHdrViewOverlay.js +++ b/mail/base/content/msgHdrViewOverlay.js @@ -395,10 +395,13 @@ var messageHeaderSink = { if (contentType == "text/x-vcard") { - var inlineAttachments = pref.getBoolPref("mail.inline_attachments"); + var inlineAttachments = pref.getBoolPref("mail.inline_attachments"); var displayHtmlAs = pref.getIntPref("mailnews.display.html_as"); if (inlineAttachments && !displayHtmlAs) - return; + { + mSaveHdr = messenger.messageServiceFromURI(uri).messageURIToMsgHdr(uri); + return; + } } currentAttachments.push (new createNewAttachmentInfo(contentType, url, displayName, uri, notDownloaded)); @@ -426,6 +429,10 @@ var messageHeaderSink = { onEndAllAttachments: function() { + // if we only got a v-card, turn off the attachments flag + if (!currentAttachments.length && mSaveHdr) + mSaveHdr.markHasAttachments(false); + mSaveHdr = null; displayAttachmentsForExpandedView(); }, @@ -445,6 +452,7 @@ var messageHeaderSink = { }, mSecurityInfo : null, + mSaveHdr: null, getSecurityInfo: function() { return this.mSecurityInfo; diff --git a/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp b/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp index f18144ec22a..24671f54413 100644 --- a/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp +++ b/mailnews/extensions/bayesian-spam-filter/src/nsBayesianFilter.cpp @@ -640,27 +640,6 @@ NS_IMETHODIMP TokenStreamListener::ProcessHeaders(nsIUTF8StringEnumerator *aHead NS_IMETHODIMP TokenStreamListener::HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded) { - // UE Improvement, if we are downloading the message for the junk filter, and the junk filter is told the msg has attachments - // then go ahead and mark the message as having attachments instead of waiting for the user to display the message - // before making such a notation. - // XXX Unfortunately this code causes us to be over agressive in marking messages as having attachments -#if 0 - if (!mSetAttachmentFlag) - { - nsCOMPtr messageService; - nsresult rv = GetMessageServiceFromURI(uri, getter_AddRefs(messageService)); - if (messageService) - { - nsCOMPtr msgHdr; - rv = messageService->MessageURIToMsgHdr(uri, getter_AddRefs(msgHdr)); - if (msgHdr) - msgHdr->MarkHasAttachments(PR_TRUE); - } - - mSetAttachmentFlag = PR_TRUE; - } -#endif - mTokenizer.tokenizeAttachment(contentType, NS_ConvertUCS2toUTF8(displayName).get()); return NS_OK; } diff --git a/mailnews/local/src/nsParseMailbox.cpp b/mailnews/local/src/nsParseMailbox.cpp index 8f0b88dd98c..860e49e491b 100644 --- a/mailnews/local/src/nsParseMailbox.cpp +++ b/mailnews/local/src/nsParseMailbox.cpp @@ -1402,6 +1402,12 @@ int nsParseMailMessageState::FinalizeHeaders() } } } + substring = PL_strstr(content_type->value, "multipart/mixed"); + if (substring) + { + PRUint32 newFlags; + m_newMsgHdr->OrFlags(MSG_FLAG_ATTACHMENT, &newFlags); + } } } }