[−][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: ParsedContentTypeThe 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) -> Body<'a>[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() {
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() {
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) -> ParsedContentDisposition[src]
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> RefUnwindSafe for ParsedMail<'a>
impl<'a> Send for ParsedMail<'a>
impl<'a> Sync for ParsedMail<'a>
impl<'a> Unpin for ParsedMail<'a>
impl<'a> UnwindSafe for ParsedMail<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
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> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
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>,