Mail: reset Encoding to 8-bit in wp_mail().
The PHPMailer library may automatically switch its encoding based on various internal factors. This commit fixes a bug where the `$phpmailer` global was unintentionally persisting its `Encoding` property from the first `wp_mail()` call to all subsequent calls. This includes unit tests to verify the fix is accurate, and a change to the mock-mailer helper that worked around this bug just-in-time when running the test suite. Props codebuddy, dilip2615, rishabhwp, sajjad67, sirlouen, stephenharris. Fixes #33972. Built from https://develop.svn.wordpress.org/trunk@61131 git-svn-id: http://core.svn.wordpress.org/trunk@60467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -384,6 +384,15 @@ if ( ! function_exists( 'wp_mail' ) ) :
|
||||
$phpmailer->Body = '';
|
||||
$phpmailer->AltBody = '';
|
||||
|
||||
/*
|
||||
* Reset encoding to 8-bit, as it may have been automatically downgraded
|
||||
* to 7-bit by PHPMailer (based on the body contents) in a previous call
|
||||
* to wp_mail().
|
||||
*
|
||||
* See https://core.trac.wordpress.org/ticket/33972
|
||||
*/
|
||||
$phpmailer->Encoding = PHPMailer\PHPMailer\PHPMailer::ENCODING_8BIT;
|
||||
|
||||
// Set "From" name and email.
|
||||
|
||||
// If we don't have a name from the input headers.
|
||||
|
||||
Reference in New Issue
Block a user