php实现邮箱验证的方法

  介绍

这篇文章给大家分享的是有关php实现邮箱验证的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

php实现邮箱验证的方法:首先下载phpMailer,然后解压到项目根目录下,接着需要一台邮件服务器;最后在“config . php”中配置邮箱相关的信息并创建用于发送邮件的公用方法即可。

一、介绍

需求是用户在注册时填写电子邮件、注册后,需要到邮箱验证后才能登陆。

二,实现

验证流程,注册成功后,为用户生成一个验证码;将验证码以连接方式发到用户邮箱;用户点击连接将验证码发回网站;网站验证这个验证码是否是为这个用户生成的验证码;帐号需要在24小时内验证,否则帐号失效。

1。准备工作

需要添加phpMailer类来发邮件。下载phpMailer,然后解压到项目根目录下。

发邮件使用smtp协议,端口是25;收邮件,使用pop3协议,端口号是110,还需要一台邮件服务器。可以自己搭建,也可以使用第三方的。使用第三方的邮件服务器需要在第三方注册一个帐号。登陆开启smtp协议。

在配置。php中配置邮箱相关的信息。

 & # 39;电子邮件# 39;=比;阵列(
  
  & # 39;主机# 39;=比;& # 39;smtp.163.com& # 39;
  
  & # 39;用户# 39;=比;& # 39;youxiangzhanghao& # 39;
  
  & # 39;密码# 39;=比;& # 39;密码# 39;//此处的密码为用户邮箱在开启smtp时设置的授权密码。
  
  ),

2。,创建用于发送邮件的公用方法

/* *      *发送邮件的方法      */functionsendMail美元($,$标题、内容)      {      require_once (& # 39;。/PHPMailer-5.2.14 class.smtp.php& # 39;);      require_once (& # 39;。/PHPMailer-5.2.14 class.phpmailer.php& # 39;);      邮件=new PHPMailer美元();//设置为发送邮件      邮件→美元IsSMTP ();//是否允许发送html代码为邮件内容      邮件→美元IsHTML(真正的);      邮件→美元CharSet=& # 39; utf - 8 # 39;;//是否需要身份验证      邮件→美元SMTPAuth=true;//邮件服务器的帐号信息      $ mailConfig=C(& # 39;电子邮件# 39;);      从邮件→美元=$ mailConfig[& # 39;用户# 39;]强生# 39;@163.com& # 39;;      邮件→美元FromName=$ mailConfig[& # 39;用户# 39;];      邮件→美元主机=$ mailConfig[& # 39;主机# 39;];      美元邮件→用户名=$ mailConfig[& # 39;用户# 39;];      邮件→美元密码=$ mailConfig[& # 39;密码# 39;];//发邮件的端口号      邮件→美元端口=25;//收件的人      邮件→美元AddAddress(美元);//邮件标题      邮件→美元=$主题标题;//邮件内容      邮件→美元身体=$内容;      返回(邮件→美元送());      }

在控制器的首页方法中测试

//测试发送邮件      var_dump (sendMail (& # 39; haha@163.com& # 39;, & # 39; phptestemail& # 39;, & # 39; & lt; https://www.yisu.com/zixun/a href=" http://www.phptest.com "> hahahah '));

3。修改会员表,添加邮件字段和验证码字段

邮件varchar (150) not null评论& # 39;邮箱& # 39;,
  
  email_chkcode char (32) not null默认& # 39;& # 39;评论& # 39;邮箱验证码& # 39;,
  
  email_chkcode_time int unsigned not null评论& # 39;邮箱验证码生成时间& # 39;,
  
  关键email_chkcode (email_chkcode) 

4。修改注册,必须填邮件

修改注册表单,添加邮件字段;修模改成员型,允许插入邮件字段,并增加邮件字段为电子邮件的验证规则。

5。注册之前生成邮件验证码

在_before_insert()方法中

//生成邮件验证码      $ data [& # 39; email_chkcode& # 39;]=md5(函数());      $ data [& # 39; email_chkcode_time& # 39;]=();

6。,,,,注册之后将验证码发给用户邮箱

/* *      *注册后的钩子函数      */保护功能_after_insert(数据,美元选项)      {      $内容=盎队⒉?请点击以下完成验证:& lt; p> https://www.yisu.com/zixun/& lt; a href=' http://www.php2.com/eshop/index.php/Home/Member/email_chk/code/{$ data [' email_chkcode ']} ">请点击

";      sendMail ($ data['邮件'],“php2网站邮箱验证”,美元内容);      }

7。,,,,在成员控制器添加方法完成验证

php实现邮箱验证的方法