本文实例讲述了 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 不胜感激!