mirror of
https://gitlab.com/mailcat-devs/mailcat.git
synced 2026-02-04 11:03:27 +01:00
Initial commit
This commit is contained in:
parent
3481f70d9d
commit
868a9d238d
6 changed files with 478 additions and 0 deletions
47
src/main.rs
Normal file
47
src/main.rs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
use anyhow::anyhow;
|
||||
use clap::Clap;
|
||||
|
||||
use mailparse::MailHeaderMap;
|
||||
use std::io::Read;
|
||||
|
||||
/// MIME mail viewer.
|
||||
#[derive(Clap, Debug)]
|
||||
#[clap(version=clap::crate_version!())]
|
||||
struct Opts {
|
||||
filename: Option<String>,
|
||||
}
|
||||
|
||||
fn main() -> Result<(), anyhow::Error> {
|
||||
let opts = Opts::parse();
|
||||
dbg!(&opts);
|
||||
let input = match opts.filename {
|
||||
Some(filename) => std::fs::read(filename)?,
|
||||
None => {
|
||||
let mut result = Vec::new();
|
||||
std::io::stdin().read_to_end(&mut result)?;
|
||||
result
|
||||
}
|
||||
};
|
||||
let message = mailparse::parse_mail(&input)?;
|
||||
println!(
|
||||
"Subject: {}",
|
||||
message
|
||||
.headers
|
||||
.get_first_value("Subject")
|
||||
.unwrap_or_default()
|
||||
);
|
||||
|
||||
let date_str = &message
|
||||
.headers
|
||||
.get_first_value("Date")
|
||||
.ok_or_else(|| anyhow!("No date"))?;
|
||||
dbg!(&date_str);
|
||||
let date = chrono::DateTime::parse_from_rfc2822(&date_str)?;
|
||||
println!("Date: {}", date);
|
||||
// dbg!(&message);
|
||||
//
|
||||
let body = message.get_body()?;
|
||||
println!("---");
|
||||
print!("{}", body);
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue