Skip to content

Commit 2779af3

Browse files
authored
Merge pull request #1751 from mercihabam/fix-ews
fix(backend): ews mailbox fails to load when only one item is present
2 parents d489562 + 32540cc commit 2779af3

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

modules/imap/hm-ews.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -565,12 +565,21 @@ public function get_message_list($itemIds, $include_preview = false) {
565565
$result = $this->ews->GetItem($request);
566566
$messages = [];
567567

568-
foreach ($result as $message) {
569-
$flags = $this->extract_flags($message);
570-
$uid = bin2hex($message->getItemId()->getId());
571-
$msg = $this->getMessageProperties($message, $uid, $flags, $include_preview);
572-
$messages[$uid] = $msg;
568+
// For a mailbox with a single item, EWS returns the item directly instead of an array
569+
if (! is_array($result)) {
570+
$uid = bin2hex($result->getItemId()->getId());
571+
$flags = $this->extract_flags($result);
572+
$messages[$uid] = $this->getMessageProperties($result, $uid, $flags, $include_preview);
573+
return $messages;
574+
} else {
575+
foreach ($result as $message) {
576+
$flags = $this->extract_flags($message);
577+
$uid = bin2hex($message->getItemId()->getId());
578+
$msg = $this->getMessageProperties($message, $uid, $flags, $include_preview);
579+
$messages[$uid] = $msg;
580+
}
573581
}
582+
574583
return $messages;
575584
}
576585

0 commit comments

Comments
 (0)