aboutsummaryrefslogblamecommitdiff
path: root/src/mail/mod.rs
blob: 8dc42c432f3b96a535c170277a250b874bac68ae (plain) (tree)
1
2
3
4
5
6
7
8
9

                          
                
                 
                     
             
 

                                    



                                     








                                                                  
use std::convert::TryFrom;

pub mod mailbox;
pub mod uidindex;
pub mod unique_ident;
pub mod user;

// Internet Message Format
// aka RFC 822 - RFC 2822 - RFC 5322
pub struct IMF<'a> {
    raw: &'a [u8],
    parsed: mail_parser::Message<'a>,
}

impl<'a> TryFrom<&'a [u8]> for IMF<'a> {
    type Error = ();

    fn try_from(body: &'a [u8]) -> Result<IMF<'a>, ()> {
        let parsed = mail_parser::Message::parse(body).ok_or(())?;
        Ok(Self { raw: body, parsed })
    }
}