如何通过TP3.X实现用户注册邮箱的有效验证?
- 内容介绍
- 文章标签
- 相关推荐
本文共计603个文字,预计阅读时间需要3分钟。
用户注册邮箱验证(TP3.X):使用说明:发送邮件使用PHPMailer类1. 发送邮件函数应用公共文件----------------------------------------------邮件发送方法:使用PHPMailer类@param $to 目标邮箱@param $param 参数
用户注册邮箱验证(TP3.X)/**使用说明:发送邮件使用phPHPMailer类 1.发送邮件函数 // 应用公共文件 /**---------------------------------------------- * 邮件发送方法 * 使用PHPMailer类 * @param $to 目标 * @param $title 标题 * @param $content 内容 */ function sendMail($to,$title,$content){ // 引入PHPMailer的类文件 require_once (EXTEND_PATH.'/org/PHPMailer_v5.1/class.phpmailer.php'); require_once(EXTEND_PATH.'/org/PHPMailer_v5.1/class.smtp.php'); // 读取常用的配置 $email_from=config('email.EMAIL_FROM'); $email_from_name=config('email.EMAIL_FROM_NAME'); $email_uname=config('email.EMAIL_UNAME'); $email_pwd=config('email.EMAIL_PWD'); $email_port=config('email.EMAIL_PORT'); $email_host=config('email.EMAIL_HOST'); if(empty($email_host)||empty($email_uname)||empty($email_pwd)||empty($email_from)){ return ['status'=>'error','message'=>'邮箱格式配置不完整']; } // 实例化PHPMailer类 $mail = new PHPMailer(); // 设置为要发邮件 $mail->IsSMTP(); // 是否允许发送HTML代码做为邮件的内容 $mail->IsHTML(TRUE); $mail->CharSet='UTF-8'; // 是否需要身份验证 $mail->SMTPAuth=TRUE; /* 邮件服务器上的账号是什么 -> 到163注册一个账号即可 */ $mail->From=$email_from; $mail->FromName=$email_from_name; $mail->Host=$email_host; $mail->Username=$email_uname; $mail->Password=$email_pwd; $mail->Port = $email_port; // 收件人 $mail->AddAddress($to); // 邮件标题 $mail->Subject=$title; // 邮件内容 $mail->Body=$content; //发送邮件,并返回状态代码 if($mail->Send()){ return ['status'=>'success','message'=>'邮件发送成功']; }else{ $emailError=$mail->ErrorInfo; return ['status'=>'error','message'=>$emailError]; } } 2.模型 //用户添加成功后生产唯一的验证码,存入数据库并发送到注册邮箱 // 插入成功后的回调方法 protected function _after_insert($data, $options) { $where['id']=$data['id']; // 生成一个唯一的随机数 $data['email_code']=md5(uniqid()); // 把随机数写入数据库 $this->where($where)->setField($data); $url="localhost/oschina/Addons_Project/Addons/index.php/user/regist/emailCheck/uid/".$where['id'].'/ecode/'.$data['email_code']; $title="简繁中国用户注册验证"; $toeamil=$data['user_email']; $content="欢迎您注册简繁中国请点击激活用户,如果链接失效,请手动访问{$url}地址进行激活"; return sendMail($toeamil,$title,$content); } 3.控制器 /** * 用户注册邮件验证 比对数据和邮箱的验证值是否一致,一致则改变用户数据库的状态码 */ public function emailCheck(){ $where['id']=I('get.uid'); $ecode=I('get.ecode'); $data=$this->_model->lists($where); if($ecode==$data[0]['email_code']){ $change['email_check']=1; $change['email_code']=''; $res=$this->_model->where($where)->setField($change); if($res){ $this->success('用户激活成功','User/User/index'); }else{ $this->error('用户激活失败'.$this->_model->getError()); } } }
本文共计603个文字,预计阅读时间需要3分钟。
用户注册邮箱验证(TP3.X):使用说明:发送邮件使用PHPMailer类1. 发送邮件函数应用公共文件----------------------------------------------邮件发送方法:使用PHPMailer类@param $to 目标邮箱@param $param 参数
用户注册邮箱验证(TP3.X)/**使用说明:发送邮件使用phPHPMailer类 1.发送邮件函数 // 应用公共文件 /**---------------------------------------------- * 邮件发送方法 * 使用PHPMailer类 * @param $to 目标 * @param $title 标题 * @param $content 内容 */ function sendMail($to,$title,$content){ // 引入PHPMailer的类文件 require_once (EXTEND_PATH.'/org/PHPMailer_v5.1/class.phpmailer.php'); require_once(EXTEND_PATH.'/org/PHPMailer_v5.1/class.smtp.php'); // 读取常用的配置 $email_from=config('email.EMAIL_FROM'); $email_from_name=config('email.EMAIL_FROM_NAME'); $email_uname=config('email.EMAIL_UNAME'); $email_pwd=config('email.EMAIL_PWD'); $email_port=config('email.EMAIL_PORT'); $email_host=config('email.EMAIL_HOST'); if(empty($email_host)||empty($email_uname)||empty($email_pwd)||empty($email_from)){ return ['status'=>'error','message'=>'邮箱格式配置不完整']; } // 实例化PHPMailer类 $mail = new PHPMailer(); // 设置为要发邮件 $mail->IsSMTP(); // 是否允许发送HTML代码做为邮件的内容 $mail->IsHTML(TRUE); $mail->CharSet='UTF-8'; // 是否需要身份验证 $mail->SMTPAuth=TRUE; /* 邮件服务器上的账号是什么 -> 到163注册一个账号即可 */ $mail->From=$email_from; $mail->FromName=$email_from_name; $mail->Host=$email_host; $mail->Username=$email_uname; $mail->Password=$email_pwd; $mail->Port = $email_port; // 收件人 $mail->AddAddress($to); // 邮件标题 $mail->Subject=$title; // 邮件内容 $mail->Body=$content; //发送邮件,并返回状态代码 if($mail->Send()){ return ['status'=>'success','message'=>'邮件发送成功']; }else{ $emailError=$mail->ErrorInfo; return ['status'=>'error','message'=>$emailError]; } } 2.模型 //用户添加成功后生产唯一的验证码,存入数据库并发送到注册邮箱 // 插入成功后的回调方法 protected function _after_insert($data, $options) { $where['id']=$data['id']; // 生成一个唯一的随机数 $data['email_code']=md5(uniqid()); // 把随机数写入数据库 $this->where($where)->setField($data); $url="localhost/oschina/Addons_Project/Addons/index.php/user/regist/emailCheck/uid/".$where['id'].'/ecode/'.$data['email_code']; $title="简繁中国用户注册验证"; $toeamil=$data['user_email']; $content="欢迎您注册简繁中国请点击激活用户,如果链接失效,请手动访问{$url}地址进行激活"; return sendMail($toeamil,$title,$content); } 3.控制器 /** * 用户注册邮件验证 比对数据和邮箱的验证值是否一致,一致则改变用户数据库的状态码 */ public function emailCheck(){ $where['id']=I('get.uid'); $ecode=I('get.ecode'); $data=$this->_model->lists($where); if($ecode==$data[0]['email_code']){ $change['email_check']=1; $change['email_code']=''; $res=$this->_model->where($where)->setField($change); if($res){ $this->success('用户激活成功','User/User/index'); }else{ $this->error('用户激活失败'.$this->_model->getError()); } } }

