讲师中心 微信公众号
AI工具推荐 视频效率加速

Laravel Mail通知_Markdown邮件模板编写【详解】

大杰吖_5294

大杰吖_5294

发布时间:2026-05-01 17:54:25

|

806人浏览过

|

来源于php中文网

原创

唯一可靠方式是改用 Markdown 模板;MailMessage::action() 按钮颜色由 vendor 模板硬编码为 #3d4852,不支持运行时参数修改,即使传入 color 等参数也无效。

laravel mail通知_markdown邮件模板编写【详解】

直接改用 Markdown 模板是唯一能真正控制按钮颜色、布局结构和响应式表现的方式;MailMessage::action() 的黑底按钮无法通过参数修改,这是底层模板硬编码决定的,不是你配错了。

为什么不能用 MailMessage 直接改按钮颜色

MailMessage::action() 生成的 HTML 实际来自 resources/views/vendor/notifications/email.blade.php,这个文件里按钮的 background-color 是写死的 #3d4852(深灰),不接受任何运行时传参。哪怕你试过 ->action('Click', $url, ['color' => 'blue']),也完全无效——Laravel 根本没定义这个参数签名。

常见错误现象:

  • 调用 ->action() 后按钮仍是黑色,检查了 config/services.php 和 mail.php 也没用
  • 试图在 toMail() 里 return 一个带 style 的 <a> 标签,但邮件客户端(尤其是 Outlook)会过滤或重置内联样式
  • 用 view() 手动指定 Blade 模板,却忘了通知类默认不走 Markdown 渲染流程,导致 CSS 不加载、组件不识别

生成并注册 Markdown 邮件通知类

必须用 make:notification 命令带 --markdown 参数,否则不会生成对应视图目录和自动启用 Markdown 渲染器:

php artisan make:notification PasswordResetRequested --markdown=mail.password.reset

这条命令会做三件事:

  • 创建 app/Notifications/PasswordResetRequested.php,其中 toMail() 返回 new MailMessage 的逻辑会被忽略,实际走的是 Markdown 模板
  • 生成视图文件 resources/views/mail/password/reset.blade.php
  • 自动在通知类中添加 use Illuminate\Bus\Queueable; 和 use Illuminate\Notifications\Messages\MailMessage;(但注意:这里 MailMessage 只用于兼容旧写法,真正渲染靠的是 Blade)

别手动复制 email.blade.php 或改 vendor 文件——升级 Laravel 时会被覆盖,且违反约定。

OCR 文档识别转 Markdown(WiseOCR)
OCR 文档识别转 Markdown(WiseOCR)

WiseOCR — 将 PDF 或图片文件转换为高质量 Markdown 文本,支持表格完整识别、多栏版式还原、中英文混排。适用场景:扫描件文字提取、纸质文档数字化、合同/报告/论文转文本、图片中文字提取。支持格式:PDF、JPG、JPEG、PNG、WEBP、GIF、BMP、TIFF。触发:用户上传文件并要求"帮我识别这个文件的文字"、"PDF转文字"、"图片转文本"、"帮我提取这个表格"——会调用本技能。说"用Wi

下载

在 Markdown 模板里正确使用 mail::button

Markdown 模板不是纯 Markdown,而是 Laravel 提供的扩展语法,mail::button 是一个 Blade 组件,支持 color 属性(仅限预设值)或 style(推荐):

@component('mail::message')
## 密码重置请求
<p>您正在尝试重置账户密码。</p><p>@component('mail::button', ['url' => $url, 'color' => 'success'])
重置密码
@endcomponent</p><p>@component('mail::button', ['url' => $url, 'style' => 'background-color:#2563eb;color:#fff;border-radius:6px;'])
蓝色按钮(自定义)
@endcomponent</p><p>谢谢使用!<br />
{{ config('app.name') }}
@endcomponent

关键点:

  • color 只接受 primary、success、error 三种,对应固定色值,不可扩展
  • style 是更可靠的选择,但注意:Gmail 会 strip 掉部分 CSS,所以 background-color、color、border-radius 是安全的,box-shadow 或 transition 则无效
  • 所有变量(如 $url)必须在通知类的 toMail() 方法中通过 ->with() 显式传递:return (new MailMessage)->with(['url' => $resetUrl]);

调试与预览 Markdown 邮件的实际效果

别依赖本地 php artisan serve 直接打开 Blade 文件——它缺少 Laravel 邮件组件的上下文,mail::button 会报错或渲染为空白。

正确做法是用 Laravel 内置的预览功能:

  • 运行 php artisan mail:preview PasswordResetRequested(需 Laravel 9+),它会启动一个临时 HTTP 服务,返回可点击的 HTML 预览页
  • 若提示找不到命令,说明未启用邮件预览功能:确认 config/mail.php 中 'pretend' => true 已关闭,且 APP_ENV=local
  • 真实测试前,务必用 MailHog 或 Ethereal(https://ethereal.email)捕获原始邮件源码,检查是否含 Content-Type: multipart/alternative 和正确的 text/html body —— Markdown 模板最终会被编译成标准 HTML 邮件

最容易被忽略的一点:Markdown 模板里的 @component('mail::message') 必须作为最外层包裹,且不能嵌套其他 @component,否则渲染器会静默失败,只显示空白邮件。

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

857

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

835

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2508

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4321

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

6250

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

4136

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

7749

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

1476

2026.03.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 213人学习

Composer手册
Composer手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn