All notable changes to this project will be documented in this file, in reverse chronological order by release.
#213 re-adds support for PHP 5.6 and 7.0; ZF policy is never to bump the major version of a PHP requirement unless the package is bumping major version.
#172 adds the flag connection_time_limit to the possible Zend\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.
#166 adds functionality for handling References and In-Reply-To headers.
#148 adds the optional constructor argument $comment and the method getComment() to the class
Zend\Mail\Address. When a comment is present, toString() will include it in the representation.
#148 adds the method Zend\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.
#196 updates how the Headers::fromString() handles header line continuations
that include a single empty line, ensuring they are concatenated to the
header value.
#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.
#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.
#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.
#164 fixes the return value from Zend\Mail\Protocol\Imap::capability() when no response is
returned from the server; previously, it returned false, but now correctly returns an empty array.
#148 fixes how Zend\Mail\Header\AbstractAddressList parses address values, ensuring
that they now retain any address comment discovered to include in the generated Zend\Mail\Address instances.
#147 fixes how address lists are parsed, expanding the functionality to allow either
, or ; delimiters (or both in combination).
To, as long as Cc or Bcc are set.iconv_mime_decode(), which destroys newlines, rendering
DKIM parsing useless.< and > would appear doubled in message
identifiers.< and > being part of the email address comment.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).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.Zend\Mail\Message::getHeaders() to throw an exception in a case where the
$headers property is not a Headers instance.Smtp protocol to allow an empty or none value for the SSL configuration
value.Sendmail transport whereby CLI parameters were not properly trimmed.getSender() was unintentionally creating a blank Sender header,
instead of returning null if none exists, fixing an issue in the SMTP
transport.0) values for header values.AbstractProtocol handles stream_socket_client() errors, ensuring an
exception is thrown with detailed information regarding the failure.Zend\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).\r\n\t; prior to this
release, such sequences incorrectly marked a header value invalid.Zend\Mail\Address to also DNS hostnames as well as local addresses.Zend\Mail\Protocol\SmtpPluginManagerFactory, for creating and returning an
SmtpPluginManagerFactory instance.Zend\Mail\ConfigProvider, which maps the SmtpPluginManager to the above
factory.Zend\Mail\Module, which does the same, for zend-mvc contexts.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).SmtpPluginManager as a zend-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).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.ContentType header to properly handle parameters with encoded values.Sender header, ensuring it can handle domains that do not
contain a TLD, as well as addresses referencing mailboxes (no domain).