#eml #mail #apple

emlx

Prse Apple Mail.app emlx files into eml and related metadata

1 unstable release

0.1.0 Oct 6, 2021

#205 in Email

39 downloads per month

MIT license

22KB
245 lines

Emlx Parser

crates.io docs.rs

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 and can then be parsed with other Rust eml parsers, such as eml-parser.

Usage

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:

Test email data came from

Dependencies

~4.5MB
~85K SLoC