20 KiB
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
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 thanks to @glensc
2.12.3 - TBD
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #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 fixes issues on Windows whereby the "Subject" and "To" headers were duplicated.
-
#104 fixes an issue that occured when the
Sendmailtransport was configured with a-foption (From address). Prior to the fix, the option would be overwritten by the messageFromorSenderheaders, 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-foption, and ignore theFromandSenderheaders if it was provided to the transport.
2.12.1 - 2020-08-05
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #102 corrects a parameter typehint and a return type within the
Protocol\Imapsubcomponent to correctly detail what they allow.
2.12.0 - 2020-07-30
Added
-
#95 adds a new interface,
Laminas\Mail\Header\HeaderLocatorInterface. This defines classes that will locate header classes based on an email header name. -
#95 adds a new class,
Laminas\Mail\Header\HeaderLocator, implementingLaminas\Mail\Header\HeaderLocatorInterface. This is the default implementation of that new interface. -
#95 adds the methods
setHeaderLocator(Laminas\Mail\Header\HeaderLocatorInterface $locator)andgetHeaderLocator(): Laminas\Mail\Header\HeaderLocatorInterfaceto theLaminas\Mail\Headersimplementation. Users are encouraged to use these when providing custom header implementations in order to prepare for a 3.0 release. The value ofgetHeaderLocator()will now be used as the default mechanism for resolving header names to header classes. -
#94 and #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 bumps the minimum supported PHP version to 7.1.
Deprecated
-
#99 deprecates the
Laminas\Mail\Protocol\AbstractProtocol::_connect()method, as it is no longer used internally. -
#95 deprecates
Laminas\Mail\Header\HeaderLoaderin favor of the newLaminas\Mail\Header\HeaderLocatorclass. The class will be removed in version 3.0.0. -
#95 deprecates the
Headers::getPluginClassLoader()andHeaders::setPluginClassLoader()methods, in favor of the newsetHeaderLocator()andgetHeaderLocator()methods. These methods will be removed in version 3.0.0, and laminas-loaderPluginClassLocatorinstances will no longer be supported. Please update your code to use the newHeaderLocatorInterfaceinstead.
Removed
- #98 removes
Laminas\Mail\Transport\Null, as it is unusable with the new minimum supported PHP version (7.1). Users should useLaminas\Mail\Transport\InMemoryinstead. As this has been the default when requesting a "null" transport fromLaminas\Mail\Transport\Factoryfor 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 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 adds the class
Laminas\Main\Header\ContentDisposition, which implementsLaminas\Mail\Header\UnstructuredInterface, and which provides propery encoding and escaping forContent-Dispositionmail headers.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #31 provides a fix to ensure that the
Content-Dispositionheader is properly encoded.
2.10.2 - 2020-06-30
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
-
#89 corrects two parameter typehints within the Storage subcomponent to correctly detail what they allow.
-
#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 adds PHP 7.3 and 7.4 support.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
-
#83 fixes PHPDocs in
Transport\InMemory(last message can benull). -
#84 fixes PHP 7.4 compatibility.
-
#82 fixes numerous issues in
Storage\Maildir. This storage adapter was not working before and unit tests were disabled. -
#75 fixes how
Laminas\Mail\Header\ListParser::parse()parses the string with quotes. -
#88 fixes recognising encoding of
SubjectandGenericHeaderheaders.
2.10.0 - 2018-06-07
Added
-
zendframework/zend-mail#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 adds the flag
connection_time_limitto the possibleLaminas\Mail\Transport\Smtpoptions. This flag, when provided as a positive integer, and in conjunction with theuse_complete_quitflag, will reconnect to the server after the specified interval. -
zendframework/zend-mail#166 adds functionality for handling
ReferencesandIn-Reply-Toheaders. -
zendframework/zend-mail#148 adds the optional constructor argument
$commentand the methodgetComment()to the classLaminas\Mail\Address. When a comment is present,toString()will include it in the representation. -
zendframework/zend-mail#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$commentargument can be used to associate a comment with the address.
Changed
-
zendframework/zend-mail#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 changes the
AbstractAddressListIDN<->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 fixes how the
ContentTypeheader 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 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 fixes the return value from
Laminas\Mail\Protocol\Imap::capability()when no response is returned from the server; previously, it returnedfalse, but now correctly returns an empty array. -
zendframework/zend-mail#148 fixes how
Laminas\Mail\Header\AbstractAddressListparses address values, ensuring that they now retain any address comment discovered to include in the generatedLaminas\Mail\Addressinstances. -
zendframework/zend-mail#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 zendframework/zend-mail#181 zendframework/zend-mail#192 zendframework/zend-mail#189 PHP 7.2 support
- zendframework/zend-mail#73
zendframework/zend-mail#160 Support for
mails that don't have a
To, as long asCcorBccare set. - zendframework/zend-mail#161 removed useless try-catch that just re-throws.
- zendframework/zend-mail#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 split strings
before calling
iconv_mime_decode(), which destroys newlines, rendering DKIM parsing useless. - zendframework/zend-mail#156 fixed a
regression in which
<and>would appear doubled in message identifiers. - zendframework/zend-mail#143 fixed parsing
of
<and>being part of the email address comment.
2.8.0 - 2017-06-08
Added
- zendframework/zend-mail#117 adds support
configuring whether or not an SMTP transport should issue a
QUITat__destruct()and/or end of script execution. Use theuse_complete_quitconfiguration flag and/or thesetuseCompleteQuit($flag)method to change the setting (default is to enable this behavior, which was the previous behavior). - zendframework/zend-mail#128 adds a requirement on ext/iconv, as it is used internally.
- zendframework/zend-mail#132 bumps minimum php version to 5.6
- zendframework/zend-mail#144 adds support for TLS versions 1.1 and 1.2 for all protocols supporting TLS operations.
Changed
- zendframework/zend-mail#140 updates the
Sendmailtransport such thatFromandSenderaddresses are passed toescapeshellarg()when forming the-fargument for thesendmailbinary. While malformed addresses should never reach this class, this extra hardening helps ensure safety in cases where a developer codes their ownAddressInterfaceimplementations for these types of addresses. - zendframework/zend-mail#141 updates
Laminas\Mail\Message::getHeaders()to throw an exception in a case where the$headersproperty is not aHeadersinstance. - zendframework/zend-mail#150 updates the
Smtpprotocol to allow an empty ornonevalue for the SSL configuration value.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#151 fixes a condition
in the
Sendmailtransport whereby CLI parameters were not properly trimmed.
2.7.3 - 2017-02-14
Added
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#93 fixes a situation
whereby
getSender()was unintentionally creating a blankSenderheader, instead of returningnullif none exists, fixing an issue in the SMTP transport. - zendframework/zend-mail#105 fixes the header
implementation to allow zero (
0) values for header values. - zendframework/zend-mail#116 fixes how the
AbstractProtocolhandlesstream_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.
2.7.1 - 2016-05-09
Added
- zendframework/zend-mail#38 adds support in the IMAP protocol adapter for fetching items by UID.
- zendframework/zend-mail#88 adds and publishes documentation to https://docs.laminas.dev/laminas-mail/
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#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 formuser@domain(with no TLD). - zendframework/zend-mail#28 and
zendframework/zend-mail#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 ensures that empty lines do not result in PHP errors when consuming messages from a Courier IMAP server.
- zendframework/zend-mail#81 fixes the validation
in
Laminas\Mail\Addressto also DNS hostnames as well as local addresses.
2.7.0 - 2016-04-11
Added
- zendframework/zend-mail#41 adds support for IMAP delimiters in the IMAP storage adapter.
- zendframework/zend-mail#80 adds:
Laminas\Mail\Protocol\SmtpPluginManagerFactory, for creating and returning anSmtpPluginManagerFactoryinstance.Laminas\Mail\ConfigProvider, which maps theSmtpPluginManagerto 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 fixes an issue with decoding of addresses where the full name contains a comma (e.g., "Lastname, Firstname").
- zendframework/zend-mail#45 ensures that the message parser allows deserializing message bodies containing multiple EOL sequences.
- zendframework/zend-mail#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).
2.6.1 - 2016-02-24
Added
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#72 re-implements
SmtpPluginManageras a laminas-servicemanagerAbstractPluginManager, 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 updates the
component to remove the (soft) dependency on laminas-servicemanager, by
altering the
SmtpPluginManagerto implement container-interop'sContainerInterfaceinstead of extending fromAbstractPluginManager. 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 updates dependencies to stable, forwards-compatible versions, and removes unused dependencies.
2.5.2 - 2015-09-10
Added
- zendframework/zend-mail#12 adds support for simple comments in address lists.
- zendframework/zend-mail#13 adds support for groups in address lists.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#26 fixes the
ContentTypeheader to properly handle parameters with encoded values. - zendframework/zend-mail#11 fixes the
behavior of the
Senderheader, ensuring it can handle domains that do not contain a TLD, as well as addresses referencing mailboxes (no domain). - zendframework/zend-mail#24 fixes parsing of mail messages that contain an initial blank line (prior to the headers), a situation observed in particular with GMail.