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邮箱验证的更多相关文章

  1. ThinkPHP 3.2 用户注册邮箱验证帐号找回密码

    一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...

  2. (进阶篇)PHP实现用户注册后邮箱验证,激活帐号

    我们在很多网站注册会员时,注册完成后,系统会自动向用户的邮箱发送一封邮件,这封邮件的内容就是一个URL链接,用户需要点击打开这个链接才能激活之前在该网站注册的帐号.激活成功后才能正常使用会员功能. 本 ...

  3. PHP用户注册邮箱验证激活帐号

    我们在很多网站注册会员时,注册完成后,系统会自动向用户的邮箱发送一封邮件,这封邮件的内容就是一个URL链接,用户需要点击打开这个链接才能激活之前在该网站注册的帐号.激活成功后才能正常使用会员功能. 本 ...

  4. thinkphp表单验证

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

  5. Thinkphp+AJAX动态验证用户输入是否合法

    遇到用户注冊等情况时.假设等用户输入全部信息,点击注冊button提交后.再验证输入是否正确,体验非常不好,并且非常浪费用户的时间,添加注冊成本,这里提供一个样例,演示了怎么使用ajax进行单步验证, ...

  6. ThinkPHP的自动验证常用的正则

    ThinkPHP的自动验证常用的正则   ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function. callback.confirm.equal.unique和regex, ...

  7. TP框架---thinkphp表单验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面 ...

  8. android 自定义view -- 实现自定义 邮箱验证的Edittext

    //onFinishInflate 当View中所有的子控件均被映射成xml后触发 /** * 实现自定义 实现邮箱验证的EidtText */public class CustomEditText ...

  9. [麦先生]在Laravel框架里实现邮箱验证---发送邮件

    在经过一段时间的使用后,发现在项目中很多地方需要用到用户验证,以短信验证和邮箱验证为主流趋势,小麦总结了如果在Laravel框架中实现发送邮件功能,以后会陆续更上如何实现短信验证..... 在.env ...

随机推荐

  1. Oracle VM virtualBox -Centos6.4 安装后没有网解决方法

    1.先修改Oracle VM virtualBox 的网络配置 2.然后启动centos输入:  dhclient eth0 3.然后如果没报错的话  输入: ifconfig  就可以查看到ip地址 ...

  2. mongodb 3.4 学习 (六)监控

    mongostat mongotop db.currentOp db.serverStatus() db.stats() db.collection.stats() # 复制集监控 rs.status ...

  3. when create a table,then show error ora-00952 tablespace tsb_1 not exist

    QUESTION:When create a table,then show error ora-00952 tablespace tsb_1 not exist. STEP: 1.select us ...

  4. Linux --防火墙(一)

    基本组成 表: filter:用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包.表内包含三个链,即INOUT.FORWARD.OUTPUT nat表:主要用来修改数据包的IP地址.端口号 ...

  5. wmware共享磁盘redhat 5.8挂载问题

    需要修改参数vi /etc/sysconfig/selinux将SELINUX=enforcing改为SELINUX=disabled,这样重启服务器则不会启动selinux服务 不然重启虚拟机后共享 ...

  6. 去掉video视频播放器下的下载按钮

    去掉video视频播放器下的下载按钮: video::-internal-media-controls-download-button { display:none; } video::-webkit ...

  7. maven学习记录四——私服 nexus

    8       私服 nexus 安装nexus 启动服务 启动失败的解决方法: 登录nexus 用户名/密码  admin/admin123 仓库类型 Virtual   虚拟仓库 Proxy  代 ...

  8. 【洛谷P3959】[NOIP2017] 宝藏

    宝藏 题目链接 首先,打了一个prim,得了45分 #include<iostream> #include<cstring> #include<cstdio> #i ...

  9. 【luogu P3373 线段树2】 模板

    题目链接:https://www.luogu.org/problemnew/show/P3373 lazy标记两个,先乘后加 #include <iostream> #include &l ...

  10. 推荐几个Mac/Linux下比较好用的工具

    1.Tmux,连接开发机可以让在任务在开发机一直执行,不用nohup &这种了也相对稳定,还有session可以记录当时的状态. 常用命令: tmux new -s name 指定名字开启一个 ...