| | |
| | | // ignore "virtual" protocol parts |
| | | else if ($primary_type == 'protocol') |
| | | continue; |
| | | |
| | | |
| | | // part is Microsoft Outlook TNEF (winmail.dat) |
| | | else if ($part_mimetype == 'application/ms-tnef') { |
| | | foreach ((array)$this->imap->tnef_decode($mail_part, $structure->headers['uid']) as $tnef_part) { |
| | |
| | | $this->attachments[] = $tnef_part; |
| | | } |
| | | } |
| | | |
| | | // part is a file/attachment |
| | | else if (preg_match('/^(inline|attach)/', $mail_part->disposition) || |
| | | $mail_part->headers['content-id'] || (empty($mail_part->disposition) && $mail_part->filename)) { |
| | |
| | | $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']); |
| | | if ($mail_part->headers['content-location']) |
| | | $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location']; |
| | | |
| | | |
| | | $this->inline_parts[] = $mail_part; |
| | | } |
| | | // attachment encapsulated within message/rfc822 part needs further decoding (#1486743) |
| | | else if ($part_orig_mimetype == 'message/rfc822') { |
| | | $this->parse_structure($mail_part, true); |
| | | } |
| | | // is a regular attachment |
| | | else if (preg_match('!^[a-z]+/[a-z0-9-.+]+$!i', $part_mimetype)) { |
| | | else if (preg_match('!^[a-z0-9-.+]+/[a-z0-9-.+]+$!i', $part_mimetype)) { |
| | | if (!$mail_part->filename) |
| | | $mail_part->filename = 'Part '.$mail_part->mime_id; |
| | | $this->attachments[] = $mail_part; |