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

 4234

这篇文章主要介绍了ThinkPHP框架实现的邮箱激活功能,结合实例形式分析了thinkPHP使用class.smtp.php及class.phpmailer.php类文件进行邮件发送实现激活功能的具体操作技巧,需要的朋友可以参考下

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

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

配置过程图:


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


1、修改配置如下:

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

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

  1. <?php
  2. class EmailAction extends Action{
  3.     /*
  4.      * microtime() 函数返回当前 Unix 时间戳和微秒数。
  5.      * mt_srand() 播种 Mersenne Twister 随机数生成器。从 PHP 4.2.0 版开始,seed 参数变为可选项,当该项为空时,会被设为随时数。
  6.      * 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已自动完成。
  7.      * pow — 指数表达式
  8.      */
  9.     //random()这个函数是我用来生成一个随机数的,$numeric = 0生成一个6位的大小写字母与数字混合的字符串。$numeric = 1生成一个6位数字的字符串
  10.     public function random($length = 6 , $numeric = 0) {
  11.         PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
  12.         if($numeric) {
  13.             $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
  14.         } else {
  15.             $hash = '';
  16.             $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
  17.             $max = strlen($chars) - 1;
  18.             for($i = 0; $i < $length; $i++) {
  19.                 $hash .= $chars[mt_rand(0, $max)];
  20.             }
  21.         }
  22.         return $hash;
  23.     }
  24.     //发送邮件的方法
  25.     public function index(){
  26.         //生成6位激活码
  27.         $random = $this->random(6,0);
  28.         //获取本网站的域名,域名在config里面配置下.
  29.         //例如'domain' => 'http://write.blog.csdn.net',
  30.         $domain = C('domain');
  31.         //生成激活码模块地址
  32.         $url = $domain.U("Home/Email/activate")."/?yam=$random";
  33.         //将邮件地址和随机数放入session
  34.         session("shcg666@sohu.com","$random");
  35.         //发送邮件
  36.         SendMail("shcg666@sohu.com","这是邮件标题","将此网址复制到浏览框$url");
  37.     }
  38. }
  39. function SendMail($address,$title,$message){
  40.     //引入文件
  41.     vendor('PHPMailer.class#PHPMailer');
  42.     require("phpmailer/class.phpmailer.php");
  43.     require("phpmailer/class.smtp.php");
  44.     //实例化邮件类
  45.     $mail=new PHPMailer();
  46.     // 设置PHPMailer使用SMTP服务器发送Email
  47.     $mail->IsSMTP();
  48.     // 设置邮件的字符编码,若不指定,则为'UTF-8'
  49.     $mail->CharSet='UTF-8';
  50.     // 添加收件人地址,可以多次使用来添加多个收件人
  51.     $mail->AddAddress($address);
  52.     // 设置邮件正文
  53.     $mail->Body=$message;
  54.     // 设置邮件头的From字段。//发件人
  55.     $mail->From=C('MAIL_ADDRESS');
  56.     // 设置发件人名字
  57.     $mail->FromName='LilyRecruit';
  58.     // 设置邮件标题
  59.     $mail->Subject=$title;
  60.     // 设置SMTP服务器。
  61.     $mail->Host=C('MAIL_SMTP');
  62.     // 设置为"需要验证"
  63.     $mail->SMTPAuth=true;
  64.     // 设置用户名和密码。
  65.     $mail->Username=C('MAIL_LOGINNAME');
  66.     $mail->Password=C('MAIL_PASSWORD');
  67.     // 发送邮件。
  68.     return($mail->Send());
  69. }


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

class.smtp.php文件点击链接下载(ThinkPHP框架实现的邮箱激活功能示例class.smtp.php)。

class.phpmailer.php文件完整实例代码点击链接下载(ThinkPHP框架实现的邮箱激活功能示例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



本文网址:https://www.zztuku.com/index.php/detail-8941.html
站长图库 - ThinkPHP框架实现的邮箱激活功能示例
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