diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 23 | 
1 files changed, 20 insertions, 3 deletions
| diff --git a/src/main.rs b/src/main.rs index 4e3bf83..6d3c6cd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,8 @@  // use email_parser::email::Email; -// use mailparse; +use mailparse;  // use email_format::Email;  // use email_format::rfc5322::Parsable; -use email::rfc5322::Rfc5322Parser; +// use email::rfc5322::Rfc5322Parser;  use std::io::{self, Read}; @@ -24,11 +24,28 @@ fn main() {      // let email = mailparse::parse_mail(&email_input).unwrap();      // let body = email.get_body().unwrap();      // println!("{:?}", body); +    let email = mailparse::parse_mail(&email_input).unwrap(); +    if email.subparts.is_empty() { +        let body = email.get_body_raw().unwrap(); +        println!("{:?}", String::from_utf8(body).unwrap()); +    } else { +        for part in email.subparts { +            for header in part.get_headers() { +                println!("{}: {}", header.get_key(), header.get_value()); + +                if header.get_key() == "Content-Type" +                    && header.get_value().starts_with("text/plain") +                { +                    print!("{}", part.get_body().unwrap()); +                } +            } +        } +    }      // email-format      // let email = Email::parse(&email_input).unwrap().0;      // print!("{:?}", email.get_body().unwrap());      // email -    let email = Rfc5322Parser:: +    // let email = Rfc5322Parser::  } | 
