emlx

Parse Apple Mail.app `Emlx` Files.

Downloads
1.1K
Stars
3
Committers
1

Emlx Parser

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.

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

Package Rankings
Top 46.82% on Crates.io
Badges
Extracted from project README
crates.io docs.rs