- Fix bug where when replying always the last identity is used (#1488101)

release-0.7
alecpl 13 years ago
parent 00d42426f2
commit 90a6aff022

@ -620,7 +620,7 @@ function getCookie(name)
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
var end = dc.indexOf(";", begin);
if (end == -1)
end = dc.length;

@ -242,21 +242,27 @@ else if (!empty($_SESSION['compose']['param']['from'])) {
$MESSAGE->compose['from'] = $_SESSION['compose']['param']['from'];
}
else if (count($MESSAGE->identities)) {
// extract all recipients of the reply-message
$a_recipients = array();
$a_names = array();
// extract all recipients of the reply-message
if (is_object($MESSAGE->headers) && in_array($compose_mode, array(RCUBE_COMPOSE_REPLY, RCUBE_COMPOSE_FORWARD)))
{
$a_to = $IMAP->decode_address_list($MESSAGE->headers->to);
foreach ($a_to as $addr) {
if (!empty($addr['mailto']))
if (!empty($addr['mailto'])) {
$a_recipients[] = strtolower($addr['mailto']);
$a_names[] = $addr['name'];
}
}
if (!empty($MESSAGE->headers->cc)) {
$a_cc = $IMAP->decode_address_list($MESSAGE->headers->cc);
foreach ($a_cc as $addr) {
if (!empty($addr['mailto']))
if (!empty($addr['mailto'])) {
$a_recipients[] = strtolower($addr['mailto']);
$a_names[] = $addr['name'];
}
}
}
}
@ -285,10 +291,13 @@ else if (count($MESSAGE->identities)) {
break;
}
// use replied message recipients
else if (in_array($ident['email_ascii'], $a_recipients)) {
else if (($found = array_search($ident['email_ascii'], $a_recipients)) !== false) {
// match identity name, prefer default identity
if ($from_idx === null || ($a_names[$found] && $ident['name'] && $a_names[$found] == $ident['name'])) {
$from_idx = $idx;
}
}
}
// Fallback using Return-Path
if ($from_idx === null && $return_path) {

Loading…
Cancel
Save