diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 199862c..b4d500d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -137,6 +137,20 @@ fn get_email_body(email: &[u8]) -> Result<String, WrapError> { 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") { return Ok(part.get_body()?); |