TP框架 發(fā)送郵箱實(shí)現(xiàn)找回密碼

注意事項

開啟socket:在PHP.ini中取消extension=php_sockets.dll前面的分號与殃。

.登錄你的郵箱手動開啟STMP服務(wù)普碎,這個服務(wù)默認(rèn)是關(guān)閉的烈疚,一定要去郵箱->設(shè)置里去手動開啟该互,開啟時要求你設(shè)置一個獨(dú)立密碼吁系,這個密碼就是寫在 'MAIL_PASSWORD'=>' ', // 郵箱密碼购披,的密碼而不是郵箱登錄密碼

userinfo中加上一個字段Resettime(郵箱提交時間杖挣,和當(dāng)前時間比較,判斷鏈接是否過期)

1刚陡、? ? ? 在ThinkPHP/Extend/Library/ORG/Net/目錄下放入PHPMailer.class.php惩妇、class.pop3.php、class.smtp.php文件

2筐乳、? ? ? ? 在Index/Conf/config.php配置文件中加上以下配置項//發(fā)送郵件? 'MAIL_ADDRESS' => '18782227612@163.com', // 郵箱地址(注冊時好像會有一個地址)? 'MAIL_SMTP' => 'smtp.163.com', // 郵箱SMTP服務(wù)器? 'MAIL_LOGINNAME' => 'm18782227612_2@163.com', // 郵箱登錄帳號? 'MAIL_PASSWORD' => 'bviqbapkcyyrrtmf', // 郵箱密碼(這是我開啟STMP服務(wù)時給的授權(quán)密碼歌殃,注意看注意事項第2點(diǎn))? 'MAIL_CHARSET' => 'UTF-8', // 編碼? 'MAIL_AUTH' => true, // 郵箱認(rèn)證? 'MAIL_HTML' => true, // true HTML格式 false TXT格式

3、? ? ? ? 在Index/Common /common.php文件中建一個函數(shù)IsSMTP();// 設(shè)置郵件的字符編碼蝙云,若不指定氓皱,則為'UTF-8'$mail->CharSet='UTF-8';// 添加收件人地址,可以多次使用來添加多個收件人$mail->AddAddress($address);// 設(shè)置郵件正文$mail->Body=$message;// 設(shè)置郵件頭的From字段勃刨。$mail->From=C('MAIL_ADDRESS');// 設(shè)置發(fā)件人名字$mail->FromName='zyimm';// 設(shè)置郵件標(biāo)題$mail->Subject=$title;// 設(shè)置SMTP服務(wù)器波材。$mail->Host=C('MAIL_SMTP');// 設(shè)置為“需要驗(yàn)證”$mail->SMTPAuth=true;// 設(shè)置用戶名和密碼。$mail->Username=C('MAIL_LOGINNAME');$mail->Password=C('MAIL_PASSWORD');// 發(fā)送郵件身隐。return($mail->Send());}?

