前言
在构建现代Web应用时,用户注册后的验证与通知机制是提升用户体验与增强应用安全性的关键一环。本指南将聚焦于Laravel框架中,如何为新注册的用户发送欢迎邮件或验证邮件。我们将从基础出发,首先介绍如何在Laravel项目中配置邮箱服务,确保应用能够连接到您的邮件服务器。随后,详细讲解如何在Laravel中设置发送邮件的配置项,包括SMTP服务器信息、认证方式等。最后,通过实际测试发邮件功能,验证配置的正确性,并确保邮件能够准确无误地送达用户邮箱。无论是为了提升用户注册流程的友好度,还是为了增强账户安全性,本指南都将为您提供宝贵的实现思路与操作步骤。
1、给新用户发送邮件
1.1 配置邮箱
phpmailer
也是一种解决发送类,当然laravel
自带就能发邮件的类。
邮件发送类
1、文本
静态方法raw()
2、富文本
静态方法send()
实现发送邮件,必须一个发送邮件的账号,需要开启stmp协议,现在主流的邮件服务器都是支持的。
stmp默认端口25。但是默认没有打开,需要使用时自行打开。
以qq邮箱为例:https://mail.qq.com
1.2 配置laravel发送邮件配置
配置文件.env
1.3 测试发邮件
1、文本文件
// 发送邮件
Route::get('user/email', function () {
\Mail::raw('测试一下发邮件', function (\Illuminate\Mail\Message $message) {
// 获取回调方法中的形参
dump(func_get_args());
// 发送谁
$message -> to('用户qq邮箱这边先写我们自己的供测试', 'Justin');
// 主题
$message -> subject('测试邮件');
});
});
浏览器搜索栏重新输入http://laravelproject.com/admin/user/email
效果:
2、富文本文件
UserController.php
控制器代码:
<?php
// 后台用户管理
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use Faker\Provider\Base;
use App\Models\User;
use Mail;
use Illuminate\Mail\Message;
class UserController extends BaseController
{
// 用户列表
public function index() {
// echo $this->pagesize;
// 分页 withTrashed()显示所有的,包括已经进行了软删除的
$data = User::orderBy('id', 'desc') -> withTrashed() -> paginate($this->pagesize);
return view('admin.user.index', compact('data'));
}
// 用户增加显示
public function add() {
return view('admin.user.add');
}
// 用户添加处理
public function create(Request $request) {
$this->validate($request, [
// 唯一性验证
'username' => 'required|unique:users,username',
// 'account' => 'required',
'phone' => 'phone',
'email' => 'required',
'password' => 'required|confirmed',
]);
// dump($request -> all());
// 获取表单数据
$post = $request -> except(['_token', 'password_confirmation']);
// 添加用户入库
$userModel = User::create($post);
// dump($userModel);
// 密码
$pwd = $post['password'];
// 发邮件给用户 (匿名函数传入外部变量 用use)
Mail::send('mail.useradd', compact('userModel', 'pwd'), function(Message $message) use ($userModel){
// 发给谁
$message ->to($userModel -> email);
// 主题
$message -> subject('开通账户邮件通知');
});
// 跳转到列表页
return redirect(route('admin.user.index')) -> with('success', '添加用户成功');
}
// 删除用户操作
public function del(int $id) {
// 软删除
User::find($id) -> delete();
// 强制删除 在配置了软删除的时候,真实的删除操作
// User::find($id) -> forceDelete();
return ['status' => 0, 'msg' => '删除成功'];
}
// 恢复用户
public function restore(int $id) {
// 还原
User::onlyTrashed() -> where('id', $id) -> restore();
return redirect(route('admin.user.index')) -> with('success', '还原成功');
}
// 全选删除用户
public function delall (Request $request) {
$ids = $request -> get('id');
User::destroy($ids);
return ['status' => 1, 'msg' => '全选删除成功'];
}
}
useradd.blade.php
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.jt {
color: #808080;
}
</style>
</head>
<body>
<div class="jt">
<div>您的账号:{{$userModel -> username}}</div>
<div>您的密码:{{$pwd}}</div>
<div>您的手机号:{{$userModel -> phone}}</div>
</div>
</body>
</html>
我们去添加一名新用户,会发现邮箱也发过来了:
在学习php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。