tikiwiki/packages/tiki-pkg-tikimanager/laminas/laminas-mail/CHANGELOG.md

563 lines
20 KiB
Markdown
Raw Permalink Normal View History

2023-11-20 21:52:04 +01:00
# Changelog
All notable changes to this project will be documented in this file, in reverse chronological order by release.
## 2.12.5 - 2020-12-31
-----
### Release Notes for [2.12.5](https://github.com/laminas/laminas-mail/milestone/9)
2.12.x bugfix release (patch)
### 2.12.5
- Total issues resolved: **0**
- Total pull requests resolved: **1**
- Total contributors: **1**
#### Bug
- [108: Fix Invalid header line for Content-Disposition string - incomplete continuation](https://github.com/laminas/laminas-mail/pull/108) thanks to @glensc
## 2.12.3 - TBD
### Added
- Nothing.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#107](https://github.com/laminas/laminas-mail/pull/107) corrects a return type annotation in Laminas\Mail\Address\AddressInterface and in implementer.
## 2.12.2 - 2020-08-06
### Added
- Nothing.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#103](https://github.com/laminas/laminas-mail/pull/103) fixes issues on Windows whereby the "Subject" and "To" headers were duplicated.
- [#104](https://github.com/laminas/laminas-mail/pull/104) fixes an issue that occured when the `Sendmail` transport was configured with a `-f` option (From address). Prior to the fix, the option would be overwritten by the message `From` or `Sender` headers, which could lead to errors on systems where all mail must be sent from a specific address. The fixed behavior is to always honor the `-f` option, and ignore the `From` and `Sender` headers if it was provided to the transport.
## 2.12.1 - 2020-08-05
### Added
- Nothing.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#102](https://github.com/laminas/laminas-mail/pull/102) corrects a parameter typehint and a return type within the `Protocol\Imap` subcomponent to correctly detail what they allow.
## 2.12.0 - 2020-07-30
### Added
- [#95](https://github.com/laminas/laminas-mail/pull/95) adds a new interface, `Laminas\Mail\Header\HeaderLocatorInterface`. This defines classes that will locate header classes based on an email header name.
- [#95](https://github.com/laminas/laminas-mail/pull/95) adds a new class, `Laminas\Mail\Header\HeaderLocator`, implementing `Laminas\Mail\Header\HeaderLocatorInterface`. This is the default implementation of that new interface.
- [#95](https://github.com/laminas/laminas-mail/pull/95) adds the methods `setHeaderLocator(Laminas\Mail\Header\HeaderLocatorInterface $locator)` and `getHeaderLocator(): Laminas\Mail\Header\HeaderLocatorInterface` to the `Laminas\Mail\Headers` implementation. Users are encouraged to use these when providing custom header implementations in order to prepare for a 3.0 release. **The value of `getHeaderLocator()` will now be used as the default mechanism for resolving header names to header classes.**
- [#94](https://github.com/laminas/laminas-mail/pull/94) and [#99](https://github.com/laminas/laminas-mail/pull/99) add the "novalidatecert" option for each of the POP3, IMAP, and SMTP protocol implementations. When toggled true, you can connect to servers using self-signed certificates.
### Changed
- [#95](https://github.com/laminas/laminas-mail/pull/95) bumps the minimum supported PHP version to 7.1.
### Deprecated
- [#99](https://github.com/laminas/laminas-mail/pull/99) deprecates the `Laminas\Mail\Protocol\AbstractProtocol::_connect()` method, as it is no longer used internally.
- [#95](https://github.com/laminas/laminas-mail/pull/95) deprecates `Laminas\Mail\Header\HeaderLoader` in favor of the new `Laminas\Mail\Header\HeaderLocator` class. The class will be removed in version 3.0.0.
- [#95](https://github.com/laminas/laminas-mail/pull/95) deprecates the `Headers::getPluginClassLoader()` and `Headers::setPluginClassLoader()` methods, in favor of the new `setHeaderLocator()` and `getHeaderLocator()` methods. These methods will be removed in version 3.0.0, and laminas-loader `PluginClassLocator` instances will no longer be supported. Please update your code to use the new `HeaderLocatorInterface` instead.
### Removed
- [#98](https://github.com/laminas/laminas-mail/pull/98) removes `Laminas\Mail\Transport\Null`, as it is unusable with the new minimum supported PHP version (7.1). Users should use `Laminas\Mail\Transport\InMemory` instead. As this has been the default when requesting a "null" transport from `Laminas\Mail\Transport\Factory` for the past several minor releases, end-users should be unaffected. However, **users are encouraged to specify "inmemory" instead of "null" when requiring a no-op transport.**
### Fixed
- Nothing.
## 2.11.1 - 2020-07-28
### Added
- Nothing.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#97](https://github.com/laminas/laminas-mail/pull/97) adds code to `Header\ContentType::addParameter()` to ensure the value is trimmed of whitespace, fixing issues whereby filenames might contain a leading or trailing space.
## 2.11.0 - 2020-06-30
### Added
- [#31](https://github.com/laminas/laminas-mail/pull/31) adds the class `Laminas\Main\Header\ContentDisposition`, which implements `Laminas\Mail\Header\UnstructuredInterface`, and which provides propery encoding and escaping for `Content-Disposition` mail headers.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#31](https://github.com/laminas/laminas-mail/pull/31) provides a fix to ensure that the `Content-Disposition` header is properly encoded.
## 2.10.2 - 2020-06-30
### Added
- Nothing.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#89](https://github.com/laminas/laminas-mail/pull/89) corrects two parameter typehints within the Storage subcomponent to correctly detail what they allow.
- [#93](https://github.com/laminas/laminas-mail/pull/93) fixes an issue whereby an address containing a `;` character was not getting quoted, causing it to be interpreted as an address separator instead of part of the address.
## 2.10.1 - 2020-04-21
### Added
- [#81](https://github.com/laminas/laminas-mail/pull/81) adds PHP 7.3 and 7.4 support.
### Changed
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#83](https://github.com/laminas/laminas-mail/pull/83) fixes PHPDocs in `Transport\InMemory` (last message can be `null`).
- [#84](https://github.com/laminas/laminas-mail/pull/84) fixes PHP 7.4 compatibility.
- [#82](https://github.com/laminas/laminas-mail/pull/82) fixes numerous issues in `Storage\Maildir`. This storage adapter was not working before and unit tests were disabled.
- [#75](https://github.com/laminas/laminas-mail/pull/75) fixes how `Laminas\Mail\Header\ListParser::parse()` parses the string with quotes.
- [#88](https://github.com/laminas/laminas-mail/pull/88) fixes recognising encoding of `Subject` and `GenericHeader` headers.
## 2.10.0 - 2018-06-07
### Added
- [zendframework/zend-mail#213](https://github.com/zendframework/zend-mail/pull/213) re-adds support for PHP 5.6 and 7.0; Laminas policy is never
to bump the major version of a PHP requirement unless the package is bumping major version.
- [zendframework/zend-mail#172](https://github.com/zendframework/zend-mail/pull/172) adds the flag `connection_time_limit` to the possible `Laminas\Mail\Transport\Smtp` options.
This flag, when provided as a positive integer, and in conjunction with the `use_complete_quit` flag, will
reconnect to the server after the specified interval.
- [zendframework/zend-mail#166](https://github.com/zendframework/zend-mail/pull/166) adds functionality for handling `References` and `In-Reply-To` headers.
- [zendframework/zend-mail#148](https://github.com/zendframework/zend-mail/pull/148) adds the optional constructor argument `$comment` and the method `getComment()` to the class
`Laminas\Mail\Address`. When a comment is present, `toString()` will include it in the representation.
- [zendframework/zend-mail#148](https://github.com/zendframework/zend-mail/pull/148) adds the method `Laminas\Mail\Address::fromString(string $address, $comment = null) : Address`.
The method can be used to generate an instance from a string containing a `(name)?<email>` value.
The `$comment` argument can be used to associate a comment with the address.
### Changed
- [zendframework/zend-mail#196](https://github.com/zendframework/zend-mail/pull/196) updates how the `Headers::fromString()` handles header line continuations
that include a single empty line, ensuring they are concatenated to the
header value.
- [zendframework/zend-mail#165](https://github.com/zendframework/zend-mail/pull/165) changes the `AbstractAddressList` IDN&lt;-&gt;ASCII conversion; it now no longer requires
ext-intl, but instead uses a bundled true/punycode library to accomplish it. This also means that
the conversions will work on any PHP installation.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#211](https://github.com/zendframework/zend-mail/pull/211) fixes how the `ContentType` header class parses the value it receives. Previously,
it was incorrectly splitting the value on semi-colons that were inside quotes; in now correctly
ignores them.
- [zendframework/zend-mail#204](https://github.com/zendframework/zend-mail/pull/204) fixes `HeaderWrap::mimeDecodeValue()` behavior when handling a multiline UTF-8
header split across a character. The fix will only work when ext-imap is present, however.
- [zendframework/zend-mail#164](https://github.com/zendframework/zend-mail/pull/164) fixes the return value from `Laminas\Mail\Protocol\Imap::capability()` when no response is
returned from the server; previously, it returned `false`, but now correctly returns an empty array.
- [zendframework/zend-mail#148](https://github.com/zendframework/zend-mail/pull/148) fixes how `Laminas\Mail\Header\AbstractAddressList` parses address values, ensuring
that they now retain any address comment discovered to include in the generated `Laminas\Mail\Address` instances.
- [zendframework/zend-mail#147](https://github.com/zendframework/zend-mail/pull/147) fixes how address lists are parsed, expanding the functionality to allow either
`,` or `;` delimiters (or both in combination).
## 2.9.0 - 2017-03-01
### Added
- [zendframework/zend-mail#177](https://github.com/zendframework/zend-mail/issues/177)
[zendframework/zend-mail#181](https://github.com/zendframework/zend-mail/pull/181)
[zendframework/zend-mail#192](https://github.com/zendframework/zend-mail/pull/192)
[zendframework/zend-mail#189](https://github.com/zendframework/zend-mail/pull/189) PHP 7.2 support
- [zendframework/zend-mail#73](https://github.com/zendframework/zend-mail/issues/73)
[zendframework/zend-mail#160](https://github.com/zendframework/zend-mail/pull/160) Support for
mails that don't have a `To`, as long as `Cc` or `Bcc` are set.
- [zendframework/zend-mail#161](https://github.com/zendframework/zend-mail/issues/161) removed
useless try-catch that just re-throws.
- [zendframework/zend-mail#134](https://github.com/zendframework/zend-mail/issues/134) simplified
checks for the existence of some string sub-sequences, which were
needlessly performed via regular expressions
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#188](https://github.com/zendframework/zend-mail/pull/188) split strings
before calling `iconv_mime_decode()`, which destroys newlines, rendering
DKIM parsing useless.
- [zendframework/zend-mail#156](https://github.com/zendframework/zend-mail/pull/156) fixed a
regression in which `<` and `>` would appear doubled in message
identifiers.
- [zendframework/zend-mail#143](https://github.com/zendframework/zend-mail/pull/143) fixed parsing
of `<` and `>` being part of the email address comment.
## 2.8.0 - 2017-06-08
### Added
- [zendframework/zend-mail#117](https://github.com/zendframework/zend-mail/pull/117) adds support
configuring whether or not an SMTP transport should issue a `QUIT` at
`__destruct()` and/or end of script execution. Use the `use_complete_quit`
configuration flag and/or the `setuseCompleteQuit($flag)` method to change
the setting (default is to enable this behavior, which was the previous
behavior).
- [zendframework/zend-mail#128](https://github.com/zendframework/zend-mail/pull/128) adds a
requirement on ext/iconv, as it is used internally.
- [zendframework/zend-mail#132](https://github.com/zendframework/zend-mail/pull/132) bumps minimum
php version to 5.6
- [zendframework/zend-mail#144](https://github.com/zendframework/zend-mail/pull/144) adds support
for TLS versions 1.1 and 1.2 for all protocols supporting TLS operations.
### Changed
- [zendframework/zend-mail#140](https://github.com/zendframework/zend-mail/pull/140) updates the
`Sendmail` transport such that `From` and `Sender` addresses are passed to
`escapeshellarg()` when forming the `-f` argument for the `sendmail` binary.
While malformed addresses should never reach this class, this extra hardening
helps ensure safety in cases where a developer codes their own
`AddressInterface` implementations for these types of addresses.
- [zendframework/zend-mail#141](https://github.com/zendframework/zend-mail/pull/141) updates
`Laminas\Mail\Message::getHeaders()` to throw an exception in a case where the
`$headers` property is not a `Headers` instance.
- [zendframework/zend-mail#150](https://github.com/zendframework/zend-mail/pull/150) updates the
`Smtp` protocol to allow an empty or `none` value for the SSL configuration
value.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#151](https://github.com/zendframework/zend-mail/pull/151) fixes a condition
in the `Sendmail` transport whereby CLI parameters were not properly trimmed.
## 2.7.3 - 2017-02-14
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#93](https://github.com/zendframework/zend-mail/pull/93) fixes a situation
whereby `getSender()` was unintentionally creating a blank `Sender` header,
instead of returning `null` if none exists, fixing an issue in the SMTP
transport.
- [zendframework/zend-mail#105](https://github.com/zendframework/zend-mail/pull/105) fixes the header
implementation to allow zero (`0`) values for header values.
- [zendframework/zend-mail#116](https://github.com/zendframework/zend-mail/pull/116) fixes how the
`AbstractProtocol` handles `stream_socket_client()` errors, ensuring an
exception is thrown with detailed information regarding the failure.
## 2.7.2 - 2016-12-19
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- Fixes [ZF2016-04](https://framework.zend.com/security/advisory/ZF2016-04).
## 2.7.1 - 2016-05-09
### Added
- [zendframework/zend-mail#38](https://github.com/zendframework/zend-mail/pull/38) adds support in the
IMAP protocol adapter for fetching items by UID.
- [zendframework/zend-mail#88](https://github.com/zendframework/zend-mail/pull/88) adds and publishes
documentation to https://docs.laminas.dev/laminas-mail/
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#9](https://github.com/zendframework/zend-mail/pull/9) fixes the
`Laminas\Mail\Header\Sender::fromString()` implementation to more closely follow
the ABNF defined in RFC-5322, specifically to allow addresses in the form
`user@domain` (with no TLD).
- [zendframework/zend-mail#28](https://github.com/zendframework/zend-mail/pull/28) and
[zendframework/zend-mail#87](https://github.com/zendframework/zend-mail/pull/87) fix header value
validation when headers wrap using the sequence `\r\n\t`; prior to this
release, such sequences incorrectly marked a header value invalid.
- [zendframework/zend-mail#37](https://github.com/zendframework/zend-mail/pull/37) ensures that empty
lines do not result in PHP errors when consuming messages from a Courier IMAP
server.
- [zendframework/zend-mail#81](https://github.com/zendframework/zend-mail/pull/81) fixes the validation
in `Laminas\Mail\Address` to also DNS hostnames as well as local addresses.
## 2.7.0 - 2016-04-11
### Added
- [zendframework/zend-mail#41](https://github.com/zendframework/zend-mail/pull/41) adds support for
IMAP delimiters in the IMAP storage adapter.
- [zendframework/zend-mail#80](https://github.com/zendframework/zend-mail/pull/80) adds:
- `Laminas\Mail\Protocol\SmtpPluginManagerFactory`, for creating and returning an
`SmtpPluginManagerFactory` instance.
- `Laminas\Mail\ConfigProvider`, which maps the `SmtpPluginManager` to the above
factory.
- `Laminas\Mail\Module`, which does the same, for laminas-mvc contexts.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- Nothing.
## 2.6.2 - 2016-04-11
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#44](https://github.com/zendframework/zend-mail/pull/44) fixes an issue with
decoding of addresses where the full name contains a comma (e.g., "Lastname,
Firstname").
- [zendframework/zend-mail#45](https://github.com/zendframework/zend-mail/pull/45) ensures that the
message parser allows deserializing message bodies containing multiple EOL
sequences.
- [zendframework/zend-mail#78](https://github.com/zendframework/zend-mail/pull/78) fixes the logic of
`HeaderWrap::canBeEncoded()` to ensure it returns correctly for header lines
containing at least one multibyte character, and particularly when that
character falls at specific locations (per a
[reported bug at php.net](https://bugs.php.net/bug.php?id=53891)).
## 2.6.1 - 2016-02-24
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#72](https://github.com/zendframework/zend-mail/pull/72) re-implements
`SmtpPluginManager` as a laminas-servicemanager `AbstractPluginManager`, after
reports that making it standalone broke important extensibility use cases
(specifically, replacing existing plugins and/or providing additional plugins
could only be managed with significant code changes).
## 2.6.0 - 2016-02-18
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#47](https://github.com/zendframework/zend-mail/pull/47) updates the
component to remove the (soft) dependency on laminas-servicemanager, by
altering the `SmtpPluginManager` to implement container-interop's
`ContainerInterface` instead of extending from `AbstractPluginManager`.
Usage remains the same, though developers who were adding services
to the plugin manager will need to instead extend it now.
- [zendframework/zend-mail#70](https://github.com/zendframework/zend-mail/pull/70) updates dependencies
to stable, forwards-compatible versions, and removes unused dependencies.
## 2.5.2 - 2015-09-10
### Added
- [zendframework/zend-mail#12](https://github.com/zendframework/zend-mail/pull/12) adds support for
simple comments in address lists.
- [zendframework/zend-mail#13](https://github.com/zendframework/zend-mail/pull/13) adds support for
groups in address lists.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [zendframework/zend-mail#26](https://github.com/zendframework/zend-mail/pull/26) fixes the
`ContentType` header to properly handle parameters with encoded values.
- [zendframework/zend-mail#11](https://github.com/zendframework/zend-mail/pull/11) fixes the
behavior of the `Sender` header, ensuring it can handle domains that do not
contain a TLD, as well as addresses referencing mailboxes (no domain).
- [zendframework/zend-mail#24](https://github.com/zendframework/zend-mail/pull/24) fixes parsing of
mail messages that contain an initial blank line (prior to the headers), a
situation observed in particular with GMail.