Mail: Reset PHPMailer properties between use.

Props xknown, martinkrcho, tykoted.


git-svn-id: https://develop.svn.wordpress.org/trunk@54529 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jb Audras 2022-10-17 11:40:36 +00:00
parent ebaac57a9a
commit 3765886b49
2 changed files with 19 additions and 0 deletions
src/wp-includes
tests/phpunit/tests

@ -353,6 +353,8 @@ if ( ! function_exists( 'wp_mail' ) ) :
$phpmailer->clearAttachments();
$phpmailer->clearCustomHeaders();
$phpmailer->clearReplyTos();
$phpmailer->Body = '';
$phpmailer->AltBody = '';
// Set "From" name and email.

@ -475,4 +475,21 @@ class Tests_Mail extends WP_UnitTestCase {
$this->assertTrue( $result1 );
$this->assertFalse( $result2 );
}
/**
* Tests that AltBody is reset between each wp_mail call.
*
* @covers :wp_mail
*/
public function test_wp_mail_resets_properties() {
$wp_mail_set_text_message = function ( $phpmailer ) {
$phpmailer->AltBody = 'user1';
};
add_action( 'phpmailer_init', $wp_mail_set_text_message );
wp_mail( 'user1@example.localhost', 'Test 1', '<p>demo</p>', 'Content-Type: text/html' );
remove_action( 'phpmailer_init', $wp_mail_set_text_message );
wp_mail( 'user2@example.localhost', 'Test 2', 'test2' );
$phpmailer = $GLOBALS['phpmailer'];
$this->assertNotSame( 'user1', $phpmailer->AltBody );
}
}