You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中能否向Mail Blade插入组件或Markdown?

Laravel邮件Blade模板插入组件与Markdown的支持说明

完全支持向邮件Blade模板插入Markdown或Blade组件,但直接通过{!! $content !!}输出原始字符串无法解析Markdown语法或Blade组件,需要先做预处理,以下是具体实现方式:

一、处理Markdown内容

需要先将Markdown字符串转换为HTML,再传递给模板渲染:

  1. 使用Laravel内置的Markdown门面解析Markdown
  2. 示例代码:
use Illuminate\Support\Facades\Markdown;

(new SomeMailable)->with([
    'content' => Markdown::parse('# Title'),
]);
  1. 模板中依旧通过{!! $content !!}输出,此时Markdown已被解析为对应的HTML标签。

二、处理Blade组件(含官方邮件组件)

直接传递组件字符串无法被Blade解析,需先将组件渲染为HTML:

  1. 使用Blade门面的render()方法渲染组件字符串
  2. 示例代码(以<x-mail::button>为例):
use Illuminate\Support\Facades\Blade;

(new SomeMailable)->with([
    'content' => Blade::render('<x-mail::button url="/">Press</x-mail::button>'),
]);
  1. 自定义组件也可采用相同方式,确保组件的命名空间和路径正确即可,模板中通过{!! $content !!}输出渲染后的HTML。

注意事项

  • 安全风险:若内容来自用户输入,必须做好XSS防护,可使用strip_tags()或Laravel的XSS过滤机制,避免恶意代码注入。
  • 邮件样式兼容:使用官方x-mail::*组件时,需确保你的Mailable类继承自Illuminate\Mail\Mailable,且邮件模板基于Laravel的邮件布局,组件样式才能正常生效。

内容的提问来源于stack exchange,提问作者Qian2501

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:22:42