use crate::cmd::{open_submaildir, MailStorage}; use crate::de_jmhoffmann_jwebmail_mailstorage::Call_Show; use crate::rfc822::parsed_mail_to_mail; pub fn show( ms: &MailStorage, call: &mut dyn Call_Show, folder: String, mid: String, ) -> varlink::Result<()> { if let Some(path) = ms.maildir_path.read().unwrap().clone() { let md = open_submaildir(path, &folder); md.add_flags(&mid, "S").map_err(varlink::map_context!())?; if let Some(mut mail) = md.find(&mid) { let mail2 = parsed_mail_to_mail(mail.parsed().unwrap()).unwrap(); call.reply(mail2) } else { call.reply_invalid_mid(folder, mid) } } else { call.reply_not_initialized() } }