From c27bf65fad6904a8e0450cb7040bf372e1051f5e Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Sun, 10 Feb 2013 16:58:22 -0500
Subject: [PATCH] Mime encode attachments to uft-8

---
 include/class.mailparse.php | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index 8d162e52a..c61573d46 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -164,6 +164,11 @@ class Mail_Parse {
         return $data;
     }
 
+     
+    function mime_encode($text, $charset=null, $encoding='utf-8') {
+        return Format::encode($text, $charset, $encoding);
+    }
+
     function getAttachments($part=null){
 
         if($part==null)
@@ -173,10 +178,20 @@ class Mail_Parse {
                 && (!strcasecmp($part->disposition,'attachment') 
                     || !strcasecmp($part->disposition,'inline') 
                     || !strcasecmp($part->ctype_primary,'image'))){
+            
             if(!($filename=$part->d_parameters['filename']) && $part->d_parameters['filename*'])
                 $filename=$part->d_parameters['filename*']; //Do we need to decode?
+           
+            $file=array(
+                    'name'  => $filename, 
+                    'type'  => strtolower($part->ctype_primary.'/'.$part->ctype_secondary),
+                    'data'  => $this->mime_encode($part->body, $part->ctype_parameters['charset'])
+                    );
+
+            if(!$this->decode_bodies && $part->headers['content-transfer-encoding'])
+                $file['encoding'] = $part->headers['content-transfer-encoding'];
 
-            return array(array('filename'=>$filename,'body'=>$part->body));
+            return array($file);
         }
 
         $files=array();
-- 
GitLab