Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
发布时间 - 2025-12-15 00:00:00 点击率:次Laravel通过Mailable类和配置SMTP驱动实现邮件发送,1. 使用artisan命令创建Mailable类;2. 在build方法中设置主题、视图与数据;3. 编写Blade模板并传递变量;4. 在.env中配置MAIL相关参数;5. 通过Mail门面在控制器中调用send方法发送邮件,支持多收件人与抄送,流程清晰且易于调试。
在 Laravel 中发送邮件变得异常简单,得益于其强大的 Mailables 系统。你不再需要手动配置 SMTP 或拼接邮件内容,Laravel 提供了清晰、优雅的面向对象方式来构建和发送邮件。本文将带你一步步实现从创建 Mailable 类到成功发送邮件的全过程。
创建并配置 Mailable 类
Laravel 使用 Mailable 类来封装邮件逻辑。每个邮件都可以是一个独立的类,包含主题、收件人、视图模板和数据传递等信息。
使用 Artisan 命令创建一个 Mailable:
php artisan make:mail WelcomeEmail
该命令会在 app/Mail 目录下生成 WelcomeEmail.php 文件。打开它,你会看到一个空的 build 方法,这就是定义邮件内容的地方。
例如,设置邮件主题和使用的视图:
public function build()
{
return $this->subject('欢迎加入我们!')
->view('emails.welcome');
}
编写邮件视图模板
Laravel 邮件支持 Markdown 和普通 Blade 模板。这里以 Blade 为例。在 resources/views/emails 目录下创建 welcome.blade.php。
你可以通过 $message 变量访问邮件实例,也可以传递自定义数据。比如在 Mailable 中添加 with() 方法:
public function build()
{
return $this->subject('欢迎加入我们!')
->view('emails.welcome')
->with([
'name' => '张三',
'url' => 'https://example.com'
]);
}
然后在视图中使用这些变量:
你好,{{ $name }}!
感谢注册,点击 这里 开始使用。
配置邮件驱动与环境设置
Laravel 支持多种邮件驱动:smtp、sendmail、mailgun、postmark 等。最常用的是 SMTP。配置位于 .env 文件中:
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your@gmail.com MAIL_PASSWORD=your-app-password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=your@gmail.com MAIL_FROM_NAME="Your App"
注意:若使用 Gmail,需开启两步验证并生成“应用专用密码”作为 MAIL_PASSWORD。
在控制器中发送邮件
使用 Larave
l 的 Mail 门面即可发送邮件。先引入 Mailable 类:
use App\Mail\WelcomeEmail;
use Illuminate\Support\Facades\Mail;
Mail::to('user@example.com')->send(new WelcomeEmail());
你也可以发送给多个收件人或抄送:
Mail::to(['a@example.com', 'b@example.com'])
->cc('manager@example.com')
->send(new WelcomeEmail());
基本上就这些。Laravel 的 Mailables 让邮件发送变得结构清晰、易于维护。只要配置好驱动、写好模板、调用 send 方法,邮件就能顺利发出。不复杂但容易忽略细节,比如环境变量拼写或视图路径错误,调试时可借助 Laravel Log 或使用 log 驱动测试流程。
# php
# word
# laravel
# markdown
# cad
# app
# ai
# 环境变量
# 面向对象
# 封装
# mail
# 对象
# 发送邮件
# 欢迎加入
# 邮件发送
# 的是
# 是一个
# 器中
# 目录下
# 你可以
# 就能
# 多个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
香港服务器如何优化才能显著提升网站加载速度?
如何快速打造个性化非模板自助建站?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何快速搭建高效可靠的建站解决方案?
网站制作软件有哪些,制图软件有哪些?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Python文本处理实践_日志清洗解析【指导】
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
Python文件异常处理策略_健壮性说明【指导】
详解vue.js组件化开发实践
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel API资源类怎么用_Laravel API Resource数据转换
简历没回改:利用AI润色让你的文字更专业
Laravel怎么实现模型属性的自动加密
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
Laravel怎么使用Intervention Image库处理图片上传和缩放
javascript中的try catch异常捕获机制用法分析
微信小程序 require机制详解及实例代码
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel如何处理表单验证?(Requests代码示例)
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
如何实现javascript表单验证_正则表达式有哪些实用技巧
北京企业网站设计制作公司,北京铁路集团官方网站?
如何确保西部建站助手FTP传输的安全性?
非常酷的网站设计制作软件,酷培ai教育官方网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
Laravel怎么在Controller之外的地方验证数据
Laravel如何集成Inertia.js与Vue/React?(安装配置)
原生JS获取元素集合的子元素宽度实例
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
魔方云NAT建站如何实现端口转发?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
使用C语言编写圣诞表白程序
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel如何处理异常和错误?(Handler示例)
利用python获取某年中每个月的第一天和最后一天
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
如何彻底卸载建站之星软件?
Python进程池调度策略_任务分发说明【指导】
lovemo网页版地址 lovemo官网手机登录
如何在不使用负向后查找的情况下匹配特定条件前的换行符
大学网站设计制作软件有哪些,如何将网站制作成自己app?
微信小程序 五星评分(包括半颗星评分)实例代码
Laravel如何配置和使用缓存?(Redis代码示例)
网站建设要注意的标准 促进网站用户好感度!
Android滚轮选择时间控件使用详解
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南

