From 937a0eb82e518f46e671a083c13dd3572e5c9856 Mon Sep 17 00:00:00 2001 From: matidau <65836048+matidau@users.noreply.github.com> Date: Sat, 13 Jul 2024 11:32:35 +1000 Subject: [PATCH 1/2] Imap backend 16.1 - Drafts set isdrafts --- src/backend/imap/imap.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/backend/imap/imap.php b/src/backend/imap/imap.php index 25df403c..a99c5e5d 100644 --- a/src/backend/imap/imap.php +++ b/src/backend/imap/imap.php @@ -1112,6 +1112,14 @@ public function GetMessageList($folderid, $cutoffdate) { $message["star"] = 0; } + // 'draft' + if (isset($overview->draft) && $overview->draft) { + $message["draft"] = 1; + } + else { + $message["draft"] = 0; + } + $messages[] = $message; } } @@ -1362,6 +1370,14 @@ public function GetMessage($folderid, $id, $contentparameters) { $output->lastverbexecuted = SYNC_MAIL_LASTVERB_UNKNOWN; } } + + if (Request::GetProtocolVersion() >= 16.0) { + + //set so message is fully exported + if (isset($stat["draft"]) && $stat["draft"]) { + $output->isdraft = true; + } + } } $Mail_RFC822 = new Mail_RFC822(); @@ -1622,6 +1638,14 @@ public function StatMessage($folderid, $id) { $entry["star"] = 0; } + // 'draft' + if (isset($overview[0]->draft) && $overview[0]->draft) { + $entry["draft"] = 1; + } + else { + $entry["draft"] = 0; + } + return $entry; } From 1d4b418e4d40767427f75e139356c55aa454951b Mon Sep 17 00:00:00 2001 From: matidau <65836048+matidau@users.noreply.github.com> Date: Sun, 28 Jul 2024 11:52:54 +1000 Subject: [PATCH 2/2] AS16.1 - Is Draft Folder --- src/backend/imap/imap.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/imap/imap.php b/src/backend/imap/imap.php index a99c5e5d..2b9c103b 100644 --- a/src/backend/imap/imap.php +++ b/src/backend/imap/imap.php @@ -1113,7 +1113,9 @@ public function GetMessageList($folderid, $cutoffdate) { } // 'draft' - if (isset($overview->draft) && $overview->draft) { + $isdraftfolder = ($this->GetFolder($this->getFolderIdFromImapId($folderid))->type === SYNC_FOLDER_TYPE_DRAFTS); + + if ((isset($overview->draft) && $overview->draft) || $isdraftfolder) { $message["draft"] = 1; } else { @@ -1639,7 +1641,9 @@ public function StatMessage($folderid, $id) { } // 'draft' - if (isset($overview[0]->draft) && $overview[0]->draft) { + $isdraftfolder = ($this->GetFolder($folderid)->type === SYNC_FOLDER_TYPE_DRAFTS); + + if ((isset($overview->draft) && $overview->draft) || $isdraftfolder) { $entry["draft"] = 1; } else {