From e0bd7054b7e566bf156e8afdc6d4c790fed0c0f2 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 20 Oct 2010 07:41:48 -0400
Subject: [PATCH] - Add workaround for some Outlook's wrong content-types, per discussion in #1487051

---
 program/steps/mail/func.inc |   10 ++++++++++
 program/steps/mail/show.inc |    2 +-
 program/steps/mail/get.inc  |    1 +
 3 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 668d8c7..629e68b 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1717,6 +1717,16 @@
   return $date;
 }
 
+// Fixes some content-type names
+function rcmail_fix_mimetype($name)
+{
+  // Some versions of Outlook create garbage Content-Type:
+  // application/pdf.A520491B_3BF7_494D_8855_7FAC2C6C0608
+  if (preg_match('/^application\/pdf.+/', $name))
+    $name = 'application/pdf';
+
+  return $name;
+}
 
 function rcmail_search_filter($attrib)
 {
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index 3c4e4fb..5b9e977 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -91,6 +91,7 @@
       header("Content-Type: text/$ctype_secondary; charset=" . ($part->charset ? $part->charset : RCMAIL_CHARSET));
     }
     else {
+      $mimetype = rcmail_fix_mimetype($mimetype);
       header("Content-Type: $mimetype");
       header("Content-Transfer-Encoding: binary");
     }
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 328e9d0..c3046f6 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -172,7 +172,7 @@
               'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)',
               JS_OBJECT_NAME,
               $attach_prop->mime_id,
-              $attach_prop->mimetype),
+              rcmail_fix_mimetype($attach_prop->mimetype)),
               'title' => Q($title),
             ),
             Q($filename)));

--
Gitblit v1.9.1