diff --git a/src/main.rs b/src/main.rs
index c8e3a88..a6a7b5f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,11 @@
+mod parsing;
+
+use parsing::ParsedMailEx;
+
use anyhow::anyhow;
use clap::Clap;
-
use mailparse::MailHeaderMap;
+
use std::io::Read;
/// MIME mail viewer.
@@ -38,9 +42,10 @@ fn main() -> Result<(), anyhow::Error> {
dbg!(&date_str);
let date = chrono::DateTime::parse_from_rfc2822(&date_str)?;
println!("Date: {}", date);
- // dbg!(&message);
+ dbg!(&message.ctype);
+ dbg!(&message.get_content_disposition());
//
- let body = message.get_body()?;
+ let body = message.get_body_text()?.unwrap_or_default();
println!("---");
print!("{}", body);
Ok(())
diff --git a/src/parsing.rs b/src/parsing.rs
new file mode 100644
index 0000000..052a418
--- /dev/null
+++ b/src/parsing.rs
@@ -0,0 +1,90 @@
+use mailparse::{DispositionType, MailParseError, ParsedMail};
+
+pub trait ParsedMailEx {
+ fn is_attachment(&self) -> bool;
+
+ fn get_body_text(&self) -> Result