| | |
| | | * |
| | | * Provide a uid, and parse message structure. |
| | | * |
| | | * @param string $uid The message UID. |
| | | * @param string $folder Folder name |
| | | * @param string $uid The message UID. |
| | | * @param string $folder Folder name |
| | | * @param bool $is_safe Security flag |
| | | * |
| | | * @see self::$app, self::$storage, self::$opt, self::$parts |
| | | */ |
| | | function __construct($uid, $folder = null) |
| | | function __construct($uid, $folder = null, $is_safe = false) |
| | | { |
| | | // decode combined UID-folder identifier |
| | | if (preg_match('/^\d+-.+/', $uid)) { |
| | | list($uid, $folder) = explode('-', $uid, 2); |
| | | } |
| | | |
| | | $this->uid = $uid; |
| | | $this->app = rcube::get_instance(); |
| | | $this->uid = $uid; |
| | | $this->app = rcube::get_instance(); |
| | | $this->storage = $this->app->get_storage(); |
| | | $this->folder = strlen($folder) ? $folder : $this->storage->get_folder(); |
| | | $this->storage->set_options(array('all_headers' => true)); |
| | | |
| | | // Set current folder |
| | | $this->storage->set_folder($this->folder); |
| | | $this->storage->set_options(array('all_headers' => true)); |
| | | |
| | | $this->headers = $this->storage->get_message($uid); |
| | | |
| | |
| | | $this->subject = $this->headers->get('subject'); |
| | | list(, $this->sender) = each($this->mime->decode_address_list($this->headers->from, 1)); |
| | | |
| | | $this->set_safe((intval($_GET['_safe']) || $_SESSION['safe_messages'][$this->folder.':'.$uid])); |
| | | $this->set_safe($is_safe || $_SESSION['safe_messages'][$this->folder.':'.$uid]); |
| | | $this->opt = array( |
| | | 'safe' => $this->is_safe, |
| | | 'prefer_html' => $this->app->config->get('prefer_html'), |