diff options
author | Aleksander Machniak <alec@alec.pl> | 2012-11-28 20:21:09 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2012-11-28 20:21:09 +0100 |
commit | 30cc01f89daea932d15a1a505d25b543913664ac (patch) | |
tree | f01818f99232bd3b9a500ed2cbc7a9e187e6d99d /program/lib/Roundcube | |
parent | 511e1668e6f4a00818128e6b6c7dea0f75d33672 (diff) |
Use Delivered-To header as a last resort for identity selection (#1488840)
Diffstat (limited to 'program/lib/Roundcube')
-rw-r--r-- | program/lib/Roundcube/rcube_imap_generic.php | 10 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_storage.php | 1 |
2 files changed, 7 insertions, 4 deletions
diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php index 70fd6eb2c..ae0bfdd6c 100644 --- a/program/lib/Roundcube/rcube_imap_generic.php +++ b/program/lib/Roundcube/rcube_imap_generic.php @@ -2206,10 +2206,13 @@ class rcube_imap_generic } break; default: - if (strlen($field) > 2) { - $result[$id]->others[$field] = $string; + if (strlen($field) < 3) { + break; } - break; + if ($result[$id]->others[$field]) { + $string = array_merge((array)$result[$id]->others[$field], (array)$string); + } + $result[$id]->others[$field] = $string; } } } @@ -2217,7 +2220,6 @@ class rcube_imap_generic // VANISHED response (QRESYNC RFC5162) // Sample: * VANISHED (EARLIER) 300:310,405,411 - else if (preg_match('/^\* VANISHED [()EARLIER]*/i', $line, $match)) { $line = substr($line, strlen($match[0])); $v_data = $this->tokenizeResponse($line, 1); diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php index 1556aae41..245d911c0 100644 --- a/program/lib/Roundcube/rcube_storage.php +++ b/program/lib/Roundcube/rcube_storage.php @@ -64,6 +64,7 @@ abstract class rcube_storage 'MAIL-FOLLOWUP-TO', 'MAIL-REPLY-TO', 'RETURN-PATH', + 'DELIVERED-TO', ); const UNKNOWN = 0; |