PHPMailer Versions Save

The classic email sending library for PHP

v6.5.4

2 years ago

This is a maintenance release.

The change in how shell escaping is handled should not create any BC issues. What used to fail accidentally in potentially unsafe shell situations will now fail deliberately! Note to hosting providers: don't disable escapeshellarg and escapeshellcmd; it's not safe!

  • If we can't use escaping functions, refuse to do unsafe things
  • Avoid PHP 8.1 trim issue
  • Add tests for XMailer
  • Fix bug in use of CharSet property
  • Fix bug in file upload example
  • Update dev dependencies

v6.5.3

2 years ago

This is a maintenance release.

  • Wrong commit tagged for the 6.5.2 release!
  • Version file updated

v6.5.2

2 years ago

This is a maintenance release.

  • Enable official support for PHP 8.1
  • Enable experimental support for PHP 8.2
  • Fix for PHP 5.6
  • Fix for incorrect options for punyencoding IDNs

v6.5.1

2 years ago

This is a maintenance release.

  • Provisional support for PHP 8.1
  • Major overhaul of test suite
  • Add codecov.io coverage reporting
  • Prefer implicit TLS on port 465 as default encryption scheme in examples, as per RFC8314
  • Fix potential noisy output from IMAP address parser
  • Stricter checking of custom MessageID validity
  • Replace invalid default From address
  • Support fallback for languages, so a request for pt_xx will fall back to pt rather than the default en.
  • Support multi-line RFC2047-encoded addresses in parseAddresses
  • Improved Japanese translation

Many thanks to @jrfnl for all her work.

v6.5.0

2 years ago

This is a security release.

  • SECURITY Fixes CVE-2021-34551, a complex RCE affecting Windows hosts. See SECURITY.md for details.
  • The fix for this issue changes the way that language files are loaded. While they remain in the same PHP-like format, they are processed as plain text, and any code in them will not be run, including operations such as concatenation using the . operator.
  • Deprecation The current translation file format using PHP arrays is now deprecated; the next major version will introduce a new format.
  • SECURITY Fixes CVE-2021-3603 that may permit untrusted code to be run from an address validator. See SECURITY.md for details.
  • The fix for this issue includes a minor BC break: callables injected into validateAddress, or indirectly through the $validator class property, may no longer be simple strings. If you want to inject your own validator, provide a closure instead of a function name.
  • Haraka message ID strings are now recognised

Thanks to Vikrant Singh Chauhan, listensec.com, and the WordPress security team for reporting and assistance with this release.

v6.4.1

3 years ago

This is a security release.

  • SECURITY Fixes CVE-2020-36326, a regression of CVE-2018-19296 object injection introduced in 6.1.8, see SECURITY.md for details
  • Reject more file paths that look like URLs, matching RFC3986 spec, blocking URLS using schemes such as ssh2
  • Ensure method signature consistency in doCallback calls
  • Ukrainian language update
  • Add composer scripts for checking coding standards and running tests

Thanks to Fariskhi Vidyan for the report and assistance, and Tidelift for support.

v6.4.0

3 years ago

This is a maintenance release. The changes introduced in 6.3.0 for setting an envelope sender automatically when using mail() caused problems, especially in WordPress, so this change has been reverted. It gets a minor version bump as it's a change in behaviour, but only back to what 6.2.0 did. See #2298 for more info.

Other changes:

  • Check for the mbstring extension before decoding addresss in parseAddress, so it won't fail if you don't have it installed
  • Add Serbian Latin translation (sr_latn)
  • Enrol PHPMailer in Tidelift, because supporting open-source is important!

v6.3.0

3 years ago

This is a maintenance release.

  • Handle early connection errors such as 421 during connection and EHLO states
  • Switch to Github Actions for CI
  • Generate debug output for mail(), sendmail, and qmail transports. Enable using the same mechanism as for SMTP: set SMTPDebug > 0
  • Make the mail() and sendmail transports set the envelope sender the same way as SMTP does, i.e. use whatever From is set to, only falling back to the sendmail_from php.ini setting if From is unset. This avoids errors from the mail() function if Sender is not set explicitly and php.ini is not configured. This is a minor functionality change, so bumps the minor version number.
  • Extend parseAddresses to decode encoded names, improve tests

v6.2.0

3 years ago

This is a maintenance release. With this release, PHPMailer gains official PHP 8 compatibility; earlier versions worked in PHP 8 pre-releases, but the test suite did not. The considerable rework this required (which also restored tests running on older PHP versions) was done by @jrfnl – thank you very much!

  • PHP 8.0 compatibility
  • Switch from PHP CS Fixer to PHP CodeSniffer for coding standards
  • Create class constants for the debug levels in the POP3 class
  • Improve French, Slovenian, and Ukrainian translations
  • Improve file upload examples so file extensions are retained
  • Resolve PHP 8 line break issues due to a very old PHP bug being fixed
  • Avoid warnings when using old openssl functions
  • Improve Travis-CI build configuration

v6.1.8

3 years ago

This is a maintenance release.

  • Mark ext-hash as required in composer.json. This has long been required, but now it will cause an error at install time rather than runtime, making it easier to diagnose
  • Make file upload examples safer
  • Update links to SMTP testing servers
  • Avoid errors when set_time_limit is disabled (you need better hosting!)
  • Allow overriding auth settings for local tests; makes it easy to run tests using HELO
  • Recover gracefully from errors during keepalive sessions
  • Add AVIF MIME type mapping
  • Prevent duplicate To headers in BCC-only messages when using mail()
  • Avoid file function problems when attaching files from Windows UNC paths
  • Improve German, Bahasa Indonesian, Filipino translations
  • Add Javascript-based example
  • Increased test coverage