Parses Apple Mail.app Emlx
Files.
Retrives the actual message, meta information as plist, and the flags of the message.
The actual message is returned as a &[u8]
slice in the eml
format.
This message
part is almost in the eml
format, except that
Apple uses LF
for linebreaks instead of CRLF
. Currently,
emlx
has a feature switch (use-email-parser
) which enables
a custom fork of the email-parser
crate and already parses
the email for you. It can then be found as the email
property
on the [Mail
] struct.
This feature switch is on by default.
use emlx;
let contents: &[u8] = ...
let parsed = parse_emlx(contents).unwrap();
// Flags are a struct with boolean and usize values
let is_read = parsed.flags.is_read;
// Dictionary is a key value map to data in the emlx plist part.
let subject = parsed.dictionary["subject"].as_string().unwrap();
// The actual eml message as bytes
let message = std::str::from_utf8(parsed.message).unwrap();
Information on the Emlx
file format was retrieved from these sites: