Merge branch 'MDL-61839-master' of git://github.com/mihailges/moodle
[moodle.git] / lib / phpmailer / changelog.md
blobc484341b230ef772ccdb38ae5c36fe3e95e437bb
1 # PHPMailer Change Log
3 ## Version 6.0.1 (September 14th 2017)
4 * Use shorter Message-ID headers (with more entropy) to avoid iCloud blackhole bug
5 * Switch to Symfony code style (though it's not well defined)
6 * CI builds now apply syntax & code style checks, so make your PRs tidy!
7 * CI code coverage only applied on latest version of PHP to speed up builds (thanks to @Slamdunk for these CI changes)
8 * Remove `composer.lock` - it's important that libraries break early; keeping it is for apps
9 * Rename test scripts to PSR-4 spec
10 * Make content-id values settable on attachments, not just embedded items
11 * Add SMTP transaction IDs to callbacks & allow for future expansion
12 * Expand test coverage
14 ## Version 6.0 (August 28th 2017)
15 This is a major update that breaks backwards compatibility.
17 * **Requires PHP 5.5 or later**
18 * **Uses the `PHPMailer\PHPMailer` namespace**
19 * File structure simplified and PSR-4 compatible, classes live in the `src/` folder
20 * The custom autoloader has been removed: [**use composer**](https://getcomposer.org)!
21 * Classes & Exceptions renamed to make use of the namespace
22 * Most statically called functions now use the `static` keyword instead of `self`, so it's possible to override static internal functions in subclasses, for example `validateAddress()`
23 * Complete RFC standardisation on CRLF (`\r\n`) line breaks for SMTP by default:
24   * `PHPMailer:$LE` defaults to CRLF
25   * All uses of `PHPMailer::$LE` property converted to use `static::$LE` constant for consistency and ease of overriding
26   * Similar changes to line break handling in SMTP and POP3 classes.
27   * Line break format for `mail()` transport is set automatically.
28   * Warnings emitted for buggy `mail()` in PHP versions 7.0.0 - 7.0.16 and 7.1.0 - 7.1.2; either upgrade or switch to SMTP.
29 * Extensive reworking of XOAUTH2, adding support for Google, Yahoo and Microsoft providers, thanks to @sherryl4george
30 * Major cleanup of docs and examples
31 * All elements previously marked as deprecated have been removed:
32   * `PHPMailer->Version` (replaced with `VERSION` constant)
33   * `PHPMailer->ReturnPath`
34   * `PHPMailer->PluginDir`
35   * `PHPMailer->encodeQPphp()`
36   * `SMTP->CRLF` (replaced with `LE` constant)
37   * `SMTP->Version` (replaced with `VERSION` constant)
38   * `SMTP->SMTP_PORT` (replaced with `DEFAULT_PORT` constant)
39   * `POP3->CRLF` (replaced with `LE` constant)
40   * `POP3->Version` (replaced with `VERSION` constant)
41   * `POP3->POP3_PORT` (replaced with `DEFAULT_PORT` constant)
42   * `POP3->POP3_TIMEOUT` (replaced with `DEFAULT_TIMEOUT` constant)
43 * NTLM authentication has been removed - it never worked anyway!
44   * `PHPMailer->Workstation`
45   * `PHPMailer->Realm`
46 * `SingleTo` functionality is deprecated; this belongs at a higher level - PHPMailer is not a mailing list system.
47 * `SMTP::authenticate` method signature changed
48 * `parseAddresses()` is now static
49 * `validateAddress()` is now called statically from `parseAddresses()`
50 * `idnSupported()` is now static and is called statically from `punyencodeAddress()`
51 * `PHPMailer->SingleToArray` is now protected
52 * `fixEOL()` method removed - it duplicates `PHPMailer::normalizeBreaks()`, so use that instead
53 * Don't try to use an auth mechanism if it's not supported by the server
54 * Reorder automatic AUTH mechanism selector to try most secure method first
55 * `Extras` classes have been removed - use alternative packages from [packagist.org](https://packagist.org) instead
56 * Better handling of automatic transfer encoding switch in the presence of long lines
57 * Simplification of address validation - now uses PHP's `FILTER_VALIDATE_EMAIL` pattern by default, retains advanced options
58 * `Debugoutput` can accept a PSR-3 logger instance
59 * To reduce code footprint, the examples folder is no longer included in composer deployments or github zip files
60 * Trap low-level errors in SMTP, reports via debug output
61 * More reliable folding of message headers
62 * Inject your own SMTP implementation via `setSMTPInstance()` instead of having to subclass and override `getSMTPInstance()`.
63 * Make obtaining SMTP transaction ID more reliable
64 * Better handling of unreliable PHP timeouts
65 * Made `SMTPDebug = 4` slightly less noisy
67 ## Version 5.2.25 (August 28th 2017)
68 * Make obtaining SMTP transaction ID more reliable
69 * Add Bosnian translation
70 * This is the last official release in the legacy PHPMailer 5.2 series; there may be future security patches (which will be found in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable)), but no further non-security PRs or issues will be accepted. Migrate to PHPMailer 6.0.
72 ## Version 5.2.24 (July 26th 2017)
73 * **SECURITY** Fix XSS vulnerability in one of the code examples, [CVE-2017-11503](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-11503). The `code_generator.phps` example did not filter user input prior to output. This file is distributed with a `.phps` extension, so it it not normally executable unless it is explicitly renamed, so it is safe by default. There was also an undisclosed potential XSS vulnerability in the default exception handler (unused by default). Patches for both issues kindly provided by Patrick Monnerat of the Fedora Project.
74 * Handle bare codes (an RFC contravention) in SMTP server responses
75 * Make message timestamps more dynamic - calculate the date separately for each message
76 * More thorough checks for reading attachments.
77 * Throw an exception when trying to send a message with an empty body caused by an internal error.
78 * Replaced all use of MD5 and SHA1 hash functions with SHA256.
79 * Now checks for invalid host strings when sending via SMTP.
80 * Include timestamps in HTML-format debug output
81 * Improve Turkish, Norwegian, Serbian, Brazilian Portuguese & simplified Chinese translations
82 * Correction of Serbian ISO language code from `sr` to `rs`
83 * Fix matching of multiple entries in `Host` to match IPv6 literals without breaking port selection (see #1094, caused by a3b4f6b)
84 * Better capture and reporting of SMTP connection errors
86 ## Version 5.2.23 (March 15th 2017)
87 * Improve trapping of TLS errors during connection so that they don't cause warnings, and are reported better in debug output
88 * Amend test suite so it uses PHPUnit version 4.8, compatible with older versions of PHP, instead of the version supplied by Travis-CI
89 * This forces pinning of some dev packages to older releases, but should make travis builds more reliable
90 * Test suite now runs on HHVM, and thus so should PHPMailer in general
91 * Improve Czech translations
92 * Add links to CVE-2017-5223 resources
94 ## Version 5.2.22 (January 5th 2017)
95 * **SECURITY** Fix [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223), local file disclosure vulnerability if content passed to `msgHTML()` is sourced from unfiltered user input. Reported by Yongxiang Li of Asiasecurity. The fix for this means that calls to `msgHTML()` without a `$basedir` will not import images with relative URLs, and relative URLs containing `..` will be ignored.
96 * Add simple contact form example
97 * Emoji in test content
99 ## Version 5.2.21 (December 28th 2016)
100 * Fix missed number update in version file - no functional changes
102 ## Version 5.2.20 (December 28th 2016)
103 * **SECURITY** Critical security update for CVE-2016-10045 please update now! Thanks to [Dawid Golunski](https://legalhackers.com) and Paul Buonopane (@Zenexer).
104 * Note that this change will break VERP addresses in Sender if you're using mail() - workaround: use SMTP to localhost instead.
106 ## Version 5.2.19 (December 26th 2016)
107 * Minor cleanup
109 ## Version 5.2.18 (December 24th 2016)
110 * **SECURITY** Critical security update for CVE-2016-10033 please update now! Thanks to [Dawid Golunski](https://legalhackers.com).
111 * Add ability to extract the SMTP transaction ID from some common SMTP success messages
112 * Minor documentation tweaks
114 ## Version 5.2.17 (December 9th 2016)
115 * This is officially the last feature release of 5.2. Security fixes only from now on; use PHPMailer 6.0!
116 * Allow DKIM private key to be provided as a string
117 * Provide mechanism to allow overriding of boundary and message ID creation
118 * Improve Brazilian Portuguese, Spanish, Swedish, Romanian, and German translations
119 * PHP 7.1 support for Travis-CI
120 * Fix some language codes
121 * Add security notices
122 * Improve DKIM compatibility in older PHP versions
123 * Improve trapping and capture of SMTP connection errors
124 * Improve passthrough of error levels for debug output
125 * PHPDoc cleanup
127 ## Version 5.2.16 (June 6th 2016)
128 * Added DKIM example
129 * Fixed empty additional_parameters problem
130 * Fixed wrong version number in VERSION file!
131 * Improve line-length tests
132 * Use instance settings for SMTP::connect by default
133 * Use more secure auth mechanisms first
135 ## Version 5.2.15 (May 10th 2016)
136 * Added ability to inject custom address validators, and set the default validator
137 * Fix TLS 1.2 compatibility
138 * Remove some excess line breaks in MIME structure
139 * Updated Polish, Russian, Brazilian Portuguese, Georgian translations
140 * More DRY!
141 * Improve error messages
142 * Update dependencies
143 * Add example showing how to handle multiple form file uploads
144 * Improve SMTP example
145 * Improve Windows compatibility
146 * Use consistent names for temp files
147 * Fix gmail XOAUTH2 scope, thanks to @sherryl4george
148 * Fix extra line break in getSentMIMEMessage()
149 * Improve DKIM signing to use SHA-2
151 ## Version 5.2.14 (Nov 1st 2015)
152 * Allow addresses with IDN (Internationalized Domain Name) in PHP 5.3+, thanks to @fbonzon
153 * Allow access to POP3 errors
154 * Make all POP3 private properties and methods protected
155 * **SECURITY** Fix vulnerability that allowed email addresses with line breaks (valid in RFC5322) to pass to SMTP, permitting message injection at the SMTP level. Mitigated in both the address validator and in the lower-level SMTP class. Thanks to Takeshi Terada.
156 * Updated Brazilian Portuguese translations (Thanks to @phelipealves)
158 ## Version 5.2.13 (Sep 14th 2015)
159 * Rename internal oauth class to avoid name clashes
160 * Improve Estonian translations
162 ## Version 5.2.12 (Sep 1st 2015)
163 * Fix incorrect composer package dependencies
164 * Skip existing embedded image `cid`s in `msgHTML`
166 ## Version 5.2.11 (Aug 31st 2015)
167 * Don't switch to quoted-printable for long lines if already using base64
168 * Fixed Travis-CI config when run on PHP 7
169 * Added Google XOAUTH2 authentication mechanism, thanks to @sherryl4george
170 * Add address parser for RFC822-format addresses
171 * Update MS Office MIME types
172 * Don't convert line breaks when using quoted-printable encoding
173 * Handle MS Exchange returning an invalid empty AUTH-type list in EHLO
174 * Don't set name or filename properties on MIME parts that don't have one
176 ## Version 5.2.10 (May 4th 2015)
177 * Add custom header getter
178 * Use `application/javascript` for .js attachments
179 * Improve RFC2821 compliance for timelimits, especially for end-of-data
180 * Add Azerbaijani translations (Thanks to @mirjalal)
181 * Minor code cleanup for robustness
182 * Add Indonesian translations (Thanks to @ceceprawiro)
183 * Avoid `error_log` Debugoutput naming clash
184 * Add ability to parse server capabilities in response to EHLO (useful for SendGrid etc)
185 * Amended default values for WordWrap to match RFC
186 * Remove html2text converter class (has incompatible license)
187 * Provide new mechanism for injecting html to text converters
188 * Improve pointers to docs and support in README
189 * Add example file upload script
190 * Refactor and major cleanup of EasyPeasyICS, now a lot more usable
191 * Make set() method simpler and more reliable
192 * Add Malay translation (Thanks to @nawawi)
193 * Add Bulgarian translation (Thanks to @mialy)
194 * Add Armenian translation (Thanks to Hrayr Grigoryan)
195 * Add Slovenian translation (Thanks to Klemen TuĊĦar)
196 * More efficient word wrapping
197 * Add support for S/MIME signing with additional CA certificate (thanks to @IgitBuh)
198 * Fix incorrect MIME structure when using S/MIME signing and isMail() (#372)
199 * Improved checks and error messages for missing extensions
200 * Store and report SMTP errors more consistently
201 * Add MIME multipart preamble for better Outlook compatibility
202 * Enable TLS encryption automatically if the server offers it
203 * Provide detailed errors when individual recipients fail
204 * Report more errors when connecting
205 * Add extras classes to composer classmap
206 * Expose stream_context_create options via new SMTPOptions property
207 * Automatic encoding switch to quoted-printable if message lines are too long
208 * Add Korean translation (Thanks to @ChalkPE)
209 * Provide a pointer to troubleshooting docs on SMTP connection failure
211 ## Version 5.2.9 (Sept 25th 2014)
212 * **Important: The autoloader is no longer autoloaded by the PHPMailer class**
213 * Update html2text from https://github.com/mtibben/html2text
214 * Improve Arabic translations (Thanks to @tarekdj)
215 * Consistent handling of connection variables in SMTP and POP3
216 * PHPDoc cleanup
217 * Update composer to use PHPUnit 4.1
218 * Pass consistent params to callbacks
219 * More consistent handling of error states and debug output
220 * Use property defaults, remove constructors
221 * Remove unreachable code
222 * Use older regex validation pattern for troublesome PCRE library versions
223 * Improve PCRE detection in older PHP versions
224 * Handle debug output consistently, and always in UTF-8
225 * Allow user-defined debug output method via a callable
226 * msgHTML now converts data URIs to embedded images
227 * SMTP::getLastReply() will now always be populated
228 * Improved example code in README
229 * Ensure long filenames in Content-Disposition are encoded correctly
230 * Simplify SMTP debug output mechanism, clarify levels with constants
231 * Add SMTP connection check example
232 * Simplify examples, don't use mysql* functions
234 ## Version 5.2.8 (May 14th 2014)
235 * Increase timeout to match RFC2821 section 4.5.3.2 and thus not fail greetdelays, fixes #104
236 * Add timestamps to default debug output
237 * Add connection events and new level 3 to debug output options
238 * Chinese language update (Thanks to @binaryoung)
239 * Allow custom Mailer types (Thanks to @michield)
240 * Cope with spaces around SMTP host specs
241 * Fix processing of multiple hosts in connect string
242 * Added Galician translation (Thanks to @donatorouco)
243 * Autoloader now prepends
244 * Docs updates
245 * Add Latvian translation (Thanks to @eddsstudio)
246 * Add Belarusian translation (Thanks to @amaksymiuk)
247 * Make autoloader work better on older PHP versions
248 * Avoid double-encoding if mbstring is overloading mail()
249 * Add Portuguese translation (Thanks to @Jonadabe)
250 * Make quoted-printable encoder respect line ending setting
251 * Improve Chinese translation (Thanks to @PeterDaveHello)
252 * Add Georgian translation (Thanks to @akalongman)
253 * Add Greek translation (Thanks to @lenasterg)
254 * Fix serverHostname on PHP < 5.3
255 * Improve performance of SMTP class
256 * Implement automatic 7bit downgrade
257 * Add Vietnamese translation (Thanks to @vinades)
258 * Improve example images, switch to PNG
259 * Add Croatian translation (Thanks to @hrvoj3e)
260 * Remove setting the Return-Path and deprecate the Return-path property - it's just wrong!
261 * Fix language file loading if CWD has changed (@stephandesouza)
262 * Add HTML5 email validation pattern
263 * Improve Turkish translations (Thanks to @yasinaydin)
264 * Improve Romanian translations (Thanks to @aflorea)
265 * Check php.ini for path to sendmail/qmail before using default
266 * Improve Farsi translation (Thanks to @MHM5000)
267 * Don't use quoted-printable encoding for multipart types
268 * Add Serbian translation (Thanks to ajevremovic at gmail.com)
269 * Remove useless PHP5 check
270 * Use SVG for build status badges
271 * Store MessageDate on creation
272 * Better default behaviour for validateAddress
274 ## Version 5.2.7 (September 12th 2013)
275 * Add Ukrainian translation from @Krezalis
276 * Support for do_verp
277 * Fix bug in CRAM-MD5 AUTH
278 * Propagate Debugoutput option to SMTP class (@Reblutus)
279 * Determine MIME type of attachments automatically
280 * Add cross-platform, multibyte-safe pathinfo replacement (with tests) and use it
281 * Add a new 'html' Debugoutput type
282 * Clean up SMTP debug output, remove embedded HTML
283 * Some small changes in header formatting to improve IETF msglint test results
284 * Update test_script to use some recently changed features, rename to code_generator
285 * Generated code actually works!
286 * Update SyntaxHighlighter
287 * Major overhaul and cleanup of example code
288 * New PHPMailer graphic
289 * msgHTML now uses RFC2392-compliant content ids
290 * Add line break normalization function and use it in msgHTML
291 * Don't set unnecessary reply-to addresses
292 * Make fakesendmail.sh a bit cleaner and safer
293 * Set a content-transfer-encoding on multiparts (fixes msglint error)
294 * Fix cid generation in msgHTML (Thanks to @digitalthought)
295 * Fix handling of multiple SMTP servers (Thanks to @NanoCaiordo)
296 * SMTP->connect() now supports stream context options (Thanks to @stanislavdavid)
297 * Add support for iCal event alternatives (Thanks to @reblutus)
298 * Update to Polish language file (Thanks to Krzysztof Kowalewski)
299 * Update to Norwegian language file (Thanks to @datagutten)
300 * Update to Hungarian language file (Thanks to @dominicus-75)
301 * Add Persian/Farsi translation from @jaii
302 * Make SMTPDebug property type match type in SMTP class
303 * Add unit tests for DKIM
304 * Major refactor of SMTP class
305 * Reformat to PSR-2 coding standard
306 * Introduce autoloader
307 * Allow overriding of SMTP class
308 * Overhaul of PHPDocs
309 * Fix broken Q-encoding
310 * Czech language update (Thanks to @nemelu)
311 * Removal of excess blank lines in messages
312 * Added fake POP server and unit tests for POP-before-SMTP
314 ## Version 5.2.6 (April 11th 2013)
315 * Reflect move to PHPMailer GitHub organisation at https://github.com/PHPMailer/PHPMailer
316 * Fix unbumped version numbers
317 * Update packagist.org with new location
318 * Clean up Changelog
320 ## Version 5.2.5 (April 6th 2013)
321 * First official release after move from Google Code
322 * Fixes for qmail when sending via mail()
323 * Merge in changes from Google code 5.2.4 release
324 * Minor coding standards cleanup in SMTP class
325 * Improved unit tests, now tests S/MIME signing
326 * Travis-CI support on GitHub, runs tests with fake SMTP server
328 ## Version 5.2.4 (February 19, 2013)
329 * Fix tag and version bug.
330 * un-deprecate isSMTP(), isMail(), IsSendmail() and isQmail().
331 * Numerous translation updates
333 ## Version 5.2.3 (February 8, 2013)
334 * Fix issue with older PCREs and ValidateAddress() (Bugz: 124)
335 * Add CRAM-MD5 authentication, thanks to Elijah madden, https://github.com/okonomiyaki3000
336 * Replacement of obsolete Quoted-Printable encoder with a much better implementation
337 * Composer package definition
338 * New language added: Hebrew
340 ## Version 5.2.2 (December 3, 2012)
341 * Some fixes and syncs from https://github.com/Synchro/PHPMailer
342 * Add Slovak translation, thanks to Michal Tinka
344 ## Version 5.2.2-rc2 (November 6, 2012)
345 * Fix SMTP server rotation (Bugz: 118)
346 * Allow override of autogen'ed 'Date' header (for Drupal's
347   og_mailinglist module)
348 * No whitespace after '-f' option (Bugz: 116)
349 * Work around potential warning (Bugz: 114)
351 ## Version 5.2.2-rc1 (September 28, 2012)
352 * Header encoding works with long lines (Bugz: 93)
353 * Turkish language update (Bugz: 94)
354 * undefined $pattern in EncodeQ bug squashed (Bugz: 98)
355 * use of mail() in safe_mode now works (Bugz: 96)
356 * ValidateAddress() now 'public static' so people can override the
357   default and use their own validation scheme.
358 * ValidateAddress() no longer uses broken FILTER_VALIDATE_EMAIL
359 * Added in AUTH PLAIN SMTP authentication
361 ## Version 5.2.2-beta2 (August 17, 2012)
362 * Fixed Postfix VERP support (Bugz: 92)
363 * Allow action_function callbacks to pass/use
364   the From address (passed as final param)
365 * Prevent inf look for get_lines() (Bugz: 77)
366 * New public var ($UseSendmailOptions). Only pass sendmail()
367   options iff we really are using sendmail or something sendmail
368   compatible. (Bugz: 75)
369 * default setting for LE returned to "\n" due to popular demand.
371 ## Version 5.2.2-beta1 (July 13, 2012)
372 * Expose PreSend() and PostSend() as public methods to allow
373   for more control if serializing message sending.
374 * GetSentMIMEMessage() only constructs the message copy when
375  needed. Save memory.
376 * Only pass params to mail() if the underlying MTA is
377   "sendmail" (as defined as "having the string sendmail
378   in its pathname") [#69]
379 * Attachments now work with Amazon SES and others [Bugz#70]
380 * Debug output now sent to stdout (via echo) or error_log [Bugz#5]
381 * New var: Debugoutput (for above) [Bugz#5]
382 * SMTP reads now Timeout aware (new var: Timeout=15) [Bugz#71]
383 * SMTP reads now can have a Timelimit associated with them
384   (new var: Timelimit=30)[Bugz#71]
385 * Fix quoting issue associated with charsets
386 * default setting for LE is now RFC compliant: "\r\n"
387 * Return-Path can now be user defined (new var: ReturnPath)
388   (the default is "" which implies no change from previous
389   behavior, which was to use either From or Sender) [Bugz#46]
390 * X-Mailer header can now be disabled (by setting to a
391   whitespace string, eg "  ") [Bugz#66]
392 * Bugz closed: #68, #60, #42, #43, #59, #55, #66, #48, #49,
393                #52, #31, #41, #5. #70, #69
395 ## Version 5.2.1 (January 16, 2012)
396 * Closed several bugs #5
397 * Performance improvements
398 * MsgHTML() now returns the message as required.
399 * New method: GetSentMIMEMessage() (returns full copy of sent message)
401 ## Version 5.2 (July 19, 2011)
402 * protected MIME body and header
403 * better DKIM DNS Resource Record support
404 * better aly handling
405 * htmlfilter class added to extras
406 * moved to Apache Extras
408 ## Version 5.1 (October 20, 2009)
409 * fixed filename issue with AddStringAttachment (thanks to Tony)
410 * fixed "SingleTo" property, now works with Senmail, Qmail, and SMTP in
411   addition to PHP mail()
412 * added DKIM digital signing functionality, new properties:
413   - DKIM_domain (sets the domain name)
414   - DKIM_private (holds DKIM private key)
415   - DKIM_passphrase (holds your DKIM passphrase)
416   - DKIM_selector (holds the DKIM "selector")
417   - DKIM_identity (holds the identifying email address)
418 * added callback function support
419   - callback function parameters include:
420     result, to, cc, bcc, subject and body
421   - see the test/test_callback.php file for usage.
422 * added "auto" identity functionality
423   - can automatically add:
424     - Return-path (if Sender not set)
425     - Reply-To (if ReplyTo not set)
426   - can be disabled:
427     - $mail->SetFrom('yourname@yourdomain.com','First Last',false);
428     - or by adding the $mail->Sender and/or $mail->ReplyTo properties
430 Note: "auto" identity added to help with emails ending up in spam or junk boxes because of missing headers
432 ## Version 5.0.2 (May 24, 2009)
433 * Fix for missing attachments when inline graphics are present
434 * Fix for missing Cc in header when using SMTP (mail was sent,
435   but not displayed in header -- Cc receiver only saw email To:
436   line and no Cc line, but did get the email (To receiver
437   saw same)
439 ## Version 5.0.1 (April 05, 2009)
440 * Temporary fix for missing attachments
442 ## Version 5.0.0 (April 02, 2009)
443 With the release of this version, we are initiating a new version numbering
444 system to differentiate from the PHP4 version of PHPMailer.
445 Most notable in this release is fully object oriented code.
447 ### class.smtp.php:
448 * Refactored class.smtp.php to support new exception handling
449 * code size reduced from 29.2 Kb to 25.6 Kb
450 * Removed unnecessary functions from class.smtp.php:
451   - public function Expand($name) {
452   - public function Help($keyword="") {
453   - public function Noop() {
454   - public function Send($from) {
455   - public function SendOrMail($from) {
456   - public function Verify($name) {
458 ###  class.phpmailer.php:
459 * Refactored class.phpmailer.php with new exception handling
460 * Changed processing functionality of Sendmail and Qmail so they cannot be
461   inadvertently used
462 * removed getFile() function, just became a simple wrapper for
463   file_get_contents()
464 * added check for PHP version (will gracefully exit if not at least PHP 5.0)
465 * enhanced code to check if an attachment source is the same as an embedded or
466   inline graphic source to eliminate duplicate attachments
468 ### New /test_script
469 We have written a test script you can use to test the script as part of your
470 installation. Once you press submit, the test script will send a multi-mime
471 email with either the message you type in or an HTML email with an inline
472 graphic. Two attachments are included in the email (one of the attachments
473 is also the inline graphic so you can see that only one copy of the graphic
474 is sent in the email). The test script will also display the functional
475 script that you can copy/paste to your editor to duplicate the functionality.
477 ### New examples
478 All new examples in both basic and advanced modes. Advanced examples show
479    Exception handling.
481 ### PHPDocumentator (phpdocs) documentation for PHPMailer version 5.0.0
482 All new documentation
484 ## Version 2.3 (November 06, 2008)
485 * added Arabic language (many thanks to Bahjat Al Mostafa)
486 * removed English language from language files and made it a default within
487   class.phpmailer.php - if no language is found, it will default to use
488   the english language translation
489 * fixed public/private declarations
490 * corrected line 1728, $basedir to $directory
491 * added $sign_cert_file to avoid improper duplicate use of $sign_key_file
492 * corrected $this->Hello on line 612 to $this->Helo
493 * changed default of $LE to "\r\n" to comply with RFC 2822. Can be set by the user
494   if default is not acceptable
495 * removed trim() from return results in EncodeQP
496 * /test and three files it contained are removed from version 2.3
497 * fixed phpunit.php for compliance with PHP5
498 * changed $this->AltBody = $textMsg; to $this->AltBody = html_entity_decode($textMsg);
499 * We have removed the /phpdoc from the downloads. All documentation is now on
500   the http://phpmailer.codeworxtech.com website.
502 ## Version 2.2.1 () July 19 2008
503 * fixed line 1092 in class.smtp.php (my apologies, error on my part)
505 ## Version 2.2 () July 15 2008
506 * Fixed redirect issue (display of UTF-8 in thank you redirect)
507 * fixed error in getResponse function declaration (class.pop3.php)
508 * PHPMailer now PHP6 compliant
509 * fixed line 1092 in class.smtp.php (endless loop from missing = sign)
511 ## Version 2.1 (Wed, June 04 2008)
512 NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS. IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE APPRECIATED.
514 * added S/MIME functionality (ability to digitally sign emails)
515   BIG THANKS TO "sergiocambra" for posting this patch back in November 2007.
516   The "Signed Emails" functionality adds the Sign method to pass the private key
517   filename and the password to read it, and then email will be sent with
518   content-type multipart/signed and with the digital signature attached.
519 * fully compatible with E_STRICT error level
520   - Please note:
521     In about half the test environments this development version was subjected
522     to, an error was thrown for the date() functions used (line 1565 and 1569).
523     This is NOT a PHPMailer error, it is the result of an incorrectly configured
524     PHP5 installation. The fix is to modify your 'php.ini' file and include the
525     date.timezone = Etc/UTC (or your own zone)
526     directive, to your own server timezone
527   - If you do get this error, and are unable to access your php.ini file:
528     In your PHP script, add
529     `date_default_timezone_set('Etc/UTC');`
530   - do not try to use
531     `$myVar = date_default_timezone_get();`
532     as a test, it will throw an error.
533 * added ability to define path (mainly for embedded images)
534   function `MsgHTML($message,$basedir='')` ... where:
535   `$basedir` is the fully qualified path
536 * fixed `MsgHTML()` function:
537   - Embedded Images where images are specified by `<protocol>://` will not be altered or embedded
538 * fixed the return value of SMTP exit code ( pclose )
539 * addressed issue of multibyte characters in subject line and truncating
540 * added ability to have user specified Message ID
541   (default is still that PHPMailer create a unique Message ID)
542 * corrected unidentified message type to 'application/octet-stream'
543 * fixed chunk_split() multibyte issue (thanks to Colin Brown, et al).
544 * added check for added attachments
545 * enhanced conversion of HTML to text in MsgHTML (thanks to "brunny")
547 ## Version 2.1.0beta2 (Sun, Dec 02 2007)
548 * implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
549 * finished all testing, all known bugs corrected, enhancements tested
551 Note: will NOT work with PHP4.
553 Please note, this is BETA software **DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS; INTENDED STRICTLY FOR TESTING**
555 ## Version 2.1.0beta1
556 Please note, this is BETA software
557 ** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS
558  INTENDED STRICTLY FOR TESTING
560 ## Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
561 * implements new property to control VERP in class.smtp.php
562   example (requires instantiating class.smtp.php):
563   $mail->do_verp = true;
564 * POP-before-SMTP functionality included, thanks to Richard Davey
565   (see class.pop3.php & pop3_before_smtp_test.php for examples)
566 * included example showing how to use PHPMailer with GMAIL
567 * fixed the missing Cc in SendMail() and Mail()
569 ## Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
570 * dramatically simplified using inline graphics ... it's fully automated and requires no user input
571 * added automatic document type detection for attachments and pictures
572 * added MsgHTML() function to replace Body tag for HTML emails
573 * fixed the SendMail security issues (input validation vulnerability)
574 * enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
575 * removed the need to use the AltBody method (set from the HTML, or default text used)
576 * set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
577 * removed the need to set the IsHTML property (set automatically)
578 * added Estonian language file by Indrek P&auml;ri
579 * added header injection patch
580 * added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
581 * fixed warning message in SMTP get_lines method
582 * added TLS/SSL SMTP support.
583 * PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
584 * Works with PHP installed as a module or as CGI-PHP
585 NOTE: will NOT work with PHP5 in E_STRICT error mode
587 ## Version 1.73 (Sun, Jun 10 2005)
588 * Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
589 * Now has a total of 20 translations
590 * Fixed alt attachments bug: http://tinyurl.com/98u9k
592 ## Version 1.72 (Wed, May 25 2004)
593 * Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
594 * Received: Removed this method because spam filter programs like
595   SpamAssassin reject this header.
596 * Fixed error count bug.
597 * SetLanguage default is now "language/".
598 * Fixed magic_quotes_runtime bug.
600 ## Version 1.71 (Tue, Jul 28 2003)
601 * Made several speed enhancements
602 * Added German and Italian translation files
603 * Fixed HELO/AUTH bugs on keep-alive connects
604 * Now provides an error message if language file does not load
605 * Fixed attachment EOL bug
606 * Updated some unclear documentation
607 * Added additional tests and improved others
609 ## Version 1.70 (Mon, Jun 20 2003)
610 * Added SMTP keep-alive support
611 * Added IsError method for error detection
612 * Added error message translation support (SetLanguage)
613 * Refactored many methods to increase library performance
614 * Hello now sends the newer EHLO message before HELO as per RFC 2821
615 * Removed the boundary class and replaced it with GetBoundary
616 * Removed queue support methods
617 * New $Hostname variable
618 * New Message-ID header
619 * Received header reformat
620 * Helo variable default changed to $Hostname
621 * Removed extra spaces in Content-Type definition (#667182)
622 * Return-Path should be set to Sender when set
623 * Adds Q or B encoding to headers when necessary
624 * quoted-encoding should now encode NULs \000
625 * Fixed encoding of body/AltBody (#553370)
626 * Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
627 * Multiple bug fixes
629 ## Version 1.65 (Fri, Aug 09 2002)
630 * Fixed non-visible attachment bug (#585097) for Outlook
631 * SMTP connections are now closed after each transaction
632 * Fixed SMTP::Expand return value
633 * Converted SMTP class documentation to phpDocumentor format
635 ## Version 1.62 (Wed, Jun 26 2002)
636 * Fixed multi-attach bug
637 * Set proper word wrapping
638 * Reduced memory use with attachments
639 * Added more debugging
640 * Changed documentation to phpDocumentor format
642 ## Version 1.60 (Sat, Mar 30 2002)
643 * Sendmail pipe and address patch (Christian Holtje)
644 * Added embedded image and read confirmation support (A. Ognio)
645 * Added unit tests
646 * Added SMTP timeout support (*nix only)
647 * Added possibly temporary PluginDir variable for SMTP class
648 * Added LE message line ending variable
649 * Refactored boundary and attachment code
650 * Eliminated SMTP class warnings
651 * Added SendToQueue method for future queuing support
653 ## Version 1.54 (Wed, Dec 19 2001)
654 * Add some queuing support code
655 * Fixed a pesky multi/alt bug
656 * Messages are no longer forced to have "To" addresses
658 ## Version 1.50 (Thu, Nov 08 2001)
659 * Fix extra lines when not using SMTP mailer
660 * Set WordWrap variable to int with a zero default
662 ## Version 1.47 (Tue, Oct 16 2001)
663 * Fixed Received header code format
664 * Fixed AltBody order error
665 * Fixed alternate port warning
667 ## Version 1.45 (Tue, Sep 25 2001)
668 * Added enhanced SMTP debug support
669 * Added support for multiple ports on SMTP
670 * Added Received header for tracing
671 * Fixed AddStringAttachment encoding
672 * Fixed possible header name quote bug
673 * Fixed wordwrap() trim bug
674 * Couple other small bug fixes
676 ## Version 1.41 (Wed, Aug 22 2001)
677 * Fixed AltBody bug w/o attachments
678 * Fixed rfc_date() for certain mail servers
680 ## Version 1.40 (Sun, Aug 12 2001)
681 * Added multipart/alternative support (AltBody)
682 * Documentation update
683 * Fixed bug in Mercury MTA
685 ## Version 1.29 (Fri, Aug 03 2001)
686 * Added AddStringAttachment() method
687 * Added SMTP authentication support
689 ## Version 1.28 (Mon, Jul 30 2001)
690 * Fixed a typo in SMTP class
691 * Fixed header issue with Imail (win32) SMTP server
692 * Made fopen() calls for attachments use "rb" to fix win32 error
694 ## Version 1.25 (Mon, Jul 02 2001)
695 * Added RFC 822 date fix (Patrice)
696 * Added improved error handling by adding a $ErrorInfo variable
697 * Removed MailerDebug variable (obsolete with new error handler)
699 ## Version 1.20 (Mon, Jun 25 2001)
700 * Added quoted-printable encoding (Patrice)
701 * Set Version as public and removed PrintVersion()
702 * Changed phpdoc to only display public variables and methods
704 ## Version 1.19 (Thu, Jun 21 2001)
705 * Fixed MS Mail header bug
706 * Added fix for Bcc problem with mail(). *Does not work on Win32*
707   (See PHP bug report: http://www.php.net/bugs.php?id=11616)
708 * mail() no longer passes a fifth parameter when not needed
710 ## Version 1.15 (Fri, Jun 15 2001)
711 Note: these changes contributed by Patrice Fournier
712 * Changed all remaining \n to \r\n
713 * Bcc: header no longer written to message except
714   when sent directly to sendmail
715 * Added a small message to non-MIME compliant mail reader
716 * Added Sender variable to change the Sender email
717   used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
718 * Changed boundary setting to a place it will be set only once
719 * Removed transfer encoding for whole message when using multipart
720 * Message body now uses Encoding in multipart messages
721 * Can set encoding and type to attachments 7bit, 8bit
722   and binary attachment are sent as is, base64 are encoded
723 * Can set Encoding to base64 to send 8 bits body
724   through 7 bits servers
726 ## Version 1.10 (Tue, Jun 12 2001)
727 * Fixed win32 mail header bug (printed out headers in message body)
729 ## Version 1.09 (Fri, Jun 08 2001)
730 * Changed date header to work with Netscape mail programs
731 * Altered phpdoc documentation
733 ## Version 1.08 (Tue, Jun 05 2001)
734 * Added enhanced error-checking
735 * Added phpdoc documentation to source
737 ## Version 1.06 (Fri, Jun 01 2001)
738 * Added optional name for file attachments
740 ## Version 1.05 (Tue, May 29 2001)
741 * Code cleanup
742 * Eliminated sendmail header warning message
743 * Fixed possible SMTP error
745 ## Version 1.03 (Thu, May 24 2001)
746 * Fixed problem where qmail sends out duplicate messages
748 ## Version 1.02 (Wed, May 23 2001)
749 * Added multiple recipient and attachment Clear* methods
750 * Added Sendmail public variable
751 * Fixed problem with loading SMTP library multiple times
753 ## Version 0.98 (Tue, May 22 2001)
754 * Fixed problem with redundant mail hosts sending out multiple messages
755 * Added additional error handler code
756 * Added AddCustomHeader() function
757 * Added support for Microsoft mail client headers (affects priority)
758 * Fixed small bug with Mailer variable
759 * Added PrintVersion() function
761 ## Version 0.92 (Tue, May 15 2001)
762 * Changed file names to class.phpmailer.php and class.smtp.php to match
763   current PHP class trend.
764 * Fixed problem where body not being printed when a message is attached
765 * Several small bug fixes
767 ## Version 0.90 (Tue, April 17 2001)
768 * Initial public release