11 years ago User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/ Iceweasel/3.0.1 (Debian-3.0.1-1) Build Identifier: Some mail applications out there (especially web mailers) send PDF attachments with content-type application/octet-stream instead of application/pdf. When you open such a mail, Thunderbird only looks at the MIME header and does not open acroread when it encounters application/octet-stream. As PDF is an often used format and there are somany broken mailers I'd propose to use the attached patch (or any adaption of it) that let Thunderbird check whether the attachment with the type octet-stream has a name that ends with '.pdf' and in that case resets the content-type to application/pdf. Reproducible: Always Steps to Reproduce: 1.Send yourself a mail with PDF attachment and content-type 'application/octet-stream' 2.Open the mail in the viewer window 3.Click on attachment Actual Results: A dialog opens where the found attachment is recognized as 'binary data' and you get asked what to do with it.
Convert HTML to PDF using c# Hi,Here is a. Dragon ball z sparking neo wii iso. NET library that converts HTML pages to PDF documents: http: //www. How to Convert web page into PDF Now I able to convert datatable into Pdf file with the help of itextSharp.
Expected Results: The attachment should be recognized as PDF (from the file name) and the user be asked whether to open it with acroread (or what ever). 11 years ago @Magnus no, unfortunately it doesn't work. I tried to add code like that at other places as well (mimemsg.cpp or mimemult.cpp) but there seems to be other places where the content-type header is accessed directly via MimeHeaders_get() and the rewrite has no effect. The only way I see is to make the rewrite inside MimeHeaders_get(), however there is no MimeDisplayOptions argument available to query the filename via MimeHeaders_get_name(). Any idea how to fix that? Where is the best place to add such a rewrite check?
10 years ago Comment on patch, v3 This looks good. >+ // some mailer use application/octet-stream wrongly as content-type, >+ // fix it here by determine content type from name extension >+ if (contentType == nsCAutoString(APPLICATION_OCTET_STREAM)) { It's possible to avoid constructing a new string object here by taking advantage of nsCAutoString.Equals ability to take literal arguments. >+ char *name = MimeHeaders_get_name(headers, mdd->options); >+ if (name) { >+ contentType = nsCAutoString(mime_file_type(name, mdd->options->Driver bolt 4g mv1. stream_closure)); nsCAutoString.Assign can be used similarly. >+ PR_Free(name); Since MimeHeaders_get_name allocates using PL_strdup, its return values want to be freed with PL_strfree. The same applies to the code added in mimemult.cpp. >+// Utility to get mime type from file name >+extern 'C' char *mime_file_type (const char *filename, void *stream_closure); We're trying to move towards a better world of automatically generated documentation by using doxygen-style comments when possible.
I've made the above tweaks in a new iteration of the patch which I'll upload momentarily. 10 years ago Created patch, v4 I think it's important that bienvenu do the superreview here, as he seems most likely to catch any unintended consequences this patch could have. Relevant stuff: * I haven't been able to test this meaningfully, since this bug doesn't seem to occur on Mac. * Are _both_ of the application/octet-stream override clauses actually required? * I spent some time a little while back talking to dveditz, sayre, and bz about whether there was any obvious security risk of overriding the sender-specified content type. After talking this over a bunch, we didn't see one.