1. 开启 QQ 邮箱smtp,获取授权码:
登录 QQ 邮箱 -> 设置 -> 账户 -> 开启 POP3/SMTP 服务
获取授权码:
授权码
laravel邮件配置
配置 .env 文件
MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=465MAIL_USERNAME=6*****9@qq.com MAIL_PASSWORD=d*********j MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS= MAIL_FROM_NAME=
添加控制器方法,发送邮件(仅描述主要部分,自己配路由,进行完善)
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Cache; use App\Mail\Verification; public function sendEmailCode(Request $request) { if ($email = $request->email) { try { $code = substr(md5(mt_rand(1000, 9999)), 0, 6); $content = '你的邮件验证码为:' . $code; $key = 'email_' . $request->email; // 验证码 Cache::put($key, $code, (new Carbon())->addMinutes(10)); Mail::to($request->email)->send(new Verification($content)); return $this->success(null, '验证码已发送邮箱'); } catch (\Exception $e) { // error return $this->error($e->getMessage()); } } }
编写可邮寄类
4.1 可以通过以下命令来生成可邮寄类:
php artisan make:mail Verification
4.2 通过build方法来设置邮件视图。
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; class UserRegister extends Mailable{ use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this->view('emails.verification'); } }
编写视图文件
resources/views/emails/verification.blade.php
<div>{{ $content }}</div>