Changelog
=========

5.4.9 (2017-XX-XX)
------------------

 * n/a

5.4.8 (2017-05-01)
------------------

 * fixed encoding inheritance in addPart()
 * fixed sorting MIME children when their types are equal

5.4.7 (2017-04-20)
------------------

 * fixed NTLMAuthenticator clobbering bcmath scale

5.4.6 (2017-02-13)
------------------

 * removed exceptions thrown in destructors as they lead to fatal errors
 * switched to use sha256 by default in DKIM as per the RFC
 * fixed an 'Undefined variable: pipes' PHP notice
 * fixed long To headers when using the mail transport
 * fixed NTLMAuthenticator when no domain is passed with the username
 * prevented fatal error during unserialization of a message
 * fixed a PHP warning when sending a message that has a length of a multiple of 8192

5.4.5 (2016-12-29)
------------------

 * SECURITY FIX:  fixed CVE-2016-10074 by disallowing potentially unsafe shell characters

   Prior to 5.4.5, the mail transport (Swift_Transport_MailTransport) was vulnerable to passing
   arbitrary shell arguments if the "From", "ReturnPath" or "Sender" header came
   from a non-trusted source, potentially allowing Remote Code Execution
 * deprecated the mail transport

5.4.4 (2016-11-23)
------------------

 * reverted escaping command-line args to mail (PHP mail() function already does it)

5.4.3 (2016-07-08)
------------------

 * fixed SimpleHeaderSet::has()/get() when the 0 index is removed
 * removed the need to have mcrypt installed
 * fixed broken MIME header encoding with quotes/colons and non-ascii chars
 * allowed mail transport send for messages without To header
 * fixed PHP 7 support

5.4.2 (2016-05-01)
------------------

 * fixed support for IPv6 sockets
 * added auto-retry when sending messages from the memory spool
 * fixed consecutive read calls in Swift_ByteStream_FileByteStream
 * added support for iso-8859-15 encoding
 * fixed PHP mail extra params on missing reversePath
 * added methods to set custom stream context options
 * fixed charset changes in QpContentEncoderProxy
 * added return-path header to the ignoredHeaders list of DKIMSigner
 * fixed crlf for subject using mail
 * fixed add soft line break only when necessary
 * fixed escaping command-line args to mail

5.4.1 (2015-06-06)
------------------

 * made Swiftmailer exceptions confirm to PHP base exception constructor signature
 * fixed MAIL FROM & RCPT TO headers to be RFC compliant

5.4.0 (2015-03-14)
------------------

 * added the possibility to add extra certs to PKCS#7 signature
 * fix base64 encoding with streams
 * added a new RESULT_SPOOLED status for SpoolTransport
 * fixed getBody() on attachments when called more than once
 * removed dots from generated filenames in filespool

5.3.1 (2014-12-05)
------------------

 * fixed cloning of messages with attachments

5.3.0 (2014-10-04)
------------------

 * fixed cloning when using signers
 * reverted removal of Swift_Encoding
 * drop support for PHP 5.2.x

5.2.2 (2014-09-20)
------------------

 * fixed Japanese support
 * fixed the memory spool when the message changes when in the pool
 * added support for cloning messages
 * fixed PHP warning in the redirect plugin
 * changed the way to and cc-ed email are sent to only use one transaction

5.2.1 (2014-06-13)
------------------

 * SECURITY FIX: fixed CLI escaping when using sendmail as a transport

   Prior to 5.2.1, the sendmail transport (Swift_Transport_SendmailTransport)
   was vulnerable to an arbitrary shell execution if the "From" header came
   from a non-trusted source and no "Return-Path" is configured.

 * fixed parameter in DKIMSigner
 * fixed compatibility with PHP < 5.4

5.2.0 (2014-05-08)
------------------

 * fixed Swift_ByteStream_FileByteStream::read() to match to the specification
 * fixed from-charset and to-charset arguments in mbstring_convert_encoding() usages
 * fixed infinite loop in StreamBuffer
 * fixed NullTransport to return the number of ignored emails instead of 0
 * Use phpunit and mockery for unit testing (realityking)

