This commit is contained in:
mdecimus
2025-09-30 15:54:53 +02:00
parent 4a96357b2b
commit b39b4ec141
34 changed files with 246 additions and 113 deletions

View File

@@ -1,6 +1,6 @@
[package]
name = "email"
version = "0.13.3"
version = "0.13.4"
edition = "2024"
resolver = "2"

View File

@@ -139,7 +139,13 @@ impl MessageMetadata {
}
HeaderName::From | HeaderName::To | HeaderName::Cc | HeaderName::Bcc => {
if !seen_headers[header.name.id() as usize] {
let property = property_from_header(&header.name);
let property = match &header.name {
HeaderName::From => EmailField::From,
HeaderName::To => EmailField::To,
HeaderName::Cc => EmailField::Cc,
HeaderName::Bcc => EmailField::Bcc,
_ => unreachable!(),
};
let mut sort_text = SortedAddressBuilder::new();
let mut found_addr = false;
@@ -336,7 +342,13 @@ impl ArchivedMessageMetadata {
| ArchivedHeaderName::Cc
| ArchivedHeaderName::Bcc => {
if !seen_headers[header.name.id() as usize] {
let property = property_from_archived_header(&header.name);
let property = match &header.name {
ArchivedHeaderName::From => EmailField::From,
ArchivedHeaderName::To => EmailField::To,
ArchivedHeaderName::Cc => EmailField::Cc,
ArchivedHeaderName::Bcc => EmailField::Bcc,
_ => unreachable!(),
};
let mut sort_text = SortedAddressBuilder::new();
let mut found_addr = false;
@@ -1035,39 +1047,3 @@ impl<T: TrimTextValue> TrimTextValue for Vec<T> {
self.into_iter().map(|v| v.trim_text(length)).collect()
}
}
pub fn property_from_header(header: &HeaderName) -> EmailField {
match header {
HeaderName::Subject => EmailField::Subject,
HeaderName::From => EmailField::From,
HeaderName::To => EmailField::To,
HeaderName::Cc => EmailField::Cc,
HeaderName::Date => EmailField::SentAt,
HeaderName::Bcc => EmailField::Bcc,
HeaderName::ReplyTo => EmailField::ReplyTo,
HeaderName::Sender => EmailField::Sender,
HeaderName::InReplyTo => EmailField::InReplyTo,
HeaderName::MessageId => EmailField::MessageId,
HeaderName::References => EmailField::References,
HeaderName::ResentMessageId => EmailField::EmailIds,
_ => unreachable!(),
}
}
pub fn property_from_archived_header(header: &ArchivedHeaderName) -> EmailField {
match header {
ArchivedHeaderName::Subject => EmailField::Subject,
ArchivedHeaderName::From => EmailField::From,
ArchivedHeaderName::To => EmailField::To,
ArchivedHeaderName::Cc => EmailField::Cc,
ArchivedHeaderName::Date => EmailField::SentAt,
ArchivedHeaderName::Bcc => EmailField::Bcc,
ArchivedHeaderName::ReplyTo => EmailField::ReplyTo,
ArchivedHeaderName::Sender => EmailField::Sender,
ArchivedHeaderName::InReplyTo => EmailField::InReplyTo,
ArchivedHeaderName::MessageId => EmailField::MessageId,
ArchivedHeaderName::References => EmailField::References,
ArchivedHeaderName::ResentMessageId => EmailField::EmailIds,
_ => unreachable!(),
}
}