CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_imap.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_message.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_storage.php | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== - Plugin API: Added message_part_body hook - Add initdb.sh to create database from initial.sql script with prefix support (#1490188) - Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization) - Password plugin: Added 'kpasswd' driver by Peter Allgeyer program/lib/Roundcube/rcube_imap.php
@@ -1957,6 +1957,16 @@ for ($i=1; $i<count($part); $i++) { if (!is_array($part[$i])) { $struct->ctype_secondary = strtolower($part[$i]); // read content type parameters if (is_array($part[$i+1])) { $struct->ctype_parameters = array(); for ($j=0; $j<count($part[$i+1]); $j+=2) { $param = strtolower($part[$i+1][$j]); $struct->ctype_parameters[$param] = $part[$i+1][$j+1]; } } break; } } @@ -2364,36 +2374,38 @@ /** * Returns the whole message source as string (or saves to a file) * * @param int $uid Message UID * @param resource $fp File pointer to save the message * @param int $uid Message UID * @param resource $fp File pointer to save the message * @param string $part Optional message part ID * * @return string Message source string */ public function get_raw_body($uid, $fp=null) public function get_raw_body($uid, $fp=null, $part = null) { if (!$this->check_connection()) { return null; } return $this->conn->handlePartBody($this->folder, $uid, true, null, null, false, $fp); true, $part, null, false, $fp); } /** * Returns the message headers as string * * @param int $uid Message UID * @param int $uid Message UID * @param string $part Optional message part ID * * @return string Message headers string */ public function get_raw_headers($uid) public function get_raw_headers($uid, $part = null) { if (!$this->check_connection()) { return null; } return $this->conn->fetchPartHeader($this->folder, $uid, true); return $this->conn->fetchPartHeader($this->folder, $uid, true, $part); } program/lib/Roundcube/rcube_message.php
@@ -53,13 +53,13 @@ public $uid; public $folder; public $headers; public $parts = array(); public $mime_parts = array(); public $sender; public $parts = array(); public $mime_parts = array(); public $inline_parts = array(); public $attachments = array(); public $subject = ''; public $sender = null; public $is_safe = false; public $attachments = array(); public $subject = ''; public $is_safe = false; const BODY_MAX_SIZE = 1048576; // 1MB @@ -216,6 +216,10 @@ if (!($part = $this->mime_parts[$mime_id])) { return; } // allow plugins to modify part body $plugin = $this->app->plugins->exec_hook('message_part_body', array('object' => $this, 'part' => $part)); // only text parts can be formatted $formatted = $formatted && $part->ctype_primary == 'text'; @@ -499,8 +503,9 @@ $structure->headers = rcube_mime::parse_headers($headers); } } else else { $mimetype = $structure->mimetype; } // show message headers if ($recursive && is_array($structure->headers) && @@ -516,11 +521,15 @@ array('object' => $this, 'structure' => $structure, 'mimetype' => $mimetype, 'recursive' => $recursive)); if ($plugin['abort']) if ($plugin['abort']) { return; } $structure = $plugin['structure']; list($message_ctype_primary, $message_ctype_secondary) = explode('/', $plugin['mimetype']); $mimetype = $plugin['mimetype']; $recursive = $plugin['recursive']; list($message_ctype_primary, $message_ctype_secondary) = explode('/', $mimetype); // print body if message doesn't have multiple parts if ($message_ctype_primary == 'text' && !$recursive) { @@ -673,7 +682,7 @@ } else { $part_mimetype = $part_orig_mimetype = $mail_part->mimetype; } } // multipart/alternative if ($primary_type == 'multipart') { program/lib/Roundcube/rcube_storage.php
@@ -492,22 +492,24 @@ /** * Returns the whole message source as string (or saves to a file) * * @param int $uid Message UID * @param resource $fp File pointer to save the message * @param int $uid Message UID * @param resource $fp File pointer to save the message * @param string $part Optional message part ID * * @return string Message source string */ abstract function get_raw_body($uid, $fp = null); abstract function get_raw_body($uid, $fp = null, $part = null); /** * Returns the message headers as string * * @param int $uid Message UID * @param int $uid Message UID * @param string $part Optional message part ID * * @return string Message headers string */ abstract function get_raw_headers($uid); abstract function get_raw_headers($uid, $part = null); /**