diff --git a/vendor/magento/framework/Mail/AddressConverter.php b/vendor/magento/framework/Mail/AddressConverter.php index 76c770ab2c9..f10cc3d4aef 100644 --- a/vendor/magento/framework/Mail/AddressConverter.php +++ b/vendor/magento/framework/Mail/AddressConverter.php @@ -10,7 +10,7 @@ namespace Magento\Framework\Mail; use Magento\Framework\Mail\Exception\InvalidArgumentException; /** - * Class AddressConverter + * Convert and filter email addresses */ class AddressConverter { @@ -60,10 +60,14 @@ class AddressConverter if (preg_match('/^(.+)@([^@]+)$/', $email, $matches)) { $user = $matches[1]; $hostname = $matches[2]; - $userEncoded = idn_to_ascii($user, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46); + $userEncoded = idn_to_ascii($user, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46, $idnaInfo); if ($userEncoded == $user) { return $email; } + + if ($userEncoded === false && array_key_exists('result', $idnaInfo)) { + $userEncoded = $idnaInfo['result']; + } $email = sprintf('%s@%s', $userEncoded, $hostname); } return $email;