feat(bichonctl): add support for decoding MIME-encoded X-Gmail-Labels in mbox #182

This commit is contained in:
rustmailer
2026-03-13 13:19:49 +08:00
parent 638a93f184
commit 2b10d201ee
2 changed files with 14 additions and 8 deletions
+10 -5
View File
@@ -27,6 +27,7 @@ use crate::modules::cli::BichonCtlConfig;
use console::style;
use dialoguer::{theme::ColorfulTheme, Input};
use dialoguer::{Confirm, Select};
use mail_parser::parsers::MessageStream;
use mail_parser::MessageParser;
use reqwest::Client;
@@ -152,11 +153,15 @@ pub async fn run_import(
let folder_name = match target_folder {
Some(ref folder_name) => folder_name.clone(),
None => {
let labels = message
.header("X-Gmail-Labels")
.and_then(|h| h.as_text())
.unwrap_or("Inbox");
determine_folder(labels)
let gmail_labels = message.header_raw("X-Gmail-Labels").unwrap_or("INBOX");
let text_cow = MessageStream::new(gmail_labels.as_bytes())
.parse_unstructured()
.into_text();
let data: &str = match &text_cow {
Some(c) => c.as_ref(),
None => "INBOX",
};
determine_folder(data)
}
};
let b64_eml = base64_encode_url_safe!(&body);