Yurii Sokolovskyi vor 1 Monat
Ursprung
Commit
6ae4005ee6
1 geänderte Dateien mit 8 neuen und 3 gelöschten Zeilen
  1. 8 3
      src/imap.rs

+ 8 - 3
src/imap.rs

@@ -334,9 +334,14 @@ pub async fn check_for_updates(mailbox: String) -> anyhow::Result<()> {
 
             match idle_wait.await.unwrap() {
                 NewData(data) => {
-                    let s = String::from_utf8(data.borrow_owner().to_vec()).unwrap();
-                    println!("IDLE data:\n{}", s);
-                    // Process the data as needed here
+                    // TODO do not update all emails (IMAP returns * {number} RECENT) and do it only for one mailbox
+                    let new_paths = download_email_from_imap().await.expect("Cannot download new emails");
+                    for (uid, path) in new_paths.clone() {
+                        match add_email(path.clone(), uid.clone()){
+                            Ok(_) => {}
+                            Err(_) => {println!("Error adding email from {:?}", path.clone())}
+                        };
+                    }
                 }
                 reason => {
                     println!("IDLE failed {:?}", reason);