信息发布→ 登录 注册 退出

Laravel如何发送邮件和配置邮件驱动

发布时间:2025-11-10

点击量:
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。编辑它来设置收件人、主题、模板等:

示例代码:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

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,你需要创建它:




欢迎


你好,{{ $data['name'] }}


感谢注册,欢迎加入我们的平台!



发送邮件

在控制器或路由中使用 Mail::to() 发送邮件:

use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;

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 中,便于查看结构和调试。

你也可以使用 MailtrapSMTP Debugging 工具来捕获测试邮件。

基本上就这些。配置好驱动,创建 Mailable 类,调用 send 方法即可完成邮件发送。整个流程清晰,扩展性强。
标签:# Namespace  # 自定义  # 推荐使用  # 你也  # 多个  # 在这里  # 如果你  # 邮件发送  # 欢迎加入  # 你可以  # 发送邮件  # this  # function  # php  # public  # class  # mail  # 配置文件  # 环境变量  # 路由  # ai  # 工具  # app  # cad  # laravel  # word  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!