From c3835522b2be919e20660033c6a20e7ee10c05fe Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Wed, 23 Apr 2025 14:57:13 -0700 Subject: [PATCH] server: add Letterbox/Bad label to unparsable emails, and consider them processed --- server/src/nm.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/server/src/nm.rs b/server/src/nm.rs index 040dc94..2d945db 100644 --- a/server/src/nm.rs +++ b/server/src/nm.rs @@ -992,7 +992,17 @@ pub async fn label_unprocessed( let file = File::open(&path)?; info!("parsing {path}"); let mmap = unsafe { MmapOptions::new().map(&file)? }; - let m = info_span!("parse_mail", path = path).in_scope(|| parse_mail(&mmap))?; + let m = match info_span!("parse_mail", path = path).in_scope(|| parse_mail(&mmap)) { + Ok(m) => m, + Err(err) => { + error!("Failed to parse {path}: {err}"); + let t = "Letterbox/Bad"; + nm.tag_add(t, &id)?; + let t = "unprocessed"; + nm.tag_remove(t, &id)?; + continue; + } + }; let (matched_rule, add_tags) = find_tags(&rules, &m.headers); if matched_rule { if dryrun {