| | |
| | | class rcube_message |
| | | { |
| | | /** |
| | | * Instace of rcmail. |
| | | * Instace of framework class. |
| | | * |
| | | * @var rcmail |
| | | * @var rcube |
| | | */ |
| | | private $app; |
| | | |
| | |
| | | function __construct($uid) |
| | | { |
| | | $this->uid = $uid; |
| | | $this->app = rcmail::get_instance(); |
| | | $this->app = rcube::get_instance(); |
| | | $this->storage = $this->app->get_storage(); |
| | | $this->storage->set_options(array('all_headers' => true)); |
| | | |
| | |
| | | $this->opt = array( |
| | | 'safe' => $this->is_safe, |
| | | 'prefer_html' => $this->app->config->get('prefer_html'), |
| | | 'get_url' => rcmail_url('get', array( |
| | | '_mbox' => $this->storage->get_folder(), '_uid' => $uid)) |
| | | 'get_url' => $this->app->url(array( |
| | | 'action' => 'get', |
| | | 'mbox' => $this->storage->get_folder(), |
| | | 'uid' => $uid)) |
| | | ); |
| | | |
| | | if (!empty($this->headers->structure)) { |
| | |
| | | /** |
| | | * Get content of a specific part of this message |
| | | * |
| | | * @param string $mime_id Part MIME-ID |
| | | * @param resource $fp File pointer to save the message part |
| | | * @param string $mime_id Part MIME-ID |
| | | * @param resource $fp File pointer to save the message part |
| | | * @param boolean $skip_charset_conv Disables charset conversion |
| | | * |
| | | * @return string Part content |
| | | */ |
| | | public function get_part_content($mime_id, $fp=NULL) |
| | | public function get_part_content($mime_id, $fp = null, $skip_charset_conv = false) |
| | | { |
| | | if ($part = $this->mime_parts[$mime_id]) { |
| | | // stored in message structure (winmail/inline-uuencode) |
| | |
| | | return $fp ? true : $part->body; |
| | | } |
| | | // get from IMAP |
| | | return $this->storage->get_message_part($this->uid, $mime_id, $part, NULL, $fp); |
| | | return $this->storage->get_message_part($this->uid, $mime_id, $part, NULL, $fp, $skip_charset_conv); |
| | | } else |
| | | return null; |
| | | } |
| | |
| | | $c->type = 'content'; |
| | | $c->ctype_primary = 'text'; |
| | | $c->ctype_secondary = 'plain'; |
| | | $c->body = rcube_label('htmlmessage'); |
| | | $c->mimetype = 'text/plain'; |
| | | $c->realtype = 'text/html'; |
| | | |
| | | $this->parts[] = $c; |
| | | } |
| | |
| | | // add html part as attachment |
| | | if ($html_part !== null && $structure->parts[$html_part] !== $print_part) { |
| | | $html_part = &$structure->parts[$html_part]; |
| | | $html_part->filename = rcube_label('htmlmessage'); |
| | | $html_part->mimetype = 'text/html'; |
| | | |
| | | $this->attachments[] = $html_part; |
| | |
| | | $p->type = 'content'; |
| | | $p->ctype_primary = 'text'; |
| | | $p->ctype_secondary = 'plain'; |
| | | $p->body = rcube_label('encryptedmessage'); |
| | | $p->size = strlen($p->body); |
| | | $p->mimetype = 'text/plain'; |
| | | $p->realtype = 'multipart/encrypted'; |
| | | |
| | | $this->parts[] = $p; |
| | | } |
| | |
| | | $uupart->size = strlen($uupart->body); |
| | | $uupart->mime_id = 'uu.' . $part->mime_id . '.' . $pid; |
| | | |
| | | $ctype = rc_mime_content_type($uupart->body, $uupart->filename, 'application/octet-stream', true); |
| | | $ctype = rcube_mime::content_type($uupart->body, $uupart->filename, 'application/octet-stream', true); |
| | | $uupart->mimetype = $ctype; |
| | | list($uupart->ctype_primary, $uupart->ctype_secondary) = explode('/', $ctype); |
| | | |