Laravel 邮件系统通过配置驱动、创建 Mailable 类、编写视图模板和使用 Mail Facade 发送邮件,支持 SMTP 配置、数据传递、Markdown 模板及队列异步处理,实现高效邮件发送。
Laravel 提供了一套简单而强大的邮件系统,让你可以轻松地发送文本或 HTML 邮件。整个流程包括配置邮件驱动、编写邮件类、发送邮件以及处理队列等。下面详细介绍 Laravel 中如何配置和使用邮件发送功能。
1. 邮件服务配置
在 Laravel 中,邮件配置文件位于 config/mail.php,你可以在这里设置默认的邮件驱动、发件人信息、SMTP 参数等。大多数情况下,你也可以通过环境变量来管理这些配置,更加安全灵活。
打开 .env 文件,配置如下内容:
MAIL_MAILER=smtpMAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
MAIL_FROM_NAME="${APP_NAME}"
说明:
MAIL_MAILER:可选 smtp、sendmail、log、mailgun 等 MAIL_HOST:如使用 Gmail,则为 smtp.gmail.com MAIL_PORT:常用端口 587(TLS)或 465(SSL) MAIL_ENCRYPTION:加密方式,推荐 tls Gmail 用户注意:不能使用账户密码,需生成应用专用密码2. 创建邮件类
Laravel 使用 Mailable 类来定义邮件内容。你可以使用 Artisan 命令生成:
php artisan make:mail WelcomeEmail生成的类位于 app/Mail/WelcomeEmail.php。编辑该类的 build 方法:
示例代码:
public function build(){
return $this->subject('欢迎注册')
->view('emails.welcome'); // 对应 resources/views/emails/welcome.blade.php
}
你也可以传递数据:
return $this->subject('订单确认')->view('emails.order')
->with([
'order' => $this->order,
'user' => $this->user
]);
3. 编写邮件视图模板
在 resources/views/emails/ 目录下创建 Blade 模板,例如 welcome.blade.php:

在线文字转语音软件-专业的配音网站


<html>
<head><title>欢迎加入</title></head>
<body>
<h1>你好,{{ $name }}!</h1>
<p>感谢你注册我们的服务。</p>
</body>
</html>
Laravel 也支持 Markdown 邮件,能自动生成美观的响应式邮件样式,使用命令:php artisan make:mail OrderShipped --markdown=mail.order.shipped
4. 发送邮件
使用 Mail Facade 的 to 方法发送邮件:
use Illuminate\Support\Facades\Mail;use App\Mail\WelcomeEmail;
Mail::to('user@example.com')->send(new WelcomeEmail());
支持多种收件人方式:
抄送:Mail::to(...)->cc('...')->send(...) 密送:bcc() 发送给多个用户:to(['a@ex.com', 'b@ex.com'])如果 Mailable 类中已指定接收者(比如构造函数传入),可以直接 send。
5. 队列异步发送邮件
邮件发送较慢,建议使用队列避免阻塞请求。先确保已配置队列驱动(如 database、redis、sqs),然后在 Mailable 类中实现 ShouldQueue 接口:
use Illuminate\Contracts\Queue\ShouldQueue;class WelcomeEmail extends Mailable implements ShouldQueue
{
// ...
}
这样调用 send() 时会自动推入队列。记得运行队列监听器:
php artisan queue:work基本上就这些。Laravel 的邮件系统设计清晰,配合队列使用体验更佳。只要配置正确,无论是通知、验证还是营销邮件都能高效发送。
以上就是Laravel邮件发送怎么做_Laravel框架邮件发送配置与使用的详细内容,更多请关注php中文网其它相关文章!