replace array_merge with manual iteration for performance
merged branch jimbojsb/master (PR #280)

This PR was merged into the master branch.

Commits
-------

37372cd replace array_merge with manual iteration for performance

Discussion
----------

Fix performance when tokenizing massive headers

I made this update to fix a performance issue when using very large headers. The use case is SendGrid's bulk messaging API in which there can be many thousands of lines of JSON in one  X-SMTPAPI header. array_merge() is known to be slow when dealing with arrays over about 100 items and being called repeatedly, because it's doing a key re-sort operation every time.

This change, in my 1000 item example, made the processing that happens inside ->send() go from 2 minutes to 2 seconds.
updated CHANGES
Fix set body length in DKIM
merged branch Scimon/master (PR #281)

This PR was merged into the master branch.

Commits
-------

ebc6bd8 Fix set body length in DKIM

Discussion
----------

Small fix

Hi, I've been using Swiftmailer recently for DKIM signing and noticed the setBodyLength function in the DKIM signer was incorrectly referencing $this->len not the $len argument.

Cheers.

Simon
Expose _becomeMimePart() to allow signed message to be implemented correctly
Enable signed message to handle body text/plain part to be set via setBody();

+ Corrected bug in test, the content-type MUST be text/plain
Dropping unused file, was meant for a "internal extension" never released
Implementing better Openssl error handling
merged branch xdecock/SignFix (PR #283)

This PR was merged into the master branch.

Commits
-------

9bc3134 Implementing better Openssl error handling
38d1ef1 Dropping unused file, was meant for a "internal extension" never released
5938da3 Enable signed message to handle body text/plain part to be set via setBody();
bcf4ee4 Expose _becomeMimePart() to allow signed message to be implemented correctly

Discussion
----------

Sign fix

Same as previous pull request, but with better segmented commits, with an up-to-date tree, and not messing with myself.

Basically,

+ Removed an old file that never worked
+ Allowed signing plugins to work on messages plain/text alternative injected via ->setBody method();
+ Corrected a bug in an SMime Test.
Issue 274
merged branch xdecock/issue_274 (PR #284)

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

Commits
-------

162971f Issue 274

Discussion
----------

Issue 274

Solves the bug#274
tweaked previous merge
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.