zendframework/zend-mail
Zend\Mail provides robust email composition and transport for PHP applications, supporting MIME messages, attachments, multipart content, headers, encodings, and SMTP/sendmail/file transports. Includes message parsing and validation for reliable mail handling.
#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).
zend-mail 2.9.0
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.Total issues resolved: 18
CONTRIBUTING.md thanks to @glenscMessage#getBody() can also return a string thanks to @SlamdunkHeaderValue class.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.How can I help you explore Laravel packages today?