| | |
| | | | program/include/rcube_message.php | |
| | | | | |
| | | | This file is part of the RoundCube Webmail client | |
| | | | Copyright (C) 2008, RoundCube Dev. - Switzerland | |
| | | | Copyright (C) 2008-2009, RoundCube Dev. - Switzerland | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | |
| | | $this->imap = $this->app->imap; |
| | | |
| | | $this->uid = $uid; |
| | | $this->headers = $this->imap->get_headers($uid); |
| | | $this->headers = $this->imap->get_headers($uid, NULL, true, true); |
| | | |
| | | $this->subject = rcube_imap::decode_mime_string($this->headers->subject, $this->headers->charset); |
| | | list(, $this->sender) = each($this->imap->decode_address_list($this->headers->from)); |
| | | |
| | | $this->set_safe((intval($_GET['_safe']) || $_SESSION['safe_messages'][$uid])); |
| | | |
| | | $this->opt = array( |
| | | 'safe' => $this->is_safe, |
| | | 'prefer_html' => $this->app->config->get('prefer_html'), |
| | | 'get_url' => rcmail_url('get', array('_mbox' => $this->imap->get_mailbox_name(), '_uid' => $uid)) |
| | | ); |
| | | |
| | | if ($this->structure = $this->imap->get_structure($uid)) { |
| | | if ($this->structure = $this->imap->get_structure($uid, $this->headers->body_structure)) { |
| | | $this->get_mime_numbers($this->structure); |
| | | $this->parse_structure($this->structure); |
| | | } |
| | |
| | | $mail_part->type = 'content'; |
| | | $this->parts[] = $mail_part; |
| | | } |
| | | |
| | | |
| | | // list as attachment as well |
| | | if (!empty($mail_part->filename)) |
| | | $this->attachments[] = $mail_part; |
| | |
| | | // skip apple resource forks |
| | | if ($message_ctype_secondary == 'appledouble' && $secondary_type == 'applefile') |
| | | continue; |
| | | |
| | | if ($message_ctype_secondary == 'related' && $mail_part->headers['content-id']) |
| | | $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']); |
| | | if ($message_ctype_secondary == 'related' && $mail_part->headers['content-location']) |
| | | $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location']; |
| | | |
| | | |
| | | // part belongs to a related message |
| | | if ($mail_part->content_id || $mail_part->content_location) { |
| | | $this->inline_parts[] = $mail_part; |
| | | } |
| | | if ($message_ctype_secondary == 'related') { |
| | | if ($mail_part->headers['content-id']) |
| | | $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']; |
| | | |
| | | if ($mail_part->content_id || $mail_part->content_location) { |
| | | $this->inline_parts[] = $mail_part; |
| | | } |
| | | } |
| | | // is regular attachment |
| | | else { |
| | | if (!$mail_part->filename) |