本文实例讲述了ThinkPHP框架实现的邮箱激活功能。分享给大家供大家参考,具体如下:
配置框架采用ThinkPHP3.1框架,如下所示:
配置过程图:
1.修改配置如下:
PHP;">
'配置值'
'MAIL_ADDRESS'=>'shcg666@sohu.com',// 邮箱地址
'MAIL_SMTP'=>'smtp.sohu.com',// 邮箱SMTP服务器
'MAIL_LOGINNAME'=>'shcg666@sohu.com',// 邮箱
登录帐号
'MAIL_PASSWORD'=>'******',// 邮箱密码
);
PHP;">
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模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://www.f2er.com/thinkphp/15900.html