From 1f9b50fe4531f2156f2fd823dc6292d18797cb1a Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 14 Mar 2021 06:17:34 +0100 Subject: get_email_body(): Support emails with attachments Parse the text email body out of `multipart/alternative` parts. --- src/main.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 199862c..b4d500d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -136,6 +136,20 @@ fn get_email_body(email: &[u8]) -> Result { for part in email.subparts { for header in part.get_headers() { + if header.get_key() == "Content-Type" + && header.get_value().starts_with("multipart/alternative") + { + for alternative_part in &part.subparts { + for alternative_header in alternative_part.get_headers() { + if alternative_header.get_key() == "Content-Type" + && alternative_header.get_value().starts_with("text/plain") + { + return Ok(alternative_part.get_body()?); + } + } + } + } + if header.get_key() == "Content-Type" && header.get_value().starts_with("text/plain") { -- cgit v1.2.3