-use log::debug;
-
use super::Middleware;
/// `MailDrop` can't find folders to sync because it implements `IMAPv3` and
// We'll need to convert the LIST to a FIND
self.tags.push(tag.trim().to_string());
let replacement = format!("{} LIST \"\" \"*\"\r\n", tag.trim());
- debug!("### {replacement}");
return replacement.into_bytes();
}
}
// Transform IMAPv4 "* LIST" lines to IMAPv3 "* MAILBOX"
if line.starts_with("* LIST") {
- if let Some(last_slash_pos) = line.rfind('/') {
- let mailbox_name = line[(last_slash_pos + 1)..].trim();
- return Some(format!("* MAILBOX {mailbox_name}\r"));
+ if let Some(last_slash_pos) = line.rfind("\"/\"") {
+ let mailbox_name = line[(last_slash_pos + 3)..].replace('"', "");
+ return Some(format!("* MAILBOX {}\r", mailbox_name.trim()));
+ }
+ }
+
+ if line.contains("OK") {
+ if let Some(tag) = line.split("OK").next() {
+ return Some(format!("{} OK MAILBOX Completed.\r", tag.trim()).to_string());
}
}