本文實例講述了ThinkPHP框架實現(xiàn)的郵箱激活功能。分享給大家供大家參考,具體如下:
配置框架采用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() 函數(shù)返回當前 Unix 時間戳和微秒數(shù)。
* mt_srand() 播種 Mersenne Twister 隨機數(shù)生成器。從 PHP 4.2.0 版開始,seed 參數(shù)變?yōu)榭蛇x項,當該項為空時,會被設為隨時數(shù)。
* 注釋:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機數(shù)發(fā)生器播種,現(xiàn)已自動完成。
* pow — 指數(shù)表達式
*/
//random()這個函數(shù)是我用來生成一個隨機數(shù)的,$numeric = 0生成一個6位的大小寫字母與數(shù)字混合的字符串。$numeric = 1生成一個6位數(shù)字的字符串
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;
}
//發(fā)送郵件的方法
public function index(){
//生成6位激活碼
$random = $this->random(6,0);
//獲取本網(wǎng)站的域名,域名在config里面配置下.
//例如'domain' => 'http://write.blog.csdn.net',
$domain = C('domain');
//生成激活碼模塊地址
$url = $domain.U("Home/Email/activate")."/?yam=$random";
//將郵件地址和隨機數(shù)放入session
session("shcg666@sohu.com","$random");
//發(fā)送郵件
SendMail("shcg666@sohu.com","這是郵件標題","將此網(wǎng)址復制到瀏覽框$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服務器發(fā)送Email
$mail->IsSMTP();
// 設置郵件的字符編碼,若不指定,則為'UTF-8'
$mail->CharSet='UTF-8';
// 添加收件人地址,可以多次使用來添加多個收件人
$mail->AddAddress($address);
// 設置郵件正文
$mail->Body=$message;
// 設置郵件頭的From字段。//發(fā)件人
$mail->From=C('MAIL_ADDRESS');
// 設置發(fā)件人名字
$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');
// 發(fā)送郵件。
return($mail->Send());
}
3.導入的文件
在網(wǎng)上下載PHPMailer包將class.smtp.php和class.phpmailer.php無需任何改動,直接復制進來即可。
class.smtp.php文件點擊此處本站下載。
class.phpmailer.php文件完整實例代碼點擊此處本站下載。
配置完成,具體的處理方式需要進一步改動。
4.常見郵件服務器(接收服務器和發(fā)送郵件服務器)地址
騰訊QQ郵箱
接收服務器:pop.qq.com
發(fā)送服務器:smtp.qq.com
網(wǎng)易126郵箱
接收服務器:pop3.126.com
發(fā)送服務器:smtp.126.com
網(wǎng)易163免費郵
接收服務器:pop.163.com
發(fā)送服務器:smtp.163.com
網(wǎng)易163VIP郵箱
接收服務器:pop.vip.163.com
發(fā)送服務器:smtp.vip.163.com
網(wǎng)易188財富郵
接收服務器:pop.188.com
發(fā)送服務器:smtp.188.com
網(wǎng)易yeah.net郵箱
接收服務器:pop.yeah.net
發(fā)送服務器:smtp.yeah.net
網(wǎng)易netease.com郵箱
接收服務器:pop.netease.com
發(fā)送服務器:smtp.netease.com
新浪收費郵箱
接收服務器:pop3.vip.sina.com
發(fā)送服務器:smtp.vip.sina.com
新浪免費郵箱
接收服務器:pop3.sina.com.cn
發(fā)送服務器:smtp.sina.com.cn
搜狐郵箱
接收服務器:pop3.sohu.com
發(fā)送服務器:smtp.sohu.com
21cn快感郵
接收服務器:vip.21cn.com
發(fā)送服務器:vip.21cn.com
21cn經(jīng)濟郵
接收服務器:pop.163.com
發(fā)送服務器:smtp.163.com
tom郵箱
接收服務器:pop.tom.com
發(fā)送服務器:smtp.tom.com
263郵箱
接收服務器:263.net
發(fā)送服務器:smtp.263.net
網(wǎng)易163.com郵箱
接收服務器:rwypop.china.com
發(fā)送服務器:rwypop.china.com
雅虎郵箱
接收服務器:pop.mail.yahoo.com
發(fā)送服務器:smtp.mail.yahoo.com
Gmail郵箱
接收服務器:pop.gmail.com
發(fā)送服務器:smtp.gmail.com
更多關于thinkPHP相關內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
您可能感興趣的文章:- thinkphp實現(xiàn)163、QQ郵箱收發(fā)郵件的方法
- ThinkPHP3.2利用QQ郵箱/163郵箱通過PHPMailer發(fā)送郵件的方法
- thinkphp5使用bootstrapvalidator進行異步驗證郵箱的示例
- thinkphp實現(xiàn)發(fā)送郵件密碼找回功能實例
- ThinkPHP利用PHPMailer實現(xiàn)郵件發(fā)送實現(xiàn)代碼
- thinkphp使用phpmailer發(fā)送郵件的方法
- 詳解thinkphp5+swoole實現(xiàn)異步郵件群發(fā)(SMTP方式)
- ThinkPHP發(fā)送郵件示例代碼
- ThinkPHP5郵件發(fā)送服務封裝(可發(fā)附件)
- PHPMailer ThinkPHP實現(xiàn)自動發(fā)送郵件功能