From 6bd66b8a2df3468bdfcd06e883888d57967965c5 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 19 Mar 2024 20:09:30 +0100 Subject: [PATCH] Idea for #1507 --- .../app/libraries/MailSo/Mail/MailClient.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php index e2630dc65..399b34967 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php @@ -389,6 +389,27 @@ class MailClient return ''; } + public function MessageThread(string $sMessageID) : MessageCollection + { + $sMessageID = SearchCriterias::escapeSearchString($this->oImapClient, $sMessageID); + $sSearch = "OR HEADER Message-ID {$sMessageID} HEADER References {$sMessageID}"; + $aResult = []; + try + { + foreach ($this->oImapClient->MessageThread($sSearch) as $mItem) { + // Flatten to single level + \array_walk_recursive($mItem, fn($a) => $aResult[] = $a); + } + } + catch (\MailSo\RuntimeException $oException) + { + \SnappyMail\Log::warning('MailClient', 'MessageListThreadsMap ' . $oException->getMessage()); + unset($oException); + } +// $this->logWrite('MessageThreadList: '.\print_r($threads, 1)); + return $aResult; + } + /** * @throws \InvalidArgumentException * @throws \MailSo\RuntimeException