| | |
| | | | program/steps/mail/compose.inc | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2013, The Roundcube Dev Team | |
| | | | Copyright (C) 2005-2016, The Roundcube Dev Team | |
| | | | | |
| | | | Licensed under the GNU General Public License version 3 or | |
| | | | any later version with exceptions for skins & plugins. | |
| | |
| | | $MESSAGE = new rcube_message($msg_uid); |
| | | |
| | | // make sure message is marked as read |
| | | if ($MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN'])) { |
| | | if ($MESSAGE->headers && $MESSAGE->context === null && empty($MESSAGE->headers->flags['SEEN'])) { |
| | | $RCMAIL->storage->set_flag($msg_uid, 'SEEN'); |
| | | } |
| | | |
| | |
| | | } |
| | | else if ($compose_mode == RCUBE_COMPOSE_FORWARD || $compose_mode == RCUBE_COMPOSE_REPLY) { |
| | | if ($compose_mode == RCUBE_COMPOSE_REPLY) { |
| | | $COMPOSE['reply_uid'] = $msg_uid; |
| | | $COMPOSE['reply_uid'] = $MESSAGE->context === null ? $msg_uid : null; |
| | | |
| | | if (!empty($COMPOSE['param']['all'])) { |
| | | $MESSAGE->reply_all = $COMPOSE['param']['all']; |
| | |
| | | // process $MESSAGE body/attachments, set $MESSAGE_BODY/$HTML_MODE vars and some session data |
| | | $MESSAGE_BODY = rcmail_prepare_message_body(); |
| | | |
| | | $OUTPUT->include_script('publickey.js'); |
| | | |
| | | // register UI objects |
| | | $OUTPUT->add_handlers(array( |
| | |
| | | |
| | | // clean HTML message body which can be submitted by URL |
| | | if (!empty($COMPOSE['param']['body'])) { |
| | | $COMPOSE['param']['body'] = rcmail_wash_html($COMPOSE['param']['body'], array('safe' => false, 'inline_html' => true), array()); |
| | | if ($COMPOSE['param']['html'] = strpos($COMPOSE['param']['body'], '<') !== false) { |
| | | $wash_params = array('safe' => false, 'inline_html' => true); |
| | | $COMPOSE['param']['body'] = rcmail_wash_html($COMPOSE['param']['body'], $wash_params, array()); |
| | | $COMPOSE['param']['body'] = preg_replace('/<!--[^>\n]+>/', '', $COMPOSE['param']['body']); |
| | | $COMPOSE['param']['body'] = preg_replace('/<\/?body>/', '', $COMPOSE['param']['body']); |
| | | } |
| | | } |
| | | |
| | | $RCMAIL = rcmail::get_instance(); |
| | |
| | | $html_editor = intval($RCMAIL->config->get('htmleditor')); |
| | | $compose_mode = $COMPOSE['mode']; |
| | | |
| | | if (isset($_POST['_is_html'])) { |
| | | if (is_bool($COMPOSE['param']['html'])) { |
| | | $useHtml = $COMPOSE['param']['html']; |
| | | } |
| | | else if (isset($_POST['_is_html'])) { |
| | | $useHtml = !empty($_POST['_is_html']); |
| | | } |
| | | else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT) { |
| | |
| | | |
| | | if (!empty($MESSAGE->parts)) { |
| | | // collect IDs of message/rfc822 parts |
| | | foreach ($MESSAGE->mime_parts as $part) { |
| | | foreach ($MESSAGE->mime_parts() as $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | |
| | | $reply_mode = intval($RCMAIL->config->get('reply_mode')); |
| | | |
| | | if (!$bodyIsHtml) { |
| | | $body = preg_replace('/\r?\n/', "\n", $body); |
| | | $body = trim($body, "\n"); |
| | | |
| | | // soft-wrap and quote message text |
| | | $body = rcmail_wrap_and_quote($body, $LINE_LENGTH); |
| | | |
| | |
| | | return $cid_map; |
| | | } |
| | | |
| | | foreach ((array)$message->mime_parts as $pid => $part) { |
| | | foreach ((array) $message->mime_parts() as $pid => $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | |
| | | return $cid_map; |
| | | } |
| | | |
| | | foreach ((array)$message->mime_parts as $pid => $part) { |
| | | foreach ((array) $message->mime_parts() as $pid => $part) { |
| | | if ($part->mimetype == 'message/rfc822') { |
| | | $messages[] = $part->mime_id; |
| | | } |
| | |
| | | 'id' => 'rcmli%s', 'class' => '%s'), |
| | | html::a(array('href' => '#list', |
| | | 'rel' => '%s', |
| | | 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('list-adresses','%s',this)"), '%s')); |
| | | 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('list-addresses','%s',this)"), '%s')); |
| | | |
| | | foreach ($RCMAIL->get_address_sources(false, true) as $j => $source) { |
| | | $id = strval(strlen($source['id']) ? $source['id'] : $j); |