Dede:新用戶注冊發送驗證郵件的方法
來源:程序員人生 發布時間:2014-04-06 14:20:49 閱讀次數:2760次
建站學院(LieHuo.Net)訊 在discuz和phpwind等知名論壇中,都有新用戶注冊郵箱驗證的功能,那么功能如此強大的dedecms有沒有這一功能呢?回答肯定是有的,只是您不會用而已,現在看我的方法:
1.修改/member/reg_new.php文件。
查找
- $dsql->ExecuteNoneQuery($infosquery);
復制代碼 |
在下面插入
- //寫入郵件驗證內容
- $keyums = md5($userid.$email."dedecmslove"); //這里的7就是有效期7天的時間。上面的dedecmslove就是給發送的URL加密用的KEY
- $emldatetime = time()+7*24*3600;
- $emailyz = "INSERT INTO `dede_sj_emailyz`(`userid`,`keyums`,`datetime`)
- VALUES ('{$userid}','{$keyums}','{$emldatetime}'); ";
- $dsql->ExecuteNoneQuery($emailyz);
-
復制代碼 |
再找到
- //----------------------------------------------
- //模擬登錄
- //---------------------------
復制代碼 |
在其上面插入:
- //發送驗證郵件
- if($cfg_md_mailtest=='Y')
- {
- $msg ="<html><head></head><body>";
- $msg .= "<b><font color='#ff0000'>".$uname."</font></b> 恭喜您注冊成為XXXXX的會員了!<br>";
- $msg .= " 您的登陸帳號:<b>".$userid."</b><br><br>";//這里,做了個小判斷,如果是企業用戶注冊,則給多送條信息去。
- if($mtype=='企業'){
- $msg .= " 活動公告:<b><font color='#ff0000'>馬上完善您的企業信息,免費開通3個月體驗會員,享受更多無限制服務體驗!</font></b><br>";
- }
- $msg .= " 注意!該驗證有效期為1周,請盡快進行您的帳戶驗證。<br>";
- $msg .= "還有一步您就成功了,請點擊下面的鏈接進行最后一步驗證。(如果無法點擊鏈接,請將下面紅色部分的鏈接地址全部復制,然后粘貼到瀏覽器地址中打開!)<br><br>";
- $msg .= "<a target=_blank><font color='#FF0000'>[url]http://www.XXXXX.com/member/reg_email.php?g=ok&userid=[/url]".$userid."&u=".$keyums."</font></a><br><br>";
-
- $msg .= "請點擊打開上面的連接地址或復制到瀏覽器地址中打開。如需幫助,請聯系XXXXX管理員!<br><br><br>";
- $msg .= "<span style='font-size:12px; color:#CCCCCC'>這是一封由XXXXX網站系統自動發送的郵件,請不要回復郵件!</span><br>";
- $msg .= "<a href=http://www.XXXXXXX.com/>XXXXXX</a> <span style='font-size:12px; color:#CCCCCC'>--XXXXXXXXX的門戶網站。</span><br>";
- $msg .= "</body></html>";
- $mailbody = '';
- //下面這個是郵件標題,上面的是郵件正文部分。
- $mailtitle = "XXXXXXXX會員注冊驗證郵件";
- $mailbody .= "$msg ";
-
- $headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;
-
- if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
- { //下面這里選擇HTML網頁方式發送,如果郵箱不支持HTML,就改為TXT,不過現在好像都支持HTML了吧。
- $mailtype = 'HTML';
- require_once(DEDEINC.'/mail.class.php');
- $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
- $smtp->debug = false;
- $smtp->sendmail($email, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
-
- }
- else
- {
- @mail($email, $mailtitle, $mailbody, $headers);
- }
- ShowMsg("恭喜您注冊成為XXXXXXXXXX的會員了,現在需要對您的電子郵件( ".$email." )進行驗證(有效期1周),請登陸您的郵箱查收!如果無法查收到郵件,請馬上聯系管理員!","index.php",0,20000);
- exit();
- }
復制代碼 |
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