基于ThinkPHP3.2的邮箱激活

来源:互联网 发布:巨人网络招聘会计 编辑:程序博客网 时间:2024/05/01 17:04

第一步:下载PHPMailer安装包 解压后把PHPMailer文件夹在ThinkPHP\Library\Vendor下

第二步: APP\Common\Common 下建一个function.php公共函数库

function.php代码如下:

<?php//定义一个mail发送函数function sendMail($address,$title,$message){//导入mail类文件vendor('PHPMailer.class#phpmailer'); //Thinkphp的导入方式,放在/ThinkPHP/Extend/Vendor///创建mail对象$mail = new PHPMailer();$mail->IsSMTP(); //设置使用SMTP服务器发送$mail->Host = "smtp.163.com";  //设置163邮箱服务 $mail->SMTPAuth = true;     // 设置需要验证$mail->Username = "wp6418@163.com";  // 发件人使用邮箱$mail->Password = "****"; // 设置发件人密码$mail->From = "wp6418@163.com";// 发件人邮箱$mail->FromName = "王盼"; //发送者名称$mail->AddAddress($address); // 添加发送地址$mail->IsHTML(true); //指定支持html格式$mail->CharSet="UTF-8";$mail->Subject = $title;$mail->Body = $message;if($mail->Send()){  return true;}else{  return false;}}

本来想把对应的参数写在配置文件中,但是tp3.2是先加载公共函数库然后在加载配置文件的额。

三、如果是注册 在RegisterController.class.php

public function register(){$m = M("Users");$email = $_POST["email"];$userpass = md5($_POST['userpass']);$_POST["password"] = $userpass;$addtime = time();$_POST["addtime"] = time();$_POST["status"] = 0;$_POST["info"] = md5(time()).time(); //随意定义一个激活账号使用码。$info =  md5(time()).time();if(!$m->create()){$this->error($m->getError());}if($m->add()){$message=<<<str你好!{$email}<h2>欢迎注册本网站</h2>激活账号请点击如下地址:<br/><br/><a href="http://localhost/PHPMail/index.php/Home/Info/check/mail/{$email}/info/{$info}">http://localhost/PHPMail/index.php/Home/Info/check/mail/{$email}/info/{$info}</a><br/><br/>www.***.com str;sendMail("{$email}","激活账号",$message);$this->success("注册成功!",U('Info/index'));}else{$this->error("注册失败!原因:".$m->getError());}}

第四步 验证激活,此时邮箱已经收到验证码 只需直接访问就行了 InfoController控制器下

public function check(){$email = $_GET["mail"];$m = M("Users");$data["status"]=1;$d = $m->where("email='{$email}'")->save($data);if($d){$this->display("info");  //显示激活信息}}

第五步 进行登录

public function login(){  $m = M("Users");  $email = $_POST['email'];  $userpass = $_POST['userpass'];  $user = $m->where("email='{$email}'")->select(); //判断账号是否存在  if($user){ //判断密码是否正确  if($user[0]['password']==md5($userpass)){  //是否已被激活 if($user[0]['status']==1){  //echo "登陆成功!";  $_SESSION["email"]=$user[0]['email']; //将账号信息放入session中   $this->success("登录成功!",U("Index/index")); }else{ $this->error("登录失败!");  } }} }
0 0
原创粉丝点击