mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Mail: Prevent the last character of names in “From” headers from being trimmed.
When extracting the email and name from a “From” header, the last character of the name is incorrectly trimmed when a space is not included between the name and the opening `<`. Though the space is required for the header to be compliant with RFC5322 (see https://www.rfc-editor.org/rfc/rfc5322#section-3.4), the absence of a space can be ignored here. PHPMailer accepts the name and email as separate parameters and constructs the header correctly later on. Props hakanca, mikehansenme, SergeyBiryukov, kovshenin, mattyrob, drewapicture, desrosj. Fixes #19847. git-svn-id: https://develop.svn.wordpress.org/trunk@53900 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
c5b4cd8921
commit
002ca62974
@ -307,7 +307,7 @@ if ( ! function_exists( 'wp_mail' ) ) :
|
||||
if ( false !== $bracket_pos ) {
|
||||
// Text before the bracketed email is the "From" name.
|
||||
if ( $bracket_pos > 0 ) {
|
||||
$from_name = substr( $content, 0, $bracket_pos - 1 );
|
||||
$from_name = substr( $content, 0, $bracket_pos );
|
||||
$from_name = str_replace( '"', '', $from_name );
|
||||
$from_name = trim( $from_name );
|
||||
}
|
||||
|
||||
@ -193,6 +193,28 @@ class Tests_Mail extends WP_UnitTestCase {
|
||||
$this->assertStringContainsString( $expected, $mailer->get_sent()->header );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 19847
|
||||
*/
|
||||
public function test_wp_mail_with_from_header_missing_space() {
|
||||
$to = 'address@tld.com';
|
||||
$subject = 'Testing';
|
||||
$message = 'Test Message';
|
||||
$from = 'bar@example.com';
|
||||
$from_name = 'Foo';
|
||||
$headers = "From: {$from_name}<{$from}>";
|
||||
$corrected = "From: {$from_name} <{$from}>";
|
||||
|
||||
wp_mail( $to, $subject, $message, $headers );
|
||||
|
||||
$mailer = tests_retrieve_phpmailer_instance();
|
||||
// phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
|
||||
$this->assertSame( $from, $mailer->From );
|
||||
$this->assertSame( $from_name, $mailer->FromName );
|
||||
// phpcs:enable
|
||||
$this->assertStringContainsString( $corrected, $mailer->get_sent()->header );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 30266
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user