summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-03-04 08:17:04 +0000
committerthomascube <thomas@roundcube.net>2010-03-04 08:17:04 +0000
commitbbc8565e5afa7e5352bc3aaf7cf067066ec6d4b1 (patch)
tree15e5df0355ddffc1367c0b2dd7b48b39b55e2661
parenta96183883d95dc83a7d0951f5b834e44b062f9cf (diff)
Flag original messages after sending a draft (#1486203)
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/imap.inc3
-rw-r--r--program/steps/mail/compose.inc6
-rw-r--r--program/steps/mail/sendmail.inc6
4 files changed, 12 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index cbd39a174..30fe24ec7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
+- Flag original messages when sending a draft (#1486203)
- Changed signature separator when top-posting (#1486330)
- Let the admin define defaults for search modifiers (#1485897)
- Fix long e-mail addresses validation (#1486453)
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 9a5a67bef..2316e404b 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -1450,7 +1450,8 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false, $bo
$request .= "BODY.PEEK[HEADER.FIELDS ";
$request .= "(DATE FROM TO SUBJECT REPLY-TO IN-REPLY-TO CC BCC ";
$request .= "CONTENT-TRANSFER-ENCODING CONTENT-TYPE MESSAGE-ID ";
- $request .= "REFERENCES DISPOSITION-NOTIFICATION-TO X-PRIORITY".$add.")])";
+ $request .= "REFERENCES DISPOSITION-NOTIFICATION-TO X-PRIORITY ";
+ $request .= "X-REPLY-UID X-FORWARD-UID".$add.")])";
if (!iil_PutLine($fp, $request)) {
return false;
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 52a396b0b..fa1ea9533 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -158,9 +158,9 @@ if (!empty($msg_uid))
{
if($MESSAGE->headers->in_reply_to)
{
- // TODO: how to get reply_uid/forward_uid value, maybe we must set X-Reply-UID/X-Forward-UID
- // $_SESSION['compose']['reply_uid'] = ?
- // $_SESSION['compose']['forward_uid'] = ?
+ // get reply_uid/forward_uid to flag the original message when sending
+ $_SESSION['compose']['reply_uid'] = $MESSAGE->headers->others['x-reply-uid'];
+ $_SESSION['compose']['forward_uid'] = $MESSAGE->headers->others['x-forward-uid'];
$_SESSION['compose']['reply_msgid'] = '<'.$MESSAGE->headers->in_reply_to.'>';
}
$_SESSION['compose']['references'] = $MESSAGE->headers->references;
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 134664b85..abd4209c3 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -314,6 +314,12 @@ else if (!empty($identity_arr['reply-to']))
if (!empty($_SESSION['compose']['reply_msgid']))
$headers['In-Reply-To'] = $_SESSION['compose']['reply_msgid'];
+// remember reply/forward UIDs in special headers
+if (!empty($_SESSION['compose']['reply_uid']) && $savedraft)
+ $headers['X-Reply-UID'] = $_SESSION['compose']['reply_uid'];
+else if (!empty($_SESSION['compose']['forward_uid']) && $savedraft)
+ $headers['X-Forward-UID'] = $_SESSION['compose']['forward_uid'];
+
if (!empty($_SESSION['compose']['references']))
$headers['References'] = $_SESSION['compose']['references'];