From 921115ed56cfcd0527b94bf599d4a80bc7f86616 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 07 Feb 2013 12:17:25 -0500
Subject: [PATCH] Ignore file extension difference for text/plain attachments (#1488891)

---
 program/steps/mail/get.inc |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index fddb40a..84e666f 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -121,7 +121,7 @@
       $valid = $file_extension && in_array($file_extension, (array)$extensions);
 
       // 2. detect the real mimetype of the attachment part and compare it with the stated mimetype and filename extension
-      if ($valid || !$file_extension || $mimetype == 'application/octet-stream') {
+      if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || $mimetype == 'text/plain') {
         if ($part->body)  // part body is already loaded
           $body = $part->body;
         else if ($part->size && $part->size < 1024*1024)   // load the entire part if it's small enough
@@ -133,6 +133,10 @@
         $real_mimetype = rcube_mime::file_content_type($body, $part->filename, $mimetype, true, true);
         list($real_ctype_primary, $real_ctype_secondary) = explode('/', $real_mimetype);
 
+        // accept text/plain with any extension
+        if ($real_mimetype == 'text/plain' && $real_mimetype == $mimetype)
+          $file_extension = 'txt';
+
         // ignore differences in text/* mimetypes. Filetype detection isn't very reliable here
         if ($real_ctype_primary == 'text' && strpos($mimetype, $real_ctype_primary) === 0)
           $real_mimetype = $mimetype;

--
Gitblit v1.9.1