Skip to content

Commit bf4b6d1

Browse files
authored
Fix setting mail header (#32272)
1 parent f0f977a commit bf4b6d1

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/Illuminate/Mail/Mailer.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,20 +324,25 @@ protected function parseView($view)
324324
*/
325325
protected function addContent($message, $view, $plain, $raw, $data)
326326
{
327+
$header = $message->getContentType();
328+
327329
if (isset($view)) {
328-
$message->setBody($this->renderView($view, $data), 'text/html');
330+
$message->setBody(
331+
$this->renderView($view, $data),
332+
$header && $header !== 'text/plain' ? $header : 'text/html'
333+
);
329334
}
330335

331336
if (isset($plain)) {
332337
$method = isset($view) ? 'addPart' : 'setBody';
333338

334-
$message->$method($this->renderView($plain, $data), 'text/plain');
339+
$message->$method($this->renderView($plain, $data), $header ?: 'text/plain');
335340
}
336341

337342
if (isset($raw)) {
338343
$method = (isset($view) || isset($plain)) ? 'addPart' : 'setBody';
339344

340-
$message->$method($raw, 'text/plain');
345+
$message->$method($raw, $header ?: 'text/plain');
341346
}
342347
}
343348

tests/Mail/MailMailerTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public function testMailerSendSendsMessageWithProperViewContent()
3636
$message->shouldReceive('setFrom')->never();
3737
$this->setSwiftMailer($mailer);
3838
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
39+
$message->shouldReceive('getContentType')->once()->andReturn('');
3940
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
4041
$mailer->send('foo', ['data'], function ($m) {
4142
$_SERVER['__mailer.test'] = $m;
@@ -57,6 +58,7 @@ public function testMailerSendSendsMessageWithProperViewContentUsingHtmlStrings(
5758
$message->shouldReceive('setFrom')->never();
5859
$this->setSwiftMailer($mailer);
5960
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
61+
$message->shouldReceive('getContentType')->once()->andReturn('');
6062
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
6163
$mailer->send(['html' => new HtmlString('rendered.view'), 'text' => new HtmlString('rendered.text')], ['data'], function ($m) {
6264
$_SERVER['__mailer.test'] = $m;
@@ -77,6 +79,7 @@ public function testMailerSendSendsMessageWithProperViewContentUsingHtmlMethod()
7779
$message->shouldReceive('setFrom')->never();
7880
$this->setSwiftMailer($mailer);
7981
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
82+
$message->shouldReceive('getContentType')->once()->andReturn('');
8083
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
8184
$mailer->html('rendered.view', function ($m) {
8285
$_SERVER['__mailer.test'] = $m;
@@ -99,6 +102,7 @@ public function testMailerSendSendsMessageWithProperPlainViewContent()
99102
$message->shouldReceive('setFrom')->never();
100103
$this->setSwiftMailer($mailer);
101104
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
105+
$message->shouldReceive('getContentType')->once()->andReturn('');
102106
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
103107
$mailer->send(['foo', 'bar'], ['data'], function ($m) {
104108
$_SERVER['__mailer.test'] = $m;
@@ -121,6 +125,7 @@ public function testMailerSendSendsMessageWithProperPlainViewContentWhenExplicit
121125
$message->shouldReceive('setFrom')->never();
122126
$this->setSwiftMailer($mailer);
123127
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
128+
$message->shouldReceive('getContentType')->once()->andReturn('');
124129
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
125130
$mailer->send(['html' => 'foo', 'text' => 'bar'], ['data'], function ($m) {
126131
$_SERVER['__mailer.test'] = $m;

0 commit comments

Comments
 (0)