Skip to content

Commit 323bd9f

Browse files
committed
Merge remote-tracking branch 'upstream' into 6-9/dependency-updates
2 parents 01d0b55 + 93d6c27 commit 323bd9f

File tree

4 files changed

+28
-26
lines changed

4 files changed

+28
-26
lines changed

.github/workflows/phpunit-tests.yml

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
os: [ ubuntu-24.04 ]
212212
php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ]
213213
db-type: [ 'mariadb' ]
214-
db-version: [ '5.5', '10.3', '10.4', '10.5', '10.6', '10.11', '11.4', '11.8' ]
214+
db-version: [ '5.5', '10.3', '10.5', '10.6', '10.11', '11.4', '11.8' ]
215215
multisite: [ false, true ]
216216
memcached: [ false ]
217217

@@ -222,9 +222,6 @@ jobs:
222222
- event: pull_request
223223
php: '7.2'
224224
db-version: '10.3'
225-
- event: pull_request
226-
php: '7.2'
227-
db-version: '10.4'
228225
- event: pull_request
229226
php: '7.2'
230227
db-version: '10.5'
@@ -243,9 +240,6 @@ jobs:
243240
- event: pull_request
244241
php: '7.3'
245242
db-version: '5.5'
246-
- event: pull_request
247-
php: '7.3'
248-
db-version: '10.4'
249243
- event: pull_request
250244
php: '7.3'
251245
db-version: '10.5'
@@ -288,9 +282,6 @@ jobs:
288282
- event: pull_request
289283
php: '8.0'
290284
db-version: '10.3'
291-
- event: pull_request
292-
php: '8.0'
293-
db-version: '10.4'
294285
- event: pull_request
295286
php: '8.0'
296287
db-version: '10.6'
@@ -309,9 +300,6 @@ jobs:
309300
- event: pull_request
310301
php: '8.1'
311302
db-version: '10.3'
312-
- event: pull_request
313-
php: '8.1'
314-
db-version: '10.4'
315303
- event: pull_request
316304
php: '8.1'
317305
db-version: '10.5'
@@ -330,9 +318,6 @@ jobs:
330318
- event: pull_request
331319
php: '8.2'
332320
db-version: '10.3'
333-
- event: pull_request
334-
php: '8.2'
335-
db-version: '10.4'
336321
- event: pull_request
337322
php: '8.2'
338323
db-version: '10.5'
@@ -351,9 +336,6 @@ jobs:
351336
- event: pull_request
352337
php: '8.3'
353338
db-version: '10.3'
354-
- event: pull_request
355-
php: '8.3'
356-
db-version: '10.4'
357339
- event: pull_request
358340
php: '8.3'
359341
db-version: '10.5'
@@ -372,9 +354,6 @@ jobs:
372354
- event: pull_request
373355
php: '8.4'
374356
db-version: '10.3'
375-
- event: pull_request
376-
php: '8.4'
377-
db-version: '10.4'
378357
- event: pull_request
379358
php: '8.4'
380359
db-version: '10.5'
@@ -393,9 +372,6 @@ jobs:
393372
- event: pull_request
394373
php: '8.5'
395374
db-version: '10.3'
396-
- event: pull_request
397-
php: '8.5'
398-
db-version: '10.4'
399375
- event: pull_request
400376
php: '8.5'
401377
db-version: '10.5'

src/wp-includes/pluggable.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,15 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
384384
$phpmailer->Body = '';
385385
$phpmailer->AltBody = '';
386386

387+
/*
388+
* Reset encoding to 8-bit, as it may have been automatically downgraded
389+
* to 7-bit by PHPMailer (based on the body contents) in a previous call
390+
* to wp_mail().
391+
*
392+
* See https://core.trac.wordpress.org/ticket/33972
393+
*/
394+
$phpmailer->Encoding = PHPMailer\PHPMailer\PHPMailer::ENCODING_8BIT;
395+
387396
// Set "From" name and email.
388397

389398
// If we don't have a name from the input headers.

tests/phpunit/includes/mock-mailer.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class MockPHPMailer extends WP_PHPMailer {
2020
public $mock_sent = array();
2121

2222
public function preSend() {
23-
$this->Encoding = '8bit';
2423
return parent::preSend();
2524
}
2625

tests/phpunit/tests/pluggable/wpMail.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,4 +651,22 @@ public function test_wp_mail_string_embeds() {
651651
$this->assertStringContainsString( 'cid:' . $key, $mailer->get_sent()->body, 'The cid ' . $key . ' is not referenced in the mail body.' );
652652
}
653653
}
654+
655+
/**
656+
* Test that the encoding of the email does not bleed between long and short emails.
657+
*
658+
* @ticket 33972
659+
*/
660+
public function test_wp_mail_encoding_does_not_bleed() {
661+
$content = str_repeat( 'A', 1000 );
662+
wp_mail( WP_TESTS_EMAIL, 'Looong line testing', $content );
663+
664+
$mailer = tests_retrieve_phpmailer_instance();
665+
$this->assertEquals( 'quoted-printable', $mailer->Encoding );
666+
667+
wp_mail( WP_TESTS_EMAIL, 'A follow up short email', 'Short email' );
668+
669+
$mailer = tests_retrieve_phpmailer_instance();
670+
$this->assertEquals( '7bit', $mailer->Encoding );
671+
}
654672
}

0 commit comments

Comments
 (0)