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

网络编程 2021-07-05 08:24www.168986.cn编程入门
这篇文章主要介绍了ThinkPHP框架实现的邮箱激活功能,结合实例形式分析了thinkPHP使用class.smtp.php及class.phpmailer.php类文件进行邮件发送实现激活功能的具体操作技巧,需要的朋友可以参考下

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

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

配置过程图

1.修改配置如下

<?php
return array(
  //'配置项'=>'配置值'
    'MAIL_ADDRESS'=>'shcg666@sohu.', // 邮箱地址
    'MAIL_SMTP'=>'smtp.sohu.', // 邮箱SMTP服务器
    'MAIL_LOGINNAME'=>'shcg666@sohu.', // 邮箱登录帐号
    '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.',
    $domain = C('domain');
    //生成激活码模块地址
    $url = $domain.U("Home/Email/activate")."/?yam=$random";
    //将邮件地址和随机数放入session
    session("shcg666@sohu.","$random");
    //发送邮件
    SendMail("shcg666@sohu.","这是邮件标题","将此网址复制到浏览框$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.
发送服务器smtp.qq.

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

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

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

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

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

网易ease.邮箱
接收服务器pop.ease.
发送服务器smtp.ease.

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

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

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

21快感邮
接收服务器.21.
发送服务器.21.

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

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

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

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

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

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

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》。

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

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by