terhechte / emlx

Parse Apple Mail.app `Emlx` Files.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

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

About

Parse Apple Mail.app `Emlx` Files.


Languages

Language:Rust 100.0%