发送邮件
1.在 Laravel 中发送邮件可以使用内置的 Mail
类。首先需要在 .env
文件中配置邮件服务商的信息:
MAIL_MAILER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=你的QQ邮箱账号
MAIL_PASSWORD=你的QQ邮箱授权码
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=发件人邮箱地址
MAIL_FROM_NAME=发件人名称
2.控制器方法
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Cache;
public function email(Request $request, $id)
{
// 使用 pluck() 方法获取 email 字段的值,然后使用 first() 方法获取第一个匹配的结果。
$email = Test::where('id', $id)->pluck('email')->first();
$code = rand(1000, 9999);
// 将数据存储在 Laravel 的缓存系统中
// 可以在 storage/framework/cache/data 目录中找到缓存文件
Cache::put('email_verification_code:' . $email, $code, 60);
// 获取验证码
// $cachedCode = Cache::get('email_verification_code:' . $email);
//使用blade模板发送(引用的模板)
Mail::send('admin.emails.email', ['code' => $code], function ($message) use ($email) {
$message->to($email)->subject('水蜜桃的夏天');
});
if (Mail::failures()) {
return ["code" => 0, "msg" => "error"];
}
return ["code" => 1, "msg" => "success"];
}
3.blade模板
<!DOCTYPE html>
<html>
<head>
<title>邮箱测试模板</title>
</head>
<body>
<h1>您的验证码是,{{$code}}!</h1>
<p>请在一分钟内注册,啦啦啦啦啦啦啦!!!!</p>
</body>
</html>