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=smtp
MAIL_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_USERNAMEMAIL_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网站?