- Fixed
quoted_printable_decodeexternal function (not used by mail-parser directly). - Fix
Receivedheader serialization for bincode compatibility.
- Fixed panic when Content-Disposition is empty (#63)
- Removed
content_type()andaddress()functions that couldpanic!. Useas_content_type()andas_address()instead. - Updated Rust edition to 2021.
This version introduces multiple breaking changes. Please read the following notes carefully.
- Parsing is now done using
MessageParser, which allows to customize the parsing process. - Added parser for
Receivedheaders. - Added
MessageParser::parse_headersfunction to parse only the headers of a message. - Removed
RfcHeaderenum, now all headers are represented usingHeaderName. - All address types are now stored in the
HeaderValue::Addressvariant using theAddressenum. - Renamed the
as_prefix toto_in some functions.
- Fix: Parsing address name with \ characters (#41)
- Fix: Missing space when folded header begins with RFC2047 word (#43)
- Added
raw_message()function.
- Removed get_() prefixes (#31).
- Maildir import: Use modified time instead of created time (#32)
- Base64/QuotedPrintable decoding optimizations.
- Automatic parsing of base64/qp encoded nested messages.
- Refactoring or
MessageStreamto use iterators more efficiently. - Added "ludicrous mode" Cargo option to use some unsafe code for additional performance.
- Fixed support for empty messages.
- Fixed raw offsets of multipart/* parts to include MIME epilogue.
- Fixed values of non-RFC headers.
- Support for malformed unstructured fields containing encoded words (#29).
- Add support for gb2312 charsets (#30).
- Maildir parsing support.
- Headers and attributes are now stored in a
Vecinstead of aHashMapfor a tiny performance enhancement. - Support for Content-Type attributes spanning multiple lines.
- Support for malformed Thunderbird messages (#27).
- Fixed raw offset range for body parts.
Messageheaders are now stored as aMessagePartwith index 0.- Improved
MessagePartAPI. - Nested base64/quoted-printable encoded message/rfc822 parts are automatically parsed when calling
get_message. - Better handling of malformed MIME messages.
- Added raw offsets to MIME parts.
- get_bytes_to_boundary fix (#21)
- Retrieving message headers in order (#19)
- Added
get_raw_headersandget_headermethods. - Added
get_return_addressmethod to obtain the return address from the Return-Path or From headers. - Support for malformed Return-Path headers.
- Support for ks_c_5601 charsets (#20)
- DateTime is_valid() fix (#15)
- DateTime to UNIX timestamp conversion.
- Ord, PartialOrd support for DateTime (#13).
- Fixed Message::parse() panic on duplicate Content-Type headers (#14).
- Support for multi-line headers.
- Text and HTML message body preview.
- Improved support for raw headers.
- Mbox file parsing support (issue #11) conforming to the QMail specification.
- Support for bincode serialize/deserialize.
- Added
Message::get_thread_name()to obtain the base subject of a message as defined in RFC 5957 - Internet Message Access Protocol - SORT and THREAD Extensions (Section 2.1). - Added
MimeHeader::get_attachment_namefor simplified access to a MIME attachment file name.
- Lazy parsing of nested e-mail messages.
- Support for base64/quoted-printable nested messages.
- Lazy conversion to/from HTML an plain text parts.
- Improved API.
- Parts are now generics.
- Support for non-standard headers.
- Raw message offsets are stored in the message object.
- Message body structure is now stored in the message object.
- Improved API, now
Message::parsereturnsOption<Message>to indicate when parsing was successful. - Headers are now stored internally in a
HashMapinstead ofstructfields. - Added support for new RFCs:
- Performance enhacements, now mail-parser is almost as fast as the
unsafe0.1 version.
- Re-factoring to use 100% safe Rust after a discussion on Reddit.
- Added
Message::is_empty.
- Bug-fixing after fuzzing the library.
- Initial release with plenty of
unsafecode to speed things up.