Files
postmoogle/vendor/github.com/jhillyerd/enmime/CHANGELOG.md
2022-11-16 12:08:51 +02:00

294 lines
9.3 KiB
Markdown

Change Log
==========
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [0.10.0] - 2022-07-20
### Added
- Support for parser options! (#248)
- Option to skip parsing of malformed parts (#248)
- Envelope.Date() method for parsing date (#253)
- Option to handle missing multipart boundaries (#257)
### Fixed
- Remove trailing HTML tags (#252)
- Buffer overrun in quoted-printable (#254)
- Corrected quoted-printable equals counting (#255)
- Improve splitting inside quoted text (#256)
## [0.9.4] - 2022-05-16
### Added
- Remove HTML tags in malformed content types (#229)
- Maximal number of errors recorded in Part limited (#240)
- Builder: Support other parts (#244)
- Additional decoding in mail address (#247)
- Integration test include Go 1.18
### Fixed
- Fix for quote-printed utf-8 header with quotes (#237)
- Parse address joined with semicolons (#238)
- Use extended parser after fixing address list (#239)
- Parse media types which are escaped at first rune (#246)
### Changed
- Rely on stdlib for decoding to UTF-8, simplifies address parsing (#234)
## [0.9.3] - 2022-01-29
### Added
- Support for more charsets (#230)
- fixMangledMediaType now removes extra content-type parts (#225)
### Fixed
- Fix new lines (ie in filenames) in mediatype.Parse (#224)
- Fix crash in QPCleaner, when line is too long and buffer is almost full (#220)
## [0.9.2] - 2021-08-21
### Added
- Auto-quote header parameters containing whitespace (#209)
### Fixed
- Remove leading header parameter whitespace (#208)
### Changed
- 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
### Added
- `mime-dump` now prints a stack trace when parsing fails for easier debugging
### Fixed
- 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)
### Changed
- 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
### Added
- `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
### Fixed
- Reject empty addresses during builder validation (#187, thanks jawr)
- Allow unset subject line during builder validation (#191, thanks psanford)
### Changed
- Updated dependencies
## [0.8.4] - 2020-12-18
### Fixed
- Attachment file names containing semicolons are no longer truncated (#174)
## [0.8.3] - 2020-11-05
### Fixed
- 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
### Fixed
- 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
### Fixed
- Handle incorrectly indented headers (#149, thanks requaos)
- Handle trailing separator characters in header (#154, thanks joekamibeppu)
### Changed
- enmime no longer uses git-flow, and will now accept PRs against master
## [0.8.0] - 2020-02-23
### Added
- 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)
### Fixed
- 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
### Added
- Public DecodeHeaders function for getting header data without processing the
body parts (thanks requaos.)
- Test coverage over 90% (thanks requaos!)
### Changed
- Update dependencies
### Fixed
- 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
### Added
- Make ParseMediaType public.
### Fixed
- 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
### Added
- 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.)
### Fixed
- 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
### Added
- 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.)
### Changed
- 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
### Added
- 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.)
### Changed
- 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, its `String()` method
is now deprecated.
- `NewPart()` constructor no longer takes a parent parameter.
- Part.Errors now holds pointers, matching Envelope.Errors.
### Fixed
- Content is now populated for binary-only mails root part (thank to ostcar.)
### Removed
- Part no longer implements `io.Reader`, content is stored as a byte slice in
`Part.Content` instead.
## [0.2.1] - 2018-10-20
### Added
- Go modules support for reproducible builds.
## [0.2.0] - 2018-02-24
### Changed
- 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.
### Fixed
- Part.Read() and Part.Utf8Reader, they are deprecated but should continue to
function until 1.0.0.
## 0.1.0 - 2018-02-10
### Added
- Initial implementation of MIME encoding, using `enmime.MailBuilder`
[Unreleased]: https://github.com/jhillyerd/enmime/compare/v0.9.4...master
[0.9.4]: https://github.com/jhillyerd/enmime/compare/v0.9.3...v0.9.4
[0.9.3]: https://github.com/jhillyerd/enmime/compare/v0.9.2...v0.9.3
[0.9.2]: https://github.com/jhillyerd/enmime/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/jhillyerd/enmime/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/jhillyerd/enmime/compare/v0.8.4...v0.9.0
[0.8.4]: https://github.com/jhillyerd/enmime/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/jhillyerd/enmime/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/jhillyerd/enmime/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/jhillyerd/enmime/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/jhillyerd/enmime/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/jhillyerd/enmime/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/jhillyerd/enmime/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/jhillyerd/enmime/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/jhillyerd/enmime/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/jhillyerd/enmime/compare/v0.2.1...v0.3.0
[0.2.1]: https://github.com/jhillyerd/enmime/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/jhillyerd/enmime/compare/v0.1.0...v0.2.0
## Release Checklist
1. Update CHANGELOG.md:
- Ensure *Unreleased* section is up to date
- Rename *Unreleased* section to release name and date
- Add new GitHub `/compare` link
2. Run tests
3. Tag release with `v` prefix
See http://keep change log.com/ for additional instructions on how to update this
file.