All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
0.9.2 - 2021-08-21
- Auto-quote header parameters containing whitespace (#209)
- Remove leading header parameter whitespace (#208)
- Move ParseMediaType to its own
mediatype
package to reduce the length of header.go. Introduce wrapper func to preserve public API.
0.9.1 - 2021-07-31
mime-dump
now prints a stack trace when parsing fails for easier debugging
- Handle trailing whitespace in
;
separated headers (#195, thanks demofrager) - Ignore empty sections in
;
separated headers (#199, thanks pavelbazika) - Handle very long lines inside mime boundaries (#200, thanks pavelbazika)
- Handle 8-bit characters in unencoded media type params (#201, thanks pavelbazika)
- Handle tiny destination buffers and long lines in quoted-printable blocks (#203)
- Encoder now uses QP or b64 encoding for 8-bit filenames instead of flattening to ASCII (#197, thanks Alexfilus)
0.9.0 - 2021-05-01
SendWithReversePath
method to builder, allows specifying a reverse-path that differs from the from address (#179, thanks cgroschupp)- A
Sender
interface that allows our users to provide their own mail sending routines, or mock them in tests. #182
- Reject empty addresses during builder validation (#187, thanks jawr)
- Allow unset subject line during builder validation (#191, thanks psanford)
- Updated dependencies
0.8.4 - 2020-12-18
- Attachment file names containing semicolons are no longer truncated (#174)
0.8.3 - 2020-11-05
- Reverted folded header parsing changes due to compatibility problems (#172)
- Improved performance and memory consumption of boundary reader (#170, thanks bttrfl and dcormier)
0.8.2 - 2020-10-10
- Use DFS instead of BFS to locate HTML body to match behavior of popular email clients (#157, thanks huaconghub)
- Improvements to media type parsing
- Improvements to unescaping quotes with higher codepoints (#165, thanks pavelbazika)
- Improvements to folded header parsing (#166, thanks pacellig)
0.8.1 - 2020-05-25
- Handle incorrectly indented headers (#149, thanks requaos)
- Handle trailing separator characters in header (#154, thanks joekamibeppu)
- enmime no longer uses git-flow, and will now accept PRs against master
0.8.0 - 2020-02-23
- Inject a
application/octet-stream
as default content type when none is present (#140, thanks requaos) - Add support for content-type params to part & encoding (#148, thanks pzeinlinger)
- UTF-7 support (#17)
- Handle missing parameter values in the middle of the media parameter list (#139, thanks requaos)
- Fix boundaryReader to respect length instead of capacity (#145, thanks dcormier)
- Handle very empty mime parts (#144, thanks dcormier)
0.7.0 - 2019-11-24
- Public DecodeHeaders function for getting header data without processing the body parts (thanks requaos.)
- Test coverage over 90% (thanks requaos!)
- Update dependencies
- Do not attempt to detect character set for short messages (#131, thanks requaos.)
- Possible slice out of bounds error (#134, thanks requaos.)
- Tests on Go 1.13 no longer fail due to textproto change (#137, thanks to requaos.)
0.6.0 - 2019-08-10
- Make ParseMediaType public.
- Improve quoted display name handling (#112, thanks to requaos.)
- Refactor MIME part boundary detection (thanks to requaos.)
- Several improvements to MIME attribute decoding (thanks to requaos.)
- Detect text/plain attachments properly (thanks to davrux.)
0.5.0 - 2018-12-15
- Use github.com/pkg/errors to decorate errors with stack traces (thanks to dcomier.)
- Several improvements to Content-Type header decoding (thanks to dcormier.)
- File modification date to encode/decode (thanks to dann7387.)
- Handle non-delimited address lists (thanks to requaos.)
- RFC-2047 attribute name deocding (thanks to requaos.)
- Only detect charset on
text/*
parts (thanks to dcormier.) - Stop adding extra newline during encode (thanks to dann7387.)
- Math bug in selecting QP or base64 encoding (thanks to dann7387.)
0.4.0 - 2018-11-21
- Override declared character set if another is detected with high confidence (thanks to nerdlich.)
- Handle unquoted specials in media type parameters (thanks to requaos.)
- Handle barren Content-Type headers (thanks to dcormier.)
- Better handle malformed media type parameters (thanks to dcormier.)
- Use iso-8859-1 character map when implicitly declared (thanks to requaos.)
- Treat "inline" disposition as message content, not attachment unless it is accompanied by parameters (e.g. a filename, thanks to requaos.)
0.3.0 - 2018-11-01
- CLI utils now output inlines and other parts in addition to attachments.
- Clone() method to Envelope and Part (thanks to nerdlich.)
- GetHeaderKeys() method to Envelope (thanks to allenluce.)
- GetHeaderValues() plus a suite of setters for Envelope (thanks to nerdlich.)
- Use value instead of pointer receivers and return types on MailBuilder methods. Cleaner API, but may break some users.
enmime.Error
now conforms to the Go error interface, itsString()
method is now deprecated.NewPart()
constructor no longer takes a parent parameter.- Part.Errors now holds pointers, matching Envelope.Errors.
- Content is now populated for binary-only mails root part (thank to ostcar.)
- Part no longer implements
io.Reader
, content is stored as a byte slice inPart.Content
instead.
0.2.1 - 2018-10-20
- Go modules support for reproducible builds.
0.2.0 - 2018-02-24
- Encoded filenames now have unicode accents stripped instead of escaped, making them more readable.
- Part.ContentID
- is now properly encoded into the headers when using the builder.
- is now populated from headers when decoding messages.
- Update go doc, add info about headers and errors.
- Part.Read() and Part.Utf8Reader, they are deprecated but should continue to function until 1.0.0.
- Initial implementation of MIME encoding, using
enmime.MailBuilder
- Update CHANGELOG.md:
- Ensure Unreleased section is up to date
- Rename Unreleased section to release name and date
- Add new GitHub
/compare
link
- Run tests
- Tag release with
v
prefix
See http://keep change log.com/ for additional instructions on how to update this file.