summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-11-28 20:21:09 +0100
committerAleksander Machniak <alec@alec.pl>2012-11-28 20:21:09 +0100
commit30cc01f89daea932d15a1a505d25b543913664ac (patch)
treef01818f99232bd3b9a500ed2cbc7a9e187e6d99d /program/lib
parent511e1668e6f4a00818128e6b6c7dea0f75d33672 (diff)
Use Delivered-To header as a last resort for identity selection (#1488840)
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/Roundcube/rcube_imap_generic.php10
-rw-r--r--program/lib/Roundcube/rcube_storage.php1
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;