5.1.0 (2014-03-18)
------------------

 * fixed data writing to stream when sending large messages
 * added support for libopendkim (https://github.com/xdecock/php-opendkim)
 * merged SignedMessage and Message
 * added Gmail XOAuth2 authentication
 * updated the list of known mime types
 * added NTLM authentication

5.0.3 (2013-12-03)
------------------

 * fixed double-dot bug
 * fixed DKIM signer

5.0.2 (2013-08-30)
------------------

 * handled correct exception type while reading IoBuffer output

5.0.1 (2013-06-17)
------------------

 * changed the spool to only start the transport when a mail has to be sent
 * fixed compatibility with PHP 5.2
 * fixed LICENSE file

5.0.0 (2013-04-30)
------------------

 * changed the license from LGPL to MIT

4.3.1 (2013-04-11)
------------------

 * removed usage of the native QP encoder when the charset is not UTF-8
 * fixed usage of uniqid to avoid collisions
 * made a performance improvement when tokenizing large headers
 * fixed usage of the PHP native QP encoder on PHP 5.4.7+

4.3.0 (2013-01-08)
------------------

 * made the temporary directory configurable via the TMPDIR env variable
 * added S/MIME signer and encryption support

4.2.2 (2012-10-25)
------------------

 * added the possibility to throttle messages per second in ThrottlerPlugin (mostly for Amazon SES)
 * switched mime.qpcontentencoder to automatically use the PHP native encoder on PHP 5.4.7+
 * allowed specifying a whitelist with regular expressions in RedirectingPlugin

4.2.1 (2012-07-13)
------------------

 * changed the coding standards to PSR-1/2
 * fixed issue with autoloading
 * added NativeQpContentEncoder to enhance performance (for PHP 5.3+)

4.2.0 (2012-06-29)
------------------

 * added documentation about how to use the Japanese support introduced in 4.1.8
 * added a way to override the default configuration in a lazy way
 * changed the PEAR init script to lazy-load the initialization
 * fixed a bug when calling Swift_Preferences before anything else (regression introduced in 4.1.8)

4.1.8 (2012-06-17)
------------------

 * added Japanese iso-2022-jp support
 * changed the init script to lazy-load the initialization
 * fixed docblocks (@id) which caused some problems with libraries parsing the dobclocks
 * fixed Swift_Mime_Headers_IdentificationHeader::setId() when passed an array of ids
 * fixed encoding of email addresses in headers
 * added replacements setter to the Decorator plugin

4.1.7 (2012-04-26)
------------------

 * fixed QpEncoder safeMapShareId property

4.1.6 (2012-03-23)
------------------

 * reduced the size of serialized Messages

4.1.5 (2012-01-04)
------------------

 * enforced Swift_Spool::queueMessage() to return a Boolean
 * made an optimization to the memory spool: start the transport only when required
 * prevented stream_socket_client() from generating an error and throw a Swift_TransportException instead
 * fixed a PHP warning when calling to mail() when safe_mode is off
 * many doc tweaks

4.1.4 (2011-12-16)
------------------

 * added a memory spool (Swift_MemorySpool)
 * fixed too many opened files when sending emails with attachments

4.1.3 (2011-10-27)
------------------

 * added STARTTLS support
 * added missing @return tags on fluent methods
 * added a MessageLogger plugin that logs all sent messages
 * added composer.json

4.1.2 (2011-09-13)
------------------

 * fixed wrong detection of magic_quotes_runtime
 * fixed fatal errors when no To or Subject header has been set
 * fixed charset on parameter header continuations
 * added documentation about how to install Swiftmailer from the PEAR channel
 * fixed various typos and markup problem in the documentation
 * fixed warning when cache directory does not exist
 * fixed "slashes are escaped" bug
 * changed require_once() to require() in autoload

4.1.1 (2011-07-04)
------------------

 * added missing file in PEAR package

4.1.0 (2011-06-30)
------------------

 * documentation has been converted to ReST

4.1.0 RC1 (2011-06-17)
----------------------

New features:

 * changed the Decorator Plugin to allow replacements in all headers
 * added Swift_Mime_Grammar and Swift_Validate to validate an email address
 * modified the autoloader to lazy-initialize Swiftmailer
 * removed Swift_Mailer::batchSend()
 * added NullTransport
 * added new plugins: RedirectingPlugin and ImpersonatePlugin
 * added a way to send messages asynchronously (Spool)
