首先我们要配置邮件参数:
1 Laravel中在config/mail.php中修改:
'host' => 'smtp.163.com',
'port' => 25,
'from' => array('address' => '***@163.com', 'name' => '测试'),
'username' => '***@163.com', // 注意,这里必须和上一行配置里面的邮件地址一致
'password' => '****',
传入 send
方法的
第一个参数为邮件视图的名称。
第二个是传递给该视图的数据,通常是一个关联式数组,让视图可通过 $key
来取得数据对象。
第三个参数是一个闭包,可以对 message 进行各种配置。
//邮箱激活操作**************************
$uid = $user2->id; //获取最新插入的id
$activationcode = md5($user2.time()); //获取邮箱验证时的随机串
$data = ['email'=>$email, 'name'=>$username, 'uid'=>$uid, 'activationcode'=>$activationcode];
Mail::send('activemail', $data, function($message) use($data)//use用于引入function外面的数据 activemail是指定的视图
{
$message->to($data['email'], $data['name'])->subject('欢迎注册XXX账号');
});
//邮箱激活操作**************************
3 在activemail.blade.php中:
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
尊敬的 {{ $name }} 用户,
<br>
<a href="{{ URL(<span style="color:#ff0000;">'mailBox?uid='.$uid.'&activationcode='.$activationcode</span>) }}" target="_blank">
请点击此处激活XXX账号
</a>
</body>
</html>
{{ $name }}是regController.php传递过来
4 在 mailBox 对应的控制器中获取uid与activationcode并判断是否验证成功返回提示成功的视图