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 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
网站建设保证美观性,需要考虑的几点问题!
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何在企业微信快速生成手机电脑官网?
常州企业网站制作公司,全国继续教育网怎么登录?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何确认建站备案号应放置的具体位置?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何在Ubuntu系统下快速搭建WordPress个人网站?
在线制作视频网站免费,都有哪些好的动漫网站?
如何在橙子建站上传落地页?操作指南详解
Thinkphp 中 distinct 的用法解析
Laravel怎么在Blade中安全地输出原始HTML内容
javascript如何操作浏览器历史记录_怎样实现无刷新导航
中国移动官方网站首页入口 中国移动官网网页登录
网站优化排名时,需要考虑哪些问题呢?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何在阿里云ECS服务器部署织梦CMS网站?
Linux系统命令中screen命令详解
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在云主机上快速搭建网站?
详解jQuery中基本的动画方法
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel如何实现多对多模型关联?(Eloquent教程)
利用python获取某年中每个月的第一天和最后一天
PHP 500报错的快速解决方法
如何在腾讯云免费申请建站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
JS实现鼠标移上去显示图片或微信二维码
Android使用GridView实现日历的简单功能
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
如何登录建站主机?访问步骤全解析
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
JS中对数组元素进行增删改移的方法总结
如何在橙子建站中快速调整背景颜色?
linux top下的 minerd 木马清除方法
如何快速搭建自助建站会员专属系统?
香港服务器WordPress建站指南:SEO优化与高效部署策略
Mybatis 中的insertOrUpdate操作
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Laravel如何使用withoutEvents方法临时禁用模型事件
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明

