虽然 Larave Auth 包含了验证邮箱以及密码的功能,但终归是固定样式的。想要更美观,更漂亮的验证功能,就得自定义。
自定义最直接的方法,就是重写发送逻辑。先贴出部分代码,然后读下边的文章,你肯定会做到的。
# App\Models\User;
//发送验证邮箱
// verification.verify 是你自定义的邮箱模板
public function sendEmailVerificationNotification()
{
\Illuminate\Auth\Notifications\VerifyEmail::toMailUsing(function ($notifiable) {
$url = \Illuminate\Support\Facades\URL::temporarySignedRoute(
'verification.verify', now()->addMinutes(60), ['id' => $notifiable->getKey()]);
$email = $this->email;
$nickname = $this->nickname;
$body = sprintf('<a href="%s" target="_blank">点击激活邮箱</a>', $url);
$mail = (new \Illuminate\Notifications\Messages\MailMessage)->view('emails.activateMail', ['nickname' => $nickname, 'url' => $url],
function (Message $message) use ($nickname, $email, $body) {
$message->subject('请激活你的邮箱');
$message->getSwiftMessage()->setBody($body);
$message->to($email, $nickname);
}
);
return $mail;
});
$this->notify(new \Illuminate\Auth\Notifications\VerifyEmail);
}
当然,你可以使用 trait 干净处理,还可以使用事件另外解耦,还可以添加队列进行异步处理。