diff --git a/src/mimeparser.rs b/src/mimeparser.rs index 8032ef45b..dfa0820db 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -36,6 +36,7 @@ use crate::simplify::{simplify, SimplifiedText}; use crate::sync::SyncItems; use crate::tools::{ create_smeared_timestamp, get_filemeta, parse_receive_headers, smeared_time, truncate_by_lines, + validate_id, }; use crate::{chatlist_events, location, stock_str, tools}; @@ -818,6 +819,12 @@ impl MimeMessage { self.headers.get(headerdef.get_headername()) } + /// Returns `Chat-Group-ID` header value if it is a valid group ID. + pub fn get_chat_group_id(&self) -> Option<&String> { + self.get_header(HeaderDef::ChatGroupId) + .filter(|s| validate_id(s)) + } + async fn parse_mime_recursive<'a>( &'a mut self, context: &'a Context, diff --git a/src/receive_imf.rs b/src/receive_imf.rs index 31bf9fb1c..21c63558b 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -37,7 +37,7 @@ use crate::simplify; use crate::sql; use crate::stock_str; use crate::sync::Sync::*; -use crate::tools::{self, buf_compress, extract_grpid_from_rfc724_mid, validate_id}; +use crate::tools::{self, buf_compress, extract_grpid_from_rfc724_mid}; use crate::{chatlist_events, location}; use crate::{contact, imap}; @@ -2431,10 +2431,7 @@ async fn apply_mailinglist_changes( } fn try_getting_grpid(mime_parser: &MimeMessage) -> Option { - if let Some(optional_field) = mime_parser - .get_header(HeaderDef::ChatGroupId) - .filter(|s| validate_id(s)) - { + if let Some(optional_field) = mime_parser.get_chat_group_id() { return Some(optional_field.clone()); }