13 releases (7 breaking)
Uses old Rust 2015
|0.8.0||Feb 16, 2020|
|0.7.0||Mar 29, 2019|
|0.6.0||Oct 13, 2017|
|0.4.0||Mar 11, 2017|
|0.2.0||Nov 28, 2016|
#458 in Data structures
101 downloads per month
Used in 2 crates
"Internet Message Format" meticulously implemented for email construction and validation, as defined in RFC 5322 and other RFCs.
- Parses bytes into an Email structure (represented internally as a tree) and validates
RFC 5322 "Internet Message Format" compliance.
- Extensive RFC 5322 Parser/validator: If you generate an email using this crate, you are guaranteed that will be a valid RFC 5322 formatted email, or else you will get a ParseError. The only exception that I am currently aware of is that lines can be longer than 998 characters (see issue #3).
- Streams an Email structure back into bytes.
- Generates and modifies Email structures using functions like
- Integrates with lettre
(enable optional feature
lettre) and mailstrom
- Supports chrono
Tmfor setting the
Datefield (enable optional feature
- Valid emails are 7-bit ASCII, and this crate requires all content to be 7-bit ASCII.
The proper way to send richer content is to use a transfer encoding, and to set a
content-transfer-encodingheader. We don't yet offer any help in this regard, beyond the ability to add_optional_field(). You'll have to manage the encoding yourself. We plan to add convenience functions for this eventually (see issue #19)
- Obsolete email formats are not implemented in the parser. Therefore, it is not sufficient for parsing inbound emails if you need to recognize formats that were obsoleted in 2008.
- Support for content-transfer-encodings (unicode via Quoted Printable or Base64 or otherwise)
- Support for email headers defined in other RFCs:
- Support for RFC 6854 (updated From and Sender syntax)
- Support for all headers registered at IANA (http://www.iana.org/assignments/message-headers/message-headers.xhtml)
- Support for MIME (RFC 2045, RFC 4021, RFC 2231, RFC 6352) using mime_multipart
- Support for streaming of MIME parts from disk.
This project was inspired by the earlier email crate, but was reworked from scratch due to a number of significant differences in design, implementation and interface.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.