介绍
这篇文章给大家分享的是有关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实现邮箱验证的方法