thinkphp phpmailer邮箱验证
thinkphp 关于phpmailer的邮箱验证
一 、
登陆自己的邮箱,例如:qq邮箱。登陆qq邮箱在账户设置中开启smtp服务:

之后回发送一个授权码 , 这个授权码先保存下来,这个授权码在后面会用得到。
二、
使用composer 下载 phpmailer
在cmd中打开你的tp框架路径然后直接 输入 composer require phpmailer/phpmailer
之后你的第三方类库下面会多一个phpmailer文件夹,打开此文件夹;

然后将src的资源复制下来;
在tp框架的extends文件夹下面创建一个phpmailer文件夹;
把刚才复制的资源粘贴在此文件夹下面。

修改三个文件的命名空间: namespace phpmailer.
三、使用phpmailer
在tp框架下面的common.php里面写入:
<?php
function sendMail($mail , $to ,$title , $content)
{
try{
$mail->SMTPDebug = 0; //SMTP调试功能 0=关闭, 1=错误和消息 2=消息
$mail->isSMTP(); 设定使用SMTP服务;
$mail->CharSet = 'utf-8'; //邮件编码;
$mail->Host = 'smtp.qq.com'; //smtp服务器;
$mail->SMTPAuth = true; //启用smtp验证功能;
$mail->Username = '******@qq.com'; //SMTP服务器用户名;
$mail->Password = '**********'; //这个是你开始获取到的授权码;也可以是你的邮箱密码;
$mail->SMTPSecure = 'ssl'; //使用安全协议;
//recipitents //收件人信息设置
$mail->setForm('*******@qq.com' , '为了php'); //第一个参数是收件人邮箱 , 第二个参数是邮件主题;
$mail->addAddress($to); //传入发件人的邮箱地址;
//Content邮件内容
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = $content;
return $mail->send()
} catch (Exception $e){
echo 'Message could not sent.Mailer Error:',$email->ErrorInfo;
}
}
在 application conttoller 的index.php文件中 use phpmailer/PHPMaileron
<?php use app\index\controller;
use think\Controller;
use think\View;
use phpmailer\PHPMailer; class Index extends Controller
{
public $view;
public function __construct()
{
$this->view = new View;
}
public function index()
{
$this->view->fetch('index/index');
} public function sendemail()
{
$code = rand(10000 , 99999);
$data = array_values($_POST);
$user = implode('' , $data);
$emailuser = str_replace('' , '.' , $user);
$email = new PHPMailer(true);
$res = sendMail($mail , $emailuser , 'php真好玩' , '您好!感谢您成为[php真好玩成员] , <br />祝您玩的开心 , 玩的愉快!');
if($res){
return json(['status'=>1 , 'msg'=>'邮箱发送成功']);
} else {
return json(['status'=>0 , 'msg'=>'邮箱发送失败']);
}
}
}
controller 的view 文件下创建index文件夹 , 在index文件下写一个index.html文件;
<html>
<head>
<meta charset="utf-8" />
<title>index</title> </head>
<body>
<input type="text" placeholder="请输入邮箱" id="email">
<input type="button" id="btn" value="邮箱验证">
</body>
<script src="[这里引用你的jquery路径]"></script>
<script type="text/javascript">
$(function(){ $("#btn").click(function{ $.post(":url('index/index/sendemail')",
{"email":$("#email").val()},
function(data){
if(data.status){
alert(data.msg);
} else {
alert(data.msg);
}
})
}); }) </script>
</html>
thinkphp phpmailer邮箱验证的更多相关文章
- ThinkPHP 3.2 用户注册邮箱验证帐号找回密码
一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...
- (进阶篇)PHP实现用户注册后邮箱验证,激活帐号
我们在很多网站注册会员时,注册完成后,系统会自动向用户的邮箱发送一封邮件,这封邮件的内容就是一个URL链接,用户需要点击打开这个链接才能激活之前在该网站注册的帐号.激活成功后才能正常使用会员功能. 本 ...
- PHP用户注册邮箱验证激活帐号
我们在很多网站注册会员时,注册完成后,系统会自动向用户的邮箱发送一封邮件,这封邮件的内容就是一个URL链接,用户需要点击打开这个链接才能激活之前在该网站注册的帐号.激活成功后才能正常使用会员功能. 本 ...
- thinkphp表单验证
之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...
- Thinkphp+AJAX动态验证用户输入是否合法
遇到用户注冊等情况时.假设等用户输入全部信息,点击注冊button提交后.再验证输入是否正确,体验非常不好,并且非常浪费用户的时间,添加注冊成本,这里提供一个样例,演示了怎么使用ajax进行单步验证, ...
- ThinkPHP的自动验证常用的正则
ThinkPHP的自动验证常用的正则 ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function. callback.confirm.equal.unique和regex, ...
- TP框架---thinkphp表单验证
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面 ...
- android 自定义view -- 实现自定义 邮箱验证的Edittext
//onFinishInflate 当View中所有的子控件均被映射成xml后触发 /** * 实现自定义 实现邮箱验证的EidtText */public class CustomEditText ...
- [麦先生]在Laravel框架里实现邮箱验证---发送邮件
在经过一段时间的使用后,发现在项目中很多地方需要用到用户验证,以短信验证和邮箱验证为主流趋势,小麦总结了如果在Laravel框架中实现发送邮件功能,以后会陆续更上如何实现短信验证..... 在.env ...
随机推荐
- 性能优化小Tips
Performance Tips 这篇文章主要是介绍了一些小细节的优化技巧,当这些小技巧综合使用起来的时候,对于整个App的性能提升还是有作用的,只是不能较大幅度的提升性能而已.选择合适的算法与数据结 ...
- Android.mk添加第三方jar包
最近引入第三方的jar包进工程,发现光红色的两条并不起作用,加入include $(BUILD_MULTI_PREBUILT) 才起作用,而且顺序很重要,在这里把我参考的两个例子都列出来. 以下为引用 ...
- Catia 二次开发资料(转)
Catia 二次开发 CATIA V5在开发之初就遵循面向对象的设计思想(OO),构建了完全基于组件的体系结构(PPR: Products,Process,Resource),有效地解决了维护.管理. ...
- MySQL Database on Azure 支持 5.7 版本啦!
MySQL Database on Azure 目前已经全面开放对 5.7 的支持.您可以通过管理门户,在 MySQL 数据库服务器创建时选择 5.7 版本进行体验.MySQL 5.7 版本目前是 M ...
- Python装饰器AOP 不定长参数 鸭子类型 重载(三)
1 可变长参数与关键字参数 *args代表任意长度可变参数 **kwargs代表关键字参数 用*args和**kwargs只是为了方便并没有强制使用它们. 缺省参数即是调用该函数时,缺省参数的值若未被 ...
- Python3基本数据类型(一、数字类型)
第一次写博客,感觉心情比较紧张,有一种要上台演讲的紧张感(虽然可能大概也许不会有人看).在此立个flag,以后每个学习阶段都要写一篇博客,来记录自己学习成长的这段日子.Fighting! 废话不多说, ...
- SQA和测试
一.SQA计划 (1)软件工程:设计出云医院页面和其功能. (2)质量保证:进行需求分析,使用户确信产品或服务能满足规定的质量要求. (3)质量控制:采取不断的调试完善代码和程序确保产品质量. (4) ...
- Android面试问题收集总结
转载请标明出处: http://www.cnblogs.com/why168888/p/6405204.html 本文出自:[Edwin博客园] Android基础 View的绘制流程:自定义View ...
- QT学习之文件系统读写类
#QT学习之文件系统读写类 QIODevice QFileDevice QBuffer QProcess 和 QProcessEnvironment QFileDevice QFile QFileIn ...
- Android(java)学习笔记50:通过反射获取成员变量和成员方法并且使用
1. 反射获取成员变量并且使用: (1)获取字节码文件对象: Class c = Class.forName("cn.itcast_01.Person"); (2) ...