ThinkPHP框架--邮箱激活功能

来源:互联网 发布:九次方大数据最新新闻 编辑:程序博客网 时间:2024/06/06 22:20

配置框架采用ThinkPHP3.1框架,如下所示:
配置过程图:
这里写图片描述

1.修改配置如下:<?phpreturn 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.phpclass.phpmailer.php无需任何改动,直接复制进来即可。class.smtp.php的下载地址:http://url.cn/aeU76Xclass.phpmailer.php的下载地址:http://url.cn/Zr4MDN配置完成,具体的处理方式需要进一步改动。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.com21cn快感邮接收服务器:vip.21cn.com发送服务器:vip.21cn.com21cn经济邮接收服务器:pop.163.com发送服务器:smtp.163.comtom邮箱接收服务器:pop.tom.com发送服务器:smtp.tom.com263邮箱接收服务器:263.net发送服务器:smtp.263.net网易163.com邮箱接收服务器:rwypop.china.com发送服务器:rwypop.china.com雅虎邮箱接收服务器:pop.mail.yahoo.com发送服务器:smtp.mail.yahoo.comGmail邮箱接收服务器:pop.gmail.com发送服务器:smtp.gmail.com
1 0