POST TIME:2021-05-23 02:04
在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 href='http://www.XXXXX.com/member/reg_email.php?g=ok&userid=".$userid."&u=".$keyums."' 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 \r\n\r\n"; $headers = "From: ".$cfg_adminemail."\r\nReply-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(); } 復制代碼 |