From efc24a5fb3d5d70e9066b1994f3b41b248e59ccd Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 09 Aug 2011 04:44:21 -0400
Subject: [PATCH] - Fix handling Mail-Reply-To header in Reply All action
---
program/steps/mail/compose.inc | 18 ++++++------------
1 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index d726d8c..1934194 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -274,17 +274,11 @@
$ident = format_email_recipient($email, $sql_arr['name']);
// select identity
- if (in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT))) {
+ if (in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT, RCUBE_COMPOSE_REPLY))) {
if ($MESSAGE->headers->from == $ident) {
$from_idx = $idx;
break;
}
- }
- // reply to self, force To header value
- else if ($compose_mode == RCUBE_COMPOSE_REPLY && $MESSAGE->headers->from == $ident) {
- $from_idx = $idx;
- $MESSAGE->compose['to'] = $MESSAGE->headers->to;
- break;
}
// set identity if it's one of the reply-message recipients
else if (in_array($email, $a_recipients) && ($from_idx === null || $sql_arr['standard'])) {
@@ -335,13 +329,13 @@
$mailfollowup = $MESSAGE->headers->others['mail-followup-to'];
$mailreplyto = $MESSAGE->headers->others['mail-reply-to'];
- if ($MESSAGE->compose['to'])
- $fvalue = $MESSAGE->compose['to'];
- else if ($MESSAGE->reply_all == 'list' && $mailfollowup)
+ if ($MESSAGE->reply_all == 'list' && $mailfollowup)
$fvalue = $mailfollowup;
else if ($MESSAGE->reply_all == 'list'
&& preg_match('/<mailto:([^>]+)>/i', $MESSAGE->headers->others['list-post'], $m))
$fvalue = $m[1];
+ else if ($MESSAGE->reply_all && $mailfollowup)
+ $fvalue = $mailfollowup;
else if ($mailreplyto)
$fvalue = $mailreplyto;
else if (!empty($MESSAGE->headers->replyto))
@@ -385,7 +379,7 @@
$mailto = mb_strtolower(rcube_idn_to_utf8($addr_part['mailto']));
if (!in_array($mailto, $a_recipients)
- && (empty($MESSAGE->compose['from_email']) || $mailto != $MESSAGE->compose['from_email'])
+ && ($header == 'to' || empty($MESSAGE->compose['from_email']) || $mailto != $MESSAGE->compose['from_email'])
) {
if ($addr_part['name'] && $addr_part['mailto'] != $addr_part['name'])
$string = format_email_recipient($mailto, $addr_part['name']);
@@ -396,7 +390,7 @@
$a_recipients[] = $addr_part['mailto'];
}
}
-
+
$fvalue = implode(', ', $fvalue);
}
--
Gitblit v1.9.1