Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
发布时间 - 2025-12-16 00:00:00 点击率:次首先配置 .env 文件设置 SMTP 参数,如 MAIL_MAILER=smtp、邮箱地址和授权码;接着使用 Artisan 命令创建 Mailable 类 WelcomeEmail 并定义邮件主题与视图;然后在 resources/views/emails/ 目录下创建 welcome.blade.php 模板文件,动态显示用户姓名;之后在控制器中引入 Mail Facade 和 WelcomeEmail 类,调用 Mail::to()->send() 方法发送邮件,支持单个或多个收件人;最后可通过设置 MAIL_MAILER=log 将邮件记录到日志用于测试,确认无误后切换回 smtp 驱动正式发送。整个流程依赖 Laravel 的 Mail 服务,关键在于正确配置 SMTP 授权信息和加密方式,尤其注意使用邮箱授权码而非登录密码。
在 Laravel 中发送邮件非常简单,得益于其优雅的 Mail 服务和强大的配置支持。你可以通过 SMTP、Mailgun、Postmark、SES 等多种驱动发送邮件,其中最常用的是 SMTP 方式。下面教你如何使用 Laravel 的 Mail 类配合 SMTP 发送邮件。
1. 配置 .env 文件中的 SMTP 信息
打开项目根目录下的 .env 文件,配置邮件驱动和 SMTP 相关参数:
MAIL_MAILER=smtpMAIL_HOST=smtp.qq.com
MAIL_PORT=587
MAIL_USERNAME=your_email@qq.com
MAIL_PASSWORD=your_password_or_auth_code
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@qq.com
MAIL_FROM_NAME="${APP_NAME}"
说明
:
- MAIL_MAILER:设置为 smtp
- MAIL_HOST:SMTP 服务器地址,如 QQ 邮箱是 smtp.qq.com,网易邮箱是 smtp.163.com
- MAIL_PORT:通常 587(TLS)或 465(SSL)
- MAIL_ENCRYPTION:加密方式,tls 或 ssl
- MAIL_USERNAME 和 MAIL_PASSWORD:你的邮箱账号和授权码(注意:不是登录密码,QQ 邮箱等需开启 SMTP 并获取授权码)
2. 创建邮件内容类(Mailable)
Laravel 使用 Mailable 类定义邮件内容。使用 Artisan 命令创建:
php artisan make:mail WelcomeEmail生成的文件位于 app/Mail/WelcomeEmail.php,编辑它:
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->subject('欢迎注册')
->view('emails.welcome'); // 对应 resources/views/emails/welcome.blade.php
}
}
3. 创建邮件模板视图
在 resources/views/emails/ 目录下创建 welcome.blade.php:
a style="color:#f60; text-decoration:underline;" title= "html"href="https://www./zt/15763.html" target="_blank">html>你好,{{ $data['name'] }}!
感谢你注册我们的服务。
4. 在控制器中发送邮件
在控制器中使用 Mail Facade 发送邮件:
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;
class UserController extends Controller
{
public function sendWelcomeEmail()
{
$data = [
'name' => '张三',
'email' => 'user@example.com'
];
Mail::to($data['email'])->send(new WelcomeEmail($data));
return '邮件已发送!';
}
}
你也可以发送给多个收件人:
Mail::to(['a@ex.com', 'b@ex.com'])->send(new WelcomeEmail($data));5. 测试与调试
建议先用日志查看邮件内容,避免频繁发送测试邮件。可在 .env 中临时设置:
MAIL_MAILER=log这样邮件不会真正发送,而是记录到 storage/logs/laravel.log 中。
确认无误后改回 MAIL_MAILER=smtp 即可正式发送。
基本上就这些。Laravel 的邮件系统清晰且易于扩展,配合队列还能异步发送提升性能。SMTP 配置关键在于正确填写授权信息和端口加密方式,尤其是第三方邮箱要使用授权码而非密码。不复杂但容易忽略细节。
# laravel
# php
# word
# html
# cad
# app
# 端口
# qq
# 网易
# ssl
# ai
# 邮箱
# mail
# 异步
# 发送邮件
# 多个
# 器中
# 而非
# 关键在于
# 的是
# 目录下
# 你可以
# 尤其是
# 还能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
原生JS实现图片轮播切换效果
如何快速搭建高效可靠的建站解决方案?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
使用spring连接及操作mongodb3.0实例
如何快速生成ASP一键建站模板并优化安全性?
如何在云主机上快速搭建网站?
Laravel如何使用Service Container和依赖注入?(代码示例)
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何在阿里云虚拟服务器快速搭建网站?
如何在阿里云购买域名并搭建网站?
如何快速搭建安全的FTP站点?
制作电商网页,电商供应链怎么做?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
制作旅游网站html,怎样注册旅游网站?
Laravel如何实现事件和监听器?(Event & Listener实战)
如何自定义建站之星网站的导航菜单样式?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何快速搭建支持数据库操作的智能建站平台?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
微信h5制作网站有哪些,免费微信H5页面制作工具?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何确保FTP站点访问权限与数据传输安全?
如何实现建站之星域名转发设置?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何彻底卸载建站之星软件?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
米侠浏览器网页背景异常怎么办 米侠显示修复
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
浅析上传头像示例及其注意事项
香港网站服务器数量如何影响SEO优化效果?
详解Android中Activity的四大启动模式实验简述
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
nodejs redis 发布订阅机制封装实现方法及实例代码
C语言设计一个闪闪的圣诞树
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
Laravel PHP版本要求一览_Laravel各版本环境要求对照
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
如何在阿里云ECS服务器部署织梦CMS网站?

