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实现多级树型菜单
Oct 09 PHP
表单复选框向PHP传输数据的代码
Nov 13 PHP
PHP 工厂模式使用方法
May 18 PHP
flash用php连接数据库的代码
Apr 21 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python netmiko模块的使用
2020/02/14 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
Python中过滤字符串列表的方法
2020/12/22 Python
PyQt实现计数器的方法示例
2021/01/18 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
设计模式的基本要素是什么
2014/04/21 面试题
40岁生日感言
2014/02/15 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
美术指导求职信
2014/03/17 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
文明礼仪主题班会
2015/08/13 职场文书
对象析构函数__del__在Python中何时使用
2022/03/22 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技