4廷区、? ? ? ? 在Index/Lib/Action/IndexAction.class.php中加入以下兩個方法? //找回密碼---發(fā)送到郵箱,用戶驗(yàn)證? public function sendemail() {? ? ? import('ORG.Net.PHPMailer');? ? ? $r = M('userinfo')->where(array('Loginname' => I('username'),'Email' => I('email')))->find();? ? ? $this->user = $r;? ? ? if (!$r) {? ? ? ? ? echo 'alert("該用戶不存在或者郵箱不正確贾铝!");location.href="http://localhost/jiaxiao2/index.php/Index/findpwd"';? ? ? } else {? ? ? ? ? $user = I('username');? ? ? ? ? $email = I('email');? ? ? ? ? $content = "$user,你好:? ? ? ? ? ? ? 您收到這封電子郵件是因?yàn)槟?(也可能是某人冒充您的名義) 申請了一個找回密碼的請求隙轻。? ? ? 假如這不是您本人所申請, 或者您曾持續(xù)收到這類的信件騷擾, 請您盡快聯(lián)絡(luò)管理員埠帕。? ? ? 您可以點(diǎn)擊如下鏈接重新設(shè)置您的密碼,如果點(diǎn)擊無效,請把下面的代碼拷貝到瀏覽器的地址欄中:? ? ? http://localhost/jiaxiao2/index.php/Index/findpassword?Loginname=$user? ? ? 在訪問鏈接之后, 您可以重新設(shè)置新的密碼玖绿。";? ? ? ? ? $rs = SendMail($email, '民大駕校---用戶密碼找回', $content,'manager'); //SendMail('admin@waikucms.com','郵件標(biāo)題','郵件正文','歪酷CMS管理員');解釋下參數(shù): 參數(shù)1---目標(biāo)郵箱, 參數(shù)2----郵件標(biāo)題,參數(shù)三--郵件正文,參數(shù)四---發(fā)件人名稱;? ? ? ? ? if ($rs) {? ? ? ? ? ? ? M('userinfo')->where(array('Loginname' => I('username'), 'Email'=> I('email')))->save(array('Resettime' => date('Y-m-d H:i:s')));? ? ? ? ? ? ? ? echo'alert("系統(tǒng)已將重置密碼的鏈接安全的發(fā)到了您的郵箱敛瓷,請及時查收!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';? ? ? ? ? } else {? ? ? ? ? ? ? ? echo'alert("郵件發(fā)送失敯叻恕呐籽!");location.href="http://localhost/jiaxiao2/index.php/Index/findpwd"';? ? ? ? ? }? ? ? }? }? ? //找回密碼? //郵箱有效期? 從數(shù)據(jù)庫取出發(fā)送郵件的提交時間,和當(dāng)前時間做對比蚀瘸,如果當(dāng)前時間超過提交時間30分绝淡,則過期? public function findpassword(){? ? ? $username = I('Loginname');? ? ? $user = M('userinfo')->where(array('Loginname' =>$username))->select();? ? ? $this->user = $user;? ? ? $u = M('userinfo')->where(array('Loginname' =>$username))->find();? ? ? $resettime = $u['Resettime']; //獲取數(shù)據(jù)庫郵箱發(fā)送時間? ? ? $time = date("Y-m-d H:i:s", strtotime("-30 min"));//當(dāng)前時間減去30分后還小于等于發(fā)送郵箱時間,則時間有效苍姜,反之過期? ? ? $data = array('Password' => md5(I('password')));? ? ? $rs = M('userinfo')->where(array('Loginname' => I('Loginname')))->save($data);? ? ? if ($resettime >= $time) {? ? ? ? ? if ($rs) {? ? ? ? ? ? ? ? echo'alert("修改密碼成功牢酵!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';? ? ? ? ? }? ? ? } else {? ? ? ? ? echo 'alert("該鏈接已經(jīng)過期!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';? ? ? }? ? ? $this->display();}

5衙猪、? ? ? ? 然后在在Index/Tpl/Index中加入以下兩個html文件Findpwd.html找回密碼

返回用戶名

郵箱

Findpassword.html文件找回密碼

返回

用戶名

新的密碼

確認(rèn)新密碼

6馍乙、? ? ? ? 然后在登錄頁面加上相應(yīng)的鏈接在Index/Tpl/common/top.html和indextop.html中學(xué)員和教練后面加上忘記登錄密碼?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垫释,一起剝皮案震驚了整個濱河市丝格,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棵譬,老刑警劉巖显蝌,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異订咸,居然都是意外死亡曼尊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門脏嚷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骆撇,“玉大人,你說我怎么就攤上這事父叙∩窠迹” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵趾唱,是天一觀的道長涌乳。 經(jīng)常有香客問我,道長甜癞,這世上最難降的妖魔是什么夕晓? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮带欢,結(jié)果婚禮上运授,老公的妹妹穿的比我還像新娘。我一直安慰自己乔煞,他們只是感情好吁朦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渡贾,像睡著了一般逗宜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上空骚,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天纺讲,我揣著相機(jī)與錄音,去河邊找鬼囤屹。 笑死熬甚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肋坚。 我是一名探鬼主播乡括,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼智厌!你這毒婦竟也來了诲泌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤铣鹏,失蹤者是張志新(化名)和其女友劉穎敷扫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诚卸,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葵第,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了合溺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羹幸。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辫愉,靈堂內(nèi)的尸體忽然破棺而出栅受,到底是詐尸還是另有隱情,我是刑警寧澤恭朗,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布屏镊,位于F島的核電站,受9級特大地震影響痰腮,放射性物質(zhì)發(fā)生泄漏而芥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一膀值、第九天 我趴在偏房一處隱蔽的房頂上張望棍丐。 院中可真熱鬧误辑,春花似錦、人聲如沸歌逢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秘案。三九已至砰苍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阱高,已是汗流浹背赚导。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赤惊,地道東北人吼旧。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像未舟,于是被迫代替她去往敵國和親黍少。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容