使用Laravel发送账号激活邮件

李文轩
2023-12-01

首先我们要配置邮件参数:

1 Laravel中在config/mail.php中修改:

'host' => 'smtp.163.com',
'port' => 25,
'from' => array('address' => '***@163.com', 'name' => '测试'),
'username' => '***@163.com', // 注意,这里必须和上一行配置里面的邮件地址一致
'password' => '****',


2 在regController.php中先引入use \Mail;

传入 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并判断是否验证成功返回提示成功的视图


 类似资料: