[−][src]Struct mailparse::ParsedMail
Struct that holds the structured representation of the message. Note that since MIME allows for nested multipart messages, a tree-like structure is necessary to represent it properly. This struct accomplishes that by holding a vector of other ParsedMail structures for the subparts.
Fields
headers: Vec<MailHeader<'a>>
The headers for the message (or message subpart).
ctype: ParsedContentType
The Content-Type information for the message (or message subpart).
subparts: Vec<ParsedMail<'a>>
The subparts of this message or subpart. This vector is only non-empty if ctype.mimetype starts with "multipart/".
Methods
impl<'a> ParsedMail<'a>
[src]
pub fn get_body(&self) -> Result<String, MailParseError>
[src]
Get the body of the message as a Rust string. This function tries to unapply the Content-Transfer-Encoding if there is one, and then converts the result into a Rust UTF-8 string using the charset in the Content-Type (or "us-ascii" if the charset was missing or not recognized).
Examples
use mailparse::parse_mail; let p = parse_mail(concat!( "Subject: test\n", "\n", "This is the body").as_bytes()) .unwrap(); assert_eq!(p.get_body().unwrap(), "This is the body");
pub fn get_body_raw(&self) -> Result<Vec<u8>, MailParseError>
[src]
Get the body of the message as a Rust Vec
Examples
use mailparse::parse_mail; let p = parse_mail(concat!( "Subject: test\n", "\n", "This is the body").as_bytes()) .unwrap(); assert_eq!(p.get_body_raw().unwrap(), b"This is the body");
pub fn get_body_encoded(&'a self) -> Result<Body<'a>, MailParseError>
[src]
Get the body of the message. This function returns original the body without attempting to unapply the Content-Transfer-Encoding.
Examples
use mailparse::parse_mail; use mailparse::body::Body; let mail = parse_mail(b"Content-Transfer-Encoding: base64\r\n\r\naGVsbG 8gd\r\n29ybGQ=").unwrap(); match mail.get_body_encoded().unwrap() { Body::Base64(body) => { assert_eq!(body.get_raw(), b"aGVsbG 8gd\r\n29ybGQ="); assert_eq!(body.get_decoded().unwrap(), b"hello world"); assert_eq!(body.get_decoded_as_string().unwrap(), "hello world"); }, _ => assert!(false), }; // An email whose body encoding is not known upfront let another_mail = parse_mail(b"").unwrap(); match another_mail.get_body_encoded().unwrap() { Body::Base64(body) | Body::QuotedPrintable(body) => { println!("mail body encoded: {:?}", body.get_raw()); println!("mail body decoded: {:?}", body.get_decoded().unwrap()); println!("mail body decoded as string: {}", body.get_decoded_as_string().unwrap()); }, Body::SevenBit(body) | Body::EightBit(body) => { println!("mail body: {:?}", body.get_raw()); println!("mail body as string: {}", body.get_as_string().unwrap()); }, Body::Binary(body) => { println!("mail body binary: {:?}", body.get_raw()); } }
pub fn get_content_disposition(
&self
) -> Result<ParsedContentDisposition, MailParseError>
[src]
&self
) -> Result<ParsedContentDisposition, MailParseError>
Returns a struct containing a parsed representation of the
Content-Disposition header. The first header with this name
is used, if there are multiple. See the parse_content_disposition
method documentation for more details on the semantics of the
returned object.
Trait Implementations
Auto Trait Implementations
impl<'a> Send for ParsedMail<'a>
impl<'a> Sync for ParsedMail<'a>
impl<'a> Unpin for ParsedMail<'a>
impl<'a> UnwindSafe for ParsedMail<'a>
impl<'a> RefUnwindSafe for ParsedMail<'a>
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,