Skip to content

Commit 4412449

Browse files
committed
Parse To field and Chat-Group-Past-Members separately
1 parent cef33da commit 4412449

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

Diff for: src/mimeparser.rs

+30-1
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,17 @@ pub(crate) struct MimeMessage {
5757
/// Message headers.
5858
headers: HashMap<String, String>,
5959

60-
/// Addresses are normalized and lowercase
60+
/// List of addresses from the `To` and `Cc` headers.
61+
///
62+
/// Addresses are normalized and lowercase.
6163
pub recipients: Vec<SingleInfo>,
6264

65+
/// List of addresses from the `To` header.
66+
pub to: Vec<SingleInfo>,
67+
68+
/// List of addresses from the `Chat-Group-Past-Members` header.
69+
pub past_members: Vec<SingleInfo>,
70+
6371
/// `From:` address.
6472
pub from: SingleInfo,
6573

@@ -232,6 +240,8 @@ impl MimeMessage {
232240

233241
let mut headers = Default::default();
234242
let mut recipients = Default::default();
243+
let mut to = Default::default();
244+
let mut past_members = Default::default();
235245
let mut from = Default::default();
236246
let mut list_post = Default::default();
237247
let mut chat_disposition_notification_to = None;
@@ -241,6 +251,8 @@ impl MimeMessage {
241251
context,
242252
&mut headers,
243253
&mut recipients,
254+
&mut to,
255+
&mut past_members,
244256
&mut from,
245257
&mut list_post,
246258
&mut chat_disposition_notification_to,
@@ -261,6 +273,8 @@ impl MimeMessage {
261273
context,
262274
&mut headers,
263275
&mut recipients,
276+
&mut to,
277+
&mut past_members,
264278
&mut from,
265279
&mut list_post,
266280
&mut chat_disposition_notification_to,
@@ -456,6 +470,8 @@ impl MimeMessage {
456470
context,
457471
&mut headers,
458472
&mut recipients,
473+
&mut to,
474+
&mut past_members,
459475
&mut inner_from,
460476
&mut list_post,
461477
&mut chat_disposition_notification_to,
@@ -513,6 +529,8 @@ impl MimeMessage {
513529
parts: Vec::new(),
514530
headers,
515531
recipients,
532+
to,
533+
past_members,
516534
list_post,
517535
from,
518536
from_is_signed,
@@ -1536,6 +1554,8 @@ impl MimeMessage {
15361554
context: &Context,
15371555
headers: &mut HashMap<String, String>,
15381556
recipients: &mut Vec<SingleInfo>,
1557+
to: &mut Vec<SingleInfo>,
1558+
past_members: &mut Vec<SingleInfo>,
15391559
from: &mut Option<SingleInfo>,
15401560
list_post: &mut Option<String>,
15411561
chat_disposition_notification_to: &mut Option<SingleInfo>,
@@ -1564,6 +1584,15 @@ impl MimeMessage {
15641584
if !recipients_new.is_empty() {
15651585
*recipients = recipients_new;
15661586
}
1587+
let to_addresses = get_all_addresses_from_header(fields, "to");
1588+
if !to_addresses.is_empty() {
1589+
*to = to_addresses;
1590+
}
1591+
let past_members_addresses =
1592+
get_all_addresses_from_header(fields, "chat-group-past-members");
1593+
if !past_members_addresses.is_empty() {
1594+
*past_members = past_members_addresses;
1595+
}
15671596
let from_new = get_from(fields);
15681597
if from_new.is_some() {
15691598
*from = from_new;

0 commit comments

Comments
 (0)