欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-11 21:40:22
本文实例讲述了thinkphp框架实现的邮箱激活功能。分享给大家供大家参考,具体如下: 配置框架采用thinkphp3.1框架,如下所示: 配置过程图: 1.修改...

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《thinkphp入门教程》、《thinkphp模板操作技巧总结》、《thinkphp常用方法总结》、《codeigniter入门教程》、《ci(codeigniter)框架进阶教程》、《zend framework框架入门教程》及《php模板技术总结》。

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