在Laravel通知电子邮件中添加粗体文本和换行符

7ivaypg9  于 2023-02-14  发布在  其他
关注(0)|答案(6)|浏览(249)

拉腊维尔5.6
我尝试通过电子邮件发送Laravel通知。我想使一些文本加粗,并放入换行符,而不使用line($text)方法带来的整个新段落。因此,我在通知类中尝试了此操作。我还尝试使用\n字符串作为新行。

return (new MailMessage)
->subject('Booking Confirmed - Please Read')
->greeting('Hello ' . $this->booking->user->first_name . ',')
->line('Thank you for booking. Here are your booking details:')
->line($this->booking->provider->providerType->name . '<br>' .
    $date . '<br>' .
    $this->booking->start_at . '<br>' .
    $this->booking->address_1 . '<br>' .
    $this->booking->address_2 . '<br>' .
    $this->booking->address_3 . '<br>' .
    $this->booking->city . '<br>' .
    $this->booking->postcode . '<br>' .
    '£' . $this->booking->price
)
->line('<strong>Need to cancel?</strong><br>' .
    'Don\'t forget to contact the provider on the details above if you need to cancel or reschedule. 
    They won\'t mind, as long as you tell them.'
)
->line('<strong>Payment</strong><br>' .
    'Pay the Service provider direct as you normally would. This keeps things simple and costs down.'
)
->line('<strong>FAQ\'s</strong><br>' .
    'Please click here for more information'
)
->line('<strong>Don\'t forget to leave feedback after!</strong><br>' .
    'Help build your relationship with your Service Providers by leaving feedback'
)
->line('We hope to see you again soon!')

我尝试过通过php artisan vendor:publish --tag=laravel-mail命令发布和不发布刀片模板,然后将{{$line}}更新为{!! $line !!}},但没有成功。
在mailtrap

中,它会这样打印

chy5wohz

chy5wohz1#

也许你已经完成了你的工作,因为这个问题是如此古老。但我想分享一个简单的方法来写一个HTML标签的Laravel邮件模板。
首先,您需要导入use Illuminate\Support\HtmlString;

->line(new HtmlString('Last date: <strong>' . $this->due_date . '</strong>'))

HtmlString类使您能够在邮件正文上编写HTML标记。这对正在寻找这种解决方案的人会很有帮助。
谢谢。

oyjwcjzk

oyjwcjzk2#

我想出来了,以防有人跟我一样蠢。
我认为这有两个原因。@DouwedeHaan建议我在使用\n时使用双引号而不是单引号,这并没有做太多,但结合下一部分,我认为做到了这一点。
渲染html的blade模板是在markdown中的,我还没有弄明白,它的布局是特定的,我在发布后不小心把它破坏了,删除了一些行,用缩进格式格式化了文件,这破坏了所有的东西。
我删除了该文件,重新发布了模板,更新了{{$line}}的所有示例,以{!! $line !!}确保文件的其余部分保持原样,更新了我的通知,以使用双引号,并坚持使用<br/><strong></strong>标签,现在它按预期工作。

wrrgggsh

wrrgggsh3#

使用带单引号的普通换行符

'This will create a
new line'

或使用带双引号的\n

"This will also create a \n new line"

More info here

bvuwiixz

bvuwiixz4#

我不确定它是在哪个版本的Laravel中引入的,但是您可以在MailMessage中使用Markdown,所以如果只需要简单的格式设置,HtmlString是不必要的。

sbtkgmzw

sbtkgmzw5#

如果您仍在寻找解决方案,这是什么工作伟大:

...

->line(new HtmlString('<hr/>'))
->line(new HtmlString('<strong>Name: </strong>' . $this->contact->first_name))

...
uyhoqukh

uyhoqukh6#

您确实需要更新通知视图,这样您才能走上正确的道路。
基本上,在发布通知包的资源之后:
$php工匠供应商:发布--标签= laravel-通知
您只需打开resources/views/vendor/notifications/email.blade.php并将出现的{{$line}}替换为{!! $line!!}即可。
这只是告诉刀锋不要逃脱标签。
希望这有帮助!

相关问题