Swift Mailer 2.1.17 18th October 2006 --------------------------- HISTORY 29th April 2006: 0.0.0 First working version, support for SMTP authentication needed. 8Th May 2006: 0.0.1 First official release - Features added: * SMTP Authentication (PLAIN, LOGIN, CRAM-MD5) * Separated connection handling into classes * Support for SSL included * Emails now locally cached in send() when delivering to multiple recipients * Response codes tracked and checked throughout. 15th May 2006: 0.0.2 Corrected an issue with attachments not displaying in Thunderbird This issue was *not* due to the implmentation of MIME in Swift - but rather, Thunderbird seems not to handle the multipart/alternative MIME type very well when combined with a mixed MIME type. 16th May 2006: 0.0.3 Added the LFtoCRLF() method. 20th May 2006: 0.0.4 Made second constructor paramter optional (now defaults to $_SERVER['SERVER_NAME']) Added an option to automatically convert line longer than 76 characters to be compliant. Included interfaces for PHP5 version. (PHPDocumentor comments added) 25th May 2006: 1.0.0 Added wrappers for Bcc, Cc and multiple To addresses. Speed improvements. More refactored further to make plugin development more flexible. Releases early to fix a bug with MTA parsing of addresses. 31st May 2006: 1.0.1 Bugfix: ChunkSplitLines() wasn't replacing the exisiting CRLF 1st June 2006: 1.1.0 Support for TLS encryption added. Gmail servers!! Better error reporting. Embedded image support autoFlush() along with individula flush methods added autoResizeLines() prettied up more Addresses can now be given in 3 ways (list of addresses, single addresss, "address, name" or any combination of these). 4th June 2006: 1.1.2 Connection/handshake procedure refactored into a connect() method in Swift. Minor (really minor) bugfix with commandKeyword not being emptied where no command in being sent. Anti-flood plugin included with package. 8th June 2006: 1.1.3 Added POP3 Before SMTP Authenticator. 8th June 2006: 1.2.0 Ermmm.. Oops, the 1.1.3 release was actually 7th June 2006. Moving on Swiftly (no pun intended).... Some speed/memory improvements by removing some preg_ calls that were used several times. Added setPriority() and requestReadReceipt() methods. Added a check to make sure close() isn't executed if Swift is not connected. Improved error reporting a little further. Bundled a verbose errors plugin (Swift_Errors_Plugin). 22nd June 2006: 1.2.3 Corrected a bug with TLS on Gmail servers. Thanks to Jonathon Foote and Andres Usera for spotting the issue and offering a fix. The problem was that Gmail, operating with TLS enabled does not respond to the QUIT command so fgets() was giving TLS protocol errors. A simple @ supression combined with boolean false return check corrected this. 24th June 2006: 1.3.0 Corrected a bug in the makeSafe() method. Optimized makeSafe() by calling LFtoCRLF() before processing. Added 8bit and binary encoding types. Default to 8bit transfer encoding with UTF-8. Added VERSION constant. Added ability to override plugin names at load-time. Restricted size of "transactions" array to 100 by default, settable using setMaxLogSize(). Massively optimized buildMail() (Half the memory!) 16th July 2006: 1.3.2 Major Bug Fix in Swift_PLAIN_Authenticator.php There was a reference to $this->responseCode which should have been $this->baseObject->responseCode. Patched in code contributed by "Jakob Truelsen - antialize" from sourceforge which improves POP Before SMTP Authentication. Original Comment here: http://sourceforge.net/tracker/index.php?func=detail&aid=1517632&group_id=170045&atid=852776 16th July 2006: 1.3.3 Oops, forgot that the mime warning wasn't appearing at all in messages. Fixed. 30th July 2006: 2.0.0 Several changes... PEAR Naming used. Be sure to read ./compat/README PHP_VERSION check removed from PHP5 since the "interface" T_STRING error in PHP4 is unavoidable as it is a parse error. Recoded command() and send() NOT to fail at rejected recipients. Added getters for To, Cc, Bcc, Reply-To. Added ability to force command() to stop processing for N commands. Added a redundant connection handler and a connection rotator. Added a templating plugin. UTF-8 seems to be working, although not fully tested. Sendmail path and SMTP details have an AUTO-DETECT option. 3rd August 2006: 2.1.0 More changes... UTF-8 *really* does work now. I've had it tested by a number of developers. Auto-detection for UTF-8 so developers needn't specify 8BITMIME check added to see if QP encoding is required by the SMTP server QP encoding now used in headers if needed Fixed a minor bug with the "-1" response code not being flushed after a failed send(). 4th August 2006: 2.1.1 Fixed some minor bugs with all authentication mechanisms (notices) Made PLAIN authentication send it's command in one string since it's more accepted. 5th August 2006: 2.1.2 Removed "auth" expected code from list since it conflicted with PLAIN authentication. I'll re-think the working of the expected code stuff for next version. 7th August 2006: 2.1.3 Spelling in PHP4 version. 1 occurrence of $this->userChatset to $this->userCharset 8th August 2006: 2.1.4 Changed the encoding used in headers to breaks over several lines when needed 8th August 2006: 2.1.5 Oops - Parse error fixed. "function function ..." 8th August 2006: 2.1.6 The last in the series of rapid releases. Worked further on the headers to solve an issue which was changing the display of sender/to addresses in Outlook. Changed mime boundary to use uniqid() -- More efficient Added _=_ to start of mime boundary -- Less likely to colllide. 13th August 2006: 2.1.7 Security bug fixed thanks to clamcrusher (sitepoint) for spotting that. Bug related to header injection possibilities by enclosing newlines in the < ... > part of an email address declaration. Also added getters for transactions and errors. 13th August: 2.1.8 Added "D" modifier to is7bitPrintable() method since $ matches newlines otherwise. Thanks again to clamcrusher - sourceforge member. 14th August: 2.1.9 Small change in safeEncodeHeader(). PHP 5.0.4 bug with chunk_split() not adding a trailing CRLF was causing an issue with headers disappearing. Added sanity check. 14th August: 2.1.10 Small change in 2.1.9 should have been looking for '' not CRLF. 16th August: 2.1.11 Changed array_pop() in safeEncodeHeader() to use count() to get the last array element -- hadn't realised the array is acted upon by-reference in array_pop(). 18th August 2006: 2.1.12 Added heaps of Units and Smoke Tests Added a couple of getters for plugins/parts/attachment counts 28th August 2006: 2.1.13 Added a native mail() connection for those who need it. Added a PHPMailer compat stub. (See compat folder) 9th September 2006: 2.1.15 Slightly adjusted how MIME parts are nested. This might stop some confusion with certain services. Also forced 8bit encoding on the overall structure of a multipart message. 9th September 2006: 2.1.16 More tweaking of message structure with MIME parts/attachments. 18th October 2006: 2.1.17 Fixed bug with detectUTF8() [array given when string expected..] Added setHeaderEncoding() method