Conditionally save current recipients

* Swift_Plugins_RedirectingPlugin::beforeSendPerformed() does not check for the existence of headers before setting their X-Swift equivalent.
* Swift_Plugins_RedirectingPlugin::_restoreMessage_restoreMessage() does check if the X-Swift equivalent exists before restoring the actual header.

This leads to the possibility that although the cc and bcc headers were not originally set they will be set once the message is restored. This in turn leads to unexpected behaviour when checking for a headers existence with Swift_Mime_HeaderSet::has().

This patch checks for the existence of headers before setting their X-Swift equivalent.
merged branch leevigraham/patch-1 (PR #290)

This PR was merged into the master branch.

Commits
-------

c7b6641 Conditionally save current recipients

Discussion
----------

Conditionally save current recipients

* Swift_Plugins_RedirectingPlugin::beforeSendPerformed() does not check for the existence of headers before setting their X-Swift equivalent
* Swift_Plugins_RedirectingPlugin::_restoreMessage_restoreMessage() does check if the X-Swift equivalent exists before restoring the actual header

This leads to the possibility that although the cc and bcc headers were not originally set they will be set once the message is restored. This in turn leads to unexpected behaviour when checking for a headers existence with Swift_Mime_HeaderSet::has().

This patch checks for the existence of headers before setting their X-Swift equivalent.
Update AbstractSmtpTransport.php

Swift_TransportException should include the status code from the smtp backend.
merged branch returngreat/master (PR #305)

This PR was merged into the master branch.

Commits
-------

7636029 Update AbstractSmtpTransport.php

Discussion
----------

AbstractSmtpTransport should include the status code in the exception

Swift_TransportException should include the status code from the smtp backend.
fixed qp encoder & non-utf8 charset bug
merged branch jfsimon/issue-288 (PR #306)

This PR was merged into the master branch.

Discussion
----------

[WIP] fixes qp encoder & non-utf8 charset bug

Fixes #288

Commits
-------

252dac5 fixed qp encoder & non-utf8 charset bug
Added Pid next to uniqid as uniqid can cause collisions
merged branch xdecock/Bug_309 (PR #310)

This PR was squashed before being merged into the master branch (closes #310).

Discussion
----------

Added Pid next to uniqid as uniqid can cause collisions

Should solve all the (unlink / mkdir bugs including #309, #168, #57,
#295)

Change-Id: I6fe847ba35dc507de1011a220b90a41e838e5733

Commits
-------

c04a0d3 Added Pid next to uniqid as uniqid can cause collisions
updated CHANGES
fixed QP encoder

Squashed commits:
- fixed qp encoder & non-utf8 charset bug
- fixed errors from native qp encoder
- fixed QP encoder tests
Fixed varying boundary length
merged branch jfsimon/issue-288 (PR #306)

This PR was merged into the master branch.

Discussion
----------

Fixes qp encoder & non-utf8 charset bug

Fixes #288 & shoulf fix #315 (to be confirmed)

Commits
-------

46fefda fixed QP encoder
merged branch burci/bug-toolongboundary (PR #316)

This PR was merged into the master branch.

Discussion
----------

[error] Varying boundary length

At Swift_Mime_Headers_ParameterizedHeader::_createParameter boundary can be encoded because the length is bigger then allowed by $_maxLineLength.

Too long boundary in header after the encoding:

 boundary="=?utf-8?Q?=5F=3D=5Fswift=5Fv4=5F1365410405=5F16224=5F48336961651628265cb?=
 =?utf-8?Q?7d58=2E54152349=5F=3D=5F?="

Original boundary:
--_=_swift_v4_1365410405_16224_48336961651628265cb7d58.54152349_=_

where:

unix timestemp : 1365410405
pid : 16224  // The maximum for 32 bit systems would be 32768, for 64 bit 4194304
uniqid(mt_rand(), true) : 48336961651628265cb7d58.54152349 // uniqid('', true)

Max values, lengths:

pid : The maximum for 32 bit systems would be 32768, for 64 bit 4194304 length: 1->7
uniqid('', true): length: 23
mt_rand(): max value 2147483647, length: 1->10

Both the getmypid() and mt_rand() function returns varying length result, anyway I don't know if pid in boundary is a good idea.

Maybe using md5 is better way to limit the max length and getting bigger entropy...

Thx @smatyas for the help.

Commits
-------

4809199 Fixed varying boundary length
updated CHANGELOG
prepared the 4.3.1 release
bumped version to 4.3.1-DEV
changed the license from LGPL to MIT
merged branch swiftmailer/mit (PR #319)

This PR was merged into the master branch.

Discussion
----------

changed the license from LGPL to MIT

Commits
-------

b302c1f changed the license from LGPL to MIT
fixed version in composer.json
prepared the 5.0.0 release