summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-03-31 19:31:44 +0200
committerAleksander Machniak <alec@alec.pl>2014-03-31 19:31:44 +0200
commit73076d7ea69df0e1dedf231aeb7f4602532a6ff3 (patch)
tree61fb4e433f70a32bab67b9ae3b82d2f3f0e6047f
parent57e5d735e213b9e868f6996626f373688d647a57 (diff)
Set In-Reply-To and References for forwarded messages (#1489593)
-rw-r--r--CHANGELOG1
-rw-r--r--program/steps/mail/compose.inc36
2 files changed, 29 insertions, 8 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b78d4cdae..93f9b85b9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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);
}
}