summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-12-12 08:54:33 +0100
committerAleksander Machniak <alec@alec.pl>2012-12-12 08:54:33 +0100
commitbb5d7282855dd83ccdd211cb77d0776dce71468e (patch)
tree371bfc9a6e7fb5679fe6db5f59bc8acd353a2334 /program
parent3a1a361422c93da782d51719df5112fe734dd11c (diff)
Use also Envelope-To for identity selection (#1488553)
Diffstat (limited to 'program')
-rw-r--r--program/lib/Roundcube/rcube_storage.php1
-rw-r--r--program/steps/mail/compose.inc10
2 files changed, 11 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php
index 245d911c0..7ec05b7af 100644
--- a/program/lib/Roundcube/rcube_storage.php
+++ b/program/lib/Roundcube/rcube_storage.php
@@ -65,6 +65,7 @@ abstract class rcube_storage
'MAIL-REPLY-TO',
'RETURN-PATH',
'DELIVERED-TO',
+ 'ENVELOPE-TO',
);
const UNKNOWN = 0;
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index d181a72e6..d764f5289 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -455,6 +455,16 @@ function rcmail_identity_select($MESSAGE, $identities, $compose_mode)
}
}
+ // Fallback using Envelope-To
+ if ($from_idx === null && ($envelope_to = $MESSAGE->headers->others['envelope-to'])) {
+ foreach ($identities as $idx => $ident) {
+ if (in_array($ident['email_ascii'], (array)$envelope_to)) {
+ $from_idx = $idx;
+ break;
+ }
+ }
+ }
+
return $identities[$from_idx !== null ? $from_idx : $default_identity];
}