ThinkPHP框架实现的邮箱激活功能示例


Posted in PHP onJune 15, 2018

本文实例讲述了ThinkPHP框架实现的邮箱激活功能。分享给大家供大家参考,具体如下:

配置框架采用ThinkPHP3.1框架,如下所示:

配置过程图:

ThinkPHP框架实现的邮箱激活功能示例

1.修改配置如下:

<?php
return array(
  //'配置项'=>'配置值'
    'MAIL_ADDRESS'=>'shcg666@sohu.com', // 邮箱地址
    'MAIL_SMTP'=>'smtp.sohu.com', // 邮箱SMTP服务器
    'MAIL_LOGINNAME'=>'shcg666@sohu.com', // 邮箱登录帐号
    'MAIL_PASSWORD'=>'******', // 邮箱密码
);

2.在功能里面增加一个类

<?php
class EmailAction extends Action{
  /*
  * microtime() 函数返回当前 Unix 时间戳和微秒数。
  * mt_srand() 播种 Mersenne Twister 随机数生成器。从 PHP 4.2.0 版开始,seed 参数变为可选项,当该项为空时,会被设为随时数。
  * 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已自动完成。
  * pow — 指数表达式
  */
  //random()这个函数是我用来生成一个随机数的,$numeric = 0生成一个6位的大小写字母与数字混合的字符串。$numeric = 1生成一个6位数字的字符串
  public function random($length = 6 , $numeric = 0) {
  PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
  if($numeric) {
    $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
  } else {
    $hash = '';
    $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
    $max = strlen($chars) - 1;
    for($i = 0; $i < $length; $i++) {
      $hash .= $chars[mt_rand(0, $max)];
    }
  }
  return $hash;
  }
  //发送邮件的方法
  public function index(){
    //生成6位激活码
    $random = $this->random(6,0);
    //获取本网站的域名,域名在config里面配置下.
    //例如'domain' => 'http://write.blog.csdn.net',
    $domain = C('domain');
    //生成激活码模块地址
    $url = $domain.U("Home/Email/activate")."/?yam=$random";
    //将邮件地址和随机数放入session
    session("shcg666@sohu.com","$random");
    //发送邮件
    SendMail("shcg666@sohu.com","这是邮件标题","将此网址复制到浏览框$url");
  }
}
function SendMail($address,$title,$message){
  //引入文件
  vendor('PHPMailer.class#PHPMailer');
  require("phpmailer/class.phpmailer.php");
  require("phpmailer/class.smtp.php");
  //实例化邮件类
  $mail=new PHPMailer();
  // 设置PHPMailer使用SMTP服务器发送Email
  $mail->IsSMTP();
  // 设置邮件的字符编码,若不指定,则为'UTF-8'
  $mail->CharSet='UTF-8';
  // 添加收件人地址,可以多次使用来添加多个收件人
  $mail->AddAddress($address);
  // 设置邮件正文
  $mail->Body=$message;
  // 设置邮件头的From字段。//发件人
  $mail->From=C('MAIL_ADDRESS');
  // 设置发件人名字
  $mail->FromName='LilyRecruit';
  // 设置邮件标题
  $mail->Subject=$title;
  // 设置SMTP服务器。
  $mail->Host=C('MAIL_SMTP');
  // 设置为"需要验证"
  $mail->SMTPAuth=true;
  // 设置用户名和密码。
  $mail->Username=C('MAIL_LOGINNAME');
  $mail->Password=C('MAIL_PASSWORD');
  // 发送邮件。
  return($mail->Send());
}

3.导入的文件

在网上下载PHPMailer包将class.smtp.php和class.phpmailer.php无需任何改动,直接复制进来即可。

class.smtp.php文件点击此处本站下载

class.phpmailer.php文件完整实例代码点击此处本站下载

配置完成,具体的处理方式需要进一步改动。

4.常见邮件服务器(接收服务器和发送邮件服务器)地址

腾讯QQ邮箱
接收服务器:pop.qq.com
发送服务器:smtp.qq.com

网易126邮箱
接收服务器:pop3.126.com
发送服务器:smtp.126.com

网易163免费邮
接收服务器:pop.163.com
发送服务器:smtp.163.com

网易163VIP邮箱
接收服务器:pop.vip.163.com
发送服务器:smtp.vip.163.com

网易188财富邮
接收服务器:pop.188.com
发送服务器:smtp.188.com

网易yeah.net邮箱
接收服务器:pop.yeah.net
发送服务器:smtp.yeah.net

网易netease.com邮箱
接收服务器:pop.netease.com
发送服务器:smtp.netease.com

新浪收费邮箱
接收服务器:pop3.vip.sina.com
发送服务器:smtp.vip.sina.com

新浪免费邮箱
接收服务器:pop3.sina.com.cn
发送服务器:smtp.sina.com.cn

搜狐邮箱
接收服务器:pop3.sohu.com
发送服务器:smtp.sohu.com

21cn快感邮
接收服务器:vip.21cn.com
发送服务器:vip.21cn.com

21cn经济邮
接收服务器:pop.163.com
发送服务器:smtp.163.com

tom邮箱
接收服务器:pop.tom.com
发送服务器:smtp.tom.com

263邮箱
接收服务器:263.net
发送服务器:smtp.263.net

网易163.com邮箱
接收服务器:rwypop.china.com
发送服务器:rwypop.china.com

雅虎邮箱
接收服务器:pop.mail.yahoo.com
发送服务器:smtp.mail.yahoo.com

Gmail邮箱
接收服务器:pop.gmail.com
发送服务器:smtp.gmail.com

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php简单静态页生成过程
Mar 27 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP函数篇之掌握ord()与chr()函数应用
Dec 05 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
php实现分页功能的详细实例方法
Sep 29 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
基于swoole实现多人聊天室
Jun 14 #PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 #PHP
php实现微信公众平台发红包功能
Jun 14 #PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 #PHP
thinkPHP框架实现多表查询的方法
Jun 14 #PHP
php微信开发之关注事件
Jun 14 #PHP
thinkPHP框架动态配置用法实例分析
Jun 14 #PHP
You might like
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
php curl常用的5个经典例子
2017/01/20 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
超市工作总结范文2014
2014/12/19 职场文书
中学生自我评价2015
2015/03/03 职场文书
征求意见函
2015/06/05 职场文书
《猴王出世》教学反思
2016/02/23 职场文书