| | |
| | | $struct->ctype_primary = 'multipart'; |
| | | |
| | | // find first non-array entry |
| | | for ($i=1; count($part); $i++) |
| | | for ($i=1; $i<count($part); $i++) |
| | | if (!is_array($part[$i])) |
| | | { |
| | | $struct->ctype_secondary = strtolower($part[$i]); |
| | |
| | | |
| | | $struct->parts = array(); |
| | | for ($i=0, $count=0; $i<count($part); $i++) |
| | | if (is_array($part[$i]) && count($part[$i]) > 5) |
| | | if (is_array($part[$i]) && count($part[$i]) > 3) |
| | | $struct->parts[] = $this->_structure_part($part[$i], ++$count, $struct->mime_id); |
| | | |
| | | return $struct; |
| | |
| | | if (is_array($part[8]) && empty($struct->parts)) |
| | | $struct->parts[] = $this->_structure_part($part[8], ++$count, $struct->mime_id); |
| | | } |
| | | |
| | | |
| | | // normalize filename property |
| | | if ($filename_mime = $struct->d_parameters['filename'] ? $struct->d_parameters['filename'] : $struct->ctype_parameters['name']) |
| | | $struct->filename = rcube_imap::decode_mime_string($filename_mime, $this->default_charset); |
| | | { |
| | | $struct->filename = rcube_imap::decode_mime_string($filename_mime, |
| | | $struct->charset ? $struct->charset : rc_detect_encoding($filename_mime, $this->default_charset)); |
| | | } |
| | | else if ($filename_encoded = $struct->d_parameters['filename*'] ? $struct->d_parameters['filename*'] : $struct->ctype_parameters['name*']) |
| | | { |
| | | // decode filename according to RFC 2231, Section 4 |
| | |
| | | $struct->filename = rcube_charset_convert(urldecode($filename_urlencoded), $filename_charset); |
| | | } |
| | | else if (!empty($struct->headers['content-description'])) |
| | | $struct->filename = rcube_imap::decode_mime_string($struct->headers['content-description'], $this->default_charset); |
| | | $struct->filename = rcube_imap::decode_mime_string($struct->headers['content-description'], |
| | | $struct->charset ? $struct->charset : rc_detect_encoding($struct->headers['content-description'],$this->default_charset)); |
| | | |
| | | return $struct; |
| | | } |