#eml #apple

emlx

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

1 unstable release

0.1.0 Oct 6, 2021

#221 in Email

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
~81K SLoC