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