diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 36 |
2 files changed, 29 insertions, 8 deletions
@@ -4,6 +4,7 @@ CHANGELOG Roundcube Webmail - Added toolbar button to move message in message view - Improve UI integration of ACL settings - Drop support for PHP < 5.3.7 +- Set In-Reply-To and References for forwarded messages (#1489593) - Fix directories check in Installer on Windows (#1489576) - Fix issue when default_addressbook option is set to integer value (#1489407) - Fix Opera > 15 detection (#1489562) diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 46280292e..2a386706c 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -179,15 +179,21 @@ if (!empty($msg_uid) && empty($COMPOSE['as_attachment'])) { if (!$MESSAGE->headers) { // error } - else if ($compose_mode == RCUBE_COMPOSE_REPLY) { - $COMPOSE['reply_uid'] = $msg_uid; - $COMPOSE['reply_msgid'] = $MESSAGE->headers->messageID; - $COMPOSE['references'] = trim($MESSAGE->headers->references . " " . $MESSAGE->headers->messageID); + else if ($compose_mode == RCUBE_COMPOSE_FORWARD || $compose_mode == RCUBE_COMPOSE_REPLY) { + if ($compose_mode == RCUBE_COMPOSE_REPLY) { + $COMPOSE['reply_msgid'] = $MESSAGE->headers->messageID; - if (!empty($COMPOSE['param']['all'])) { - $MESSAGE->reply_all = $COMPOSE['param']['all']; + if (!empty($COMPOSE['param']['all'])) { + $MESSAGE->reply_all = $COMPOSE['param']['all']; + } + } + else { + $COMPOSE['forward_uid'] = $msg_uid; } + $COMPOSE['reply_msgid'] = $MESSAGE->headers->messageID; + $COMPOSE['references'] = trim($MESSAGE->headers->references . " " . $MESSAGE->headers->messageID); + // Save the sent message in the same folder of the message being replied to if ($RCMAIL->config->get('reply_same_folder') && ($sent_folder = $COMPOSE['mailbox']) && rcmail_check_sent_folder($sent_folder, false) @@ -242,8 +248,9 @@ else { } } -if (!empty($COMPOSE['reply_msgid'])) - $OUTPUT->set_env('reply_msgid', $COMPOSE['reply_msgid']); +if (!empty($COMPOSE['reply_msgid'])) { + $OUTPUT->set_env('reply_msgid', $COMPOSE['reply_msgid']); +} $MESSAGE->compose = array(); @@ -1241,6 +1248,7 @@ function rcmail_write_forward_attachments() $storage = $RCMAIL->get_storage(); $names = array(); + $refs = array(); $loaded_attachments = array(); foreach ((array)$COMPOSE['attachments'] as $attachment) { @@ -1323,6 +1331,18 @@ function rcmail_write_forward_attachments() else if ($path) { @unlink($path); } + + if ($message->headers->messageID) { + $refs[] = $message->headers->messageID; + } + } + + // set In-Reply-To and References headers + if (count($refs) == 1) { + $COMPOSE['reply_msgid'] = $refs[0]; + } + if (!empty($refs)) { + $COMPOSE['references'] = implode(' ', $refs); } } |