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
Sendmail
transport was configured with a-f
option (From address). Prior to the fix, the option would be overwritten by the messageFrom
orSender
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 theFrom
andSender
headers 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\Imap
subcomponent 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\HeaderLocatorInterface
to theLaminas\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 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\HeaderLoader
in favor of the newLaminas\Mail\Header\HeaderLocator
class. 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-loaderPluginClassLocator
instances will no longer be supported. Please update your code to use the newHeaderLocatorInterface
instead.
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\InMemory
instead. As this has been the default when requesting a "null" transport fromLaminas\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 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-Disposition
mail headers.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #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 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
Subject
andGenericHeader
headers.
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_limit
to the possibleLaminas\Mail\Transport\Smtp
options. This flag, when provided as a positive integer, and in conjunction with theuse_complete_quit
flag, will reconnect to the server after the specified interval. -
zendframework/zend-mail#166 adds functionality for handling
References
andIn-Reply-To
headers. -
zendframework/zend-mail#148 adds the optional constructor argument
$comment
and 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$comment
argument 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
AbstractAddressList
IDN<->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
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 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\AbstractAddressList
parses address values, ensuring that they now retain any address comment discovered to include in the generatedLaminas\Mail\Address
instances. -
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 asCc
orBcc
are 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
QUIT
at__destruct()
and/or end of script execution. Use theuse_complete_quit
configuration 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
Sendmail
transport such thatFrom
andSender
addresses are passed toescapeshellarg()
when forming the-f
argument for thesendmail
binary. While malformed addresses should never reach this class, this extra hardening helps ensure safety in cases where a developer codes their ownAddressInterface
implementations for these types of addresses. - zendframework/zend-mail#141 updates
Laminas\Mail\Message::getHeaders()
to throw an exception in a case where the$headers
property is not aHeaders
instance. - zendframework/zend-mail#150 updates the
Smtp
protocol to allow an empty ornone
value for the SSL configuration value.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- zendframework/zend-mail#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 fixes a situation
whereby
getSender()
was unintentionally creating a blankSender
header, instead of returningnull
if 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
AbstractProtocol
handlesstream_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\Address
to 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 anSmtpPluginManagerFactory
instance.Laminas\Mail\ConfigProvider
, which maps theSmtpPluginManager
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 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
SmtpPluginManager
as 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
SmtpPluginManager
to implement container-interop'sContainerInterface
instead 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
ContentType
header to properly handle parameters with encoded values. - zendframework/zend-mail#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 fixes parsing of mail messages that contain an initial blank line (prior to the headers), a situation observed in particular with GMail.