您好,登錄后才能下訂單哦!
使用ThinkPHP框架怎么實現一個郵箱激活功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
配置過程圖:
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
關于使用ThinkPHP框架怎么實現一個郵箱激活功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。