From 6b6badad3fdbb554296abdb80a66610de8bc3f6d Mon Sep 17 00:00:00 2001 From: Marcus Bointon Date: Tue, 23 Feb 2021 08:59:11 +0100 Subject: [PATCH] Check for mbstring before trying to use it in parseAddresses --- changelog.md | 3 +++ composer.json | 2 +- src/PHPMailer.php | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 6a107dad..f2f68d8c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,8 @@ # PHPMailer Change Log +## WIP +* Check for mbstring extension before decoding addresss in `parseAddress` + ## Version 6.3.0 (February 19th, 2021) * Handle early connection errors such as 421 during connection and EHLO states * Switch to Github Actions for CI diff --git a/composer.json b/composer.json index 7388bd98..b8aa5cfc 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,7 @@ "yoast/phpunit-polyfills": "^0.2.0" }, "suggest": { - "ext-mbstring": "Needed to send email in multibyte encoding charset", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", "league/oauth2-google": "Needed for Google XOAUTH2 authentication", "psr/log": "For optional PSR-3 debug logging", diff --git a/src/PHPMailer.php b/src/PHPMailer.php index 62553fd4..2103255a 100644 --- a/src/PHPMailer.php +++ b/src/PHPMailer.php @@ -1199,7 +1199,7 @@ class PHPMailer ) ) { //Decode the name part if it's present and encoded - if (property_exists($address, 'personal') && preg_match('/^=\?.*\?=$/', $address->personal)) { + if (extension_loaded('mbstring') && property_exists($address, 'personal') && preg_match('/^=\?.*\?=$/', $address->personal)) { $address->personal = mb_decode_mimeheader($address->personal); }