乐趣区

关于php:ThinkPHP框架实现的邮箱激活功能示例

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

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

配置过程图:

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

如果以上文章对您有帮忙,请给咱们的开源我的项目点点 star:github.crmeb.net/u/defu 不胜感激!

退出移动版