notmuch & server: plumb Delivered-To and X-Original-To headers

This commit is contained in:
2025-02-23 09:37:09 -08:00
parent bc4b15a5aa
commit e6b3a5b5a9
4 changed files with 38 additions and 1 deletions

View File

@@ -271,6 +271,12 @@ pub struct Headers {
#[serde(skip_serializing_if = "Option::is_none")]
pub bcc: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(alias = "Delivered-To")]
pub delivered_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(alias = "X-Original-To")]
pub x_original_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_to: Option<String>,
pub date: String,
}
@@ -635,10 +641,21 @@ impl Notmuch {
let Some(msg) = &tn.0 else {
return Ok(());
};
info!("msg.headers {:#?}", msg.headers);
let mut addrs = vec![];
let hdr = &msg.headers.to;
if let Some(to) = hdr {
addrs.push(to);
} else {
let hdr = &msg.headers.x_original_to;
if let Some(to) = hdr {
addrs.push(to);
} else {
let hdr = &msg.headers.delivered_to;
if let Some(to) = hdr {
addrs.push(to);
};
};
};
let hdr = &msg.headers.cc;
if let Some(cc) = hdr {