From bbc8565e5afa7e5352bc3aaf7cf067066ec6d4b1 Mon Sep 17 00:00:00 2001 From: thomascube Date: Thu, 4 Mar 2010 08:17:04 +0000 Subject: [PATCH] Flag original messages after sending a draft (#1486203) --- CHANGELOG | 1 + program/lib/imap.inc | 3 ++- program/steps/mail/compose.inc | 6 +++--- program/steps/mail/sendmail.inc | 6 ++++++ 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'];