From 90d8e0cedcd339d05d7da8489f38cb318b9b8c17 Mon Sep 17 00:00:00 2001 From: link2xt Date: Tue, 15 Nov 2022 23:27:15 +0000 Subject: [PATCH] Fix detection of Trash, Junk, All etc. folders imap_proto has been updated, so attributes like `\All`, `\Junk` from RFC 3501 and RFC 6154 are no longer considered extensions. --- CHANGELOG.md | 1 + src/imap.rs | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f35905fb..e25db8be5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### API-Changes ### Fixes +- fix detection of "All mail", "Trash", "Junk" etc folders. #3760 ## 1.101.0 diff --git a/src/imap.rs b/src/imap.rs index f643a2b6a..91b0c4782 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -1949,15 +1949,20 @@ fn get_folder_meaning_by_name(folder_name: &str) -> FolderMeaning { fn get_folder_meaning(folder_name: &Name) -> FolderMeaning { for attr in folder_name.attributes() { - if let NameAttribute::Extension(ref label) = attr { - match label.as_ref() { - "\\Trash" => return FolderMeaning::Other, - "\\Sent" => return FolderMeaning::Sent, - "\\Spam" | "\\Junk" => return FolderMeaning::Spam, - "\\Drafts" => return FolderMeaning::Drafts, - "\\All" | "\\Important" | "\\Flagged" => return FolderMeaning::Virtual, - _ => {} - }; + match attr { + NameAttribute::Trash => return FolderMeaning::Other, + NameAttribute::Sent => return FolderMeaning::Sent, + NameAttribute::Junk => return FolderMeaning::Spam, + NameAttribute::Drafts => return FolderMeaning::Drafts, + NameAttribute::All | NameAttribute::Flagged => return FolderMeaning::Virtual, + NameAttribute::Extension(ref label) => { + match label.as_ref() { + "\\Spam" => return FolderMeaning::Spam, + "\\Important" => return FolderMeaning::Virtual, + _ => {} + }; + } + _ => {} } } FolderMeaning::Unknown