From b0a8e3693090bd96fc31c4c5f42b77f8fddf9b90 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Wed, 24 Feb 2016 05:18:09 -0500 Subject: [PATCH] Fix handling of body parameter in mail compose request --- program/steps/mail/compose.inc | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 48aef76..0fb6140 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -359,7 +359,12 @@ // 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(); @@ -718,7 +723,10 @@ $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) { -- Gitblit v1.9.1