Email Address type for Rust

Build Status

This crate implements email address parsing for Rust, as well as an EmailAddress type, so you can stop stringly-typing your email addresses.

``` use emailaddress::EmailAddress;

fn main() { let email = EmailAddress::new("someone@example.com"); asserteq!(email.local, "someone".tostring()); asserteq!(email.domain, "example.com".tostring()); }

// or with from_str:

use emailaddress::EmailAddress;

fn main() { let email = fromstr::("someone@example.com").unwrap(); asserteq!( email, EmailAddress { local: "someone".tostring(), domain: "example.com".tostring() } ); }

```

Parsing

There are (erm..."will be") 3 different parsing algorithms. "simple", "rfc5322" and "rfc6531". Currently only "simple" is fully implemented.

Simple parsing

The "simple" parsing algorithm is this:

"WHAT??!!"

Yes, that's it. Not really a parser. Not much of an algorithm. But for reasons why you would want to use it, see http://girders.org/blog/2013/01/31/dont-rfc-validate-email-addresses/ or just google/duckduckgo/startpage for "email address RFC".