laravel通过配置邮件驱动、创建Mailable类并调用send方法实现邮件发送。首先在.env中设置SMTP等驱动信息,如mail_MAILER=smtp;然后使用php artisan make:mail生成Mailable类,定义主题和视图模板;接着在控制器中通过Mail::to()->send()发送邮件,支持多收件人及抄送密送;开发时可用log驱动记录邮件内容便于调试。整个流程简洁高效,适合快速集成。

Laravel 发送邮件非常方便,内置了强大的邮件系统,支持多种邮件驱动,比如 SMTP、Mailgun、Postmark、Sendmail 等。配置和使用过程简单清晰,适合在项目中快速集成。
配置邮件驱动
Laravel 的邮件配置文件位于 config/mail.php,你可以在这里设置默认的邮件驱动、发件人信息等。实际环境变量建议写在 .env 文件中,便于管理。
常见的邮件驱动包括:
- smtp:使用自定义 SMTP 服务器(最常用)
- sendmail:使用本地 Sendmail 服务
- mailgun:使用 Mailgun API
- postmark:使用 Postmark 服务
- log:仅记录邮件内容,用于测试
在 .env 中配置 SMTP 示例:
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 Name”
如果你使用 Gmail,注意要开启“两步验证”并生成“应用专用密码”作为 MAIL_PASSWORD。
创建邮件类 Mailable
Laravel 使用 Mailable 类来定义邮件内容。你可以使用 Artisan 命令生成:
php artisan make:mail WelcomeEmail
生成的类位于 app/Mail/WelcomeEmail.php。编辑它来设置收件人、主题、模板等:
示例代码:
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->subject(‘欢迎加入’)
->view(’emails.welcome’);
}
}
这里引用了一个视图模板 resources/views/emails/welcome.blade.php,你需要创建它:
你好,{{ $data[‘name’] }}
感谢注册,欢迎加入我们的平台!
发送邮件
在控制器或路由中使用 Mail::to() 发送邮件:
use IlluminateSupportFacadesMail;
use AppMailWelcomeEmail;
Mail::to(‘user@example.com’)->send(new WelcomeEmail([
‘name’ => ‘张三’
]));
你也可以发送给多个收件人:
Mail::to([‘a@ex.com’, ‘b@ex.com’])->send(new WelcomeEmail($data));
如果想抄送或密送:
$mail = new WelcomeEmail($data);
Mail::to(‘to@example.com’)
->cc(‘cc@example.com’)
->bcc(‘bcc@example.com’)
->send($mail);
测试与调试
开发阶段推荐使用 log 驱动来避免真实发送:
MAIL_MAILER=log
所有邮件内容会被记录在 storage/logs/laravel.log 中,便于查看结构和调试。
你也可以使用 Mailtrap 或 SMTP Debugging 工具来捕获测试邮件。
基本上就这些。配置好驱动,创建 Mailable 类,调用 send 方法即可完成邮件发送。整个流程清晰,扩展性强。
以上就是Laravel如何发送邮件和配置邮件驱动的详细内容,更多请关注php中文网其它相关文章!