Laravel通过SMTP等驱动配置邮件服务,使用Mailable类定义邮件内容并结合视图发送,或通过通知系统统一管理多渠道消息,支持队列异步处理以提升性能,适用于各类应用场景。

Laravel 提供了一套强大且易于使用的邮件和通知系统,让你能快速实现邮件发送功能。无论是发送简单的通知邮件,还是复杂的模板邮件,Laravel 都提供了清晰的流程和灵活的配置方式。
配置邮件服务
在发送邮件之前,需要先配置邮件驱动和相关凭证。Laravel 支持多种邮件驱动,如 SMTP、Mailgun、Postmark、Sendmail 等,最常用的是 SMTP。
打开 .env 文件,填写邮件服务配置:- MAIL_MAILER=smtp
- MAIL_HOST=smtp.mailtrap.io
- MAIL_PORT=2525
- MAIL_USERNAME=your_username
- MAIL_PASSWORD=your_password
- MAIL_ENCRYPTION=tls
- MAIL_FROM_ADDRESS=from@example.com
- MAIL_FROM_NAME="${APP_NAME}"
创建并发送邮件
Laravel 使用 Mailable 类来定义邮件内容。你可以使用 Artisan 命令生成一个 Mailable 类。
执行命令创建邮件类:- php artisan make:mail WelcomeEmail
public function build()
{
return $this->subject('欢迎注册')
->view('emails.welcome');
}
然后创建对应的视图文件 resources/views/emails/welcome.blade.php,写入邮件 HTML 内容。
在控制器或路由中发送邮件:
use App\Mail\WelcomeEmail;
use Illuminate\Support\Facades\Mail;
Mail::to('user@example.com')->send(new WelcomeEmail());
使用通知系统发送邮件
Laravel 的通知系统更适用于发送多种渠道的消息(如邮件、短信、数据库等)。你可以通过通知类统一管理。
生成通知类:- php artisan make:notification InvoicePaid
use Illuminate\Notifications\Messages\MailMessage;
public function toMail($notifiable)
{
return (new MailMessage)
->greeting('您好!')
->line('您的账单已支付。')
->action('查看账单', url('/invoice'))
->salutation('谢谢使用!');
}
确保用户模型使用了 Notifiable trait:
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
}
发送通知:
$user->notify(new InvoicePaid());
测试与队列优化
开发过程中建议使用日志或工具(如 Mailtrap)测试邮件,避免误发。
若邮件内容较多或用户量大,建议使用队列异步发送,提升响应速度:- 在 Mailable 类中使用 ShouldQueue 接口
- 配置 QUEUE_CONNECTION=database 或 redis
- 运行队列监听:php artisan queue:work
基本上就这些。Laravel 的邮件和通知机制结构清晰,配置简单,适合各种规模的应用场景。只要按步骤配置驱动、编写内容、调用发送即可实现功能。










