在discuz和phpwind等知名论坛中,都有新用户注册邮箱验证的功能,那么功能如此强大的dedecms有没有这一功能呢?回答肯定是有的,只是您不会用而已,现在看我的方法:
1.修改/member/reg_new.php文件。
查找
|
|
|
1 |
$dsql->ExecuteNoneQuery($infosquery); |
在下面插入
|
|
|
1 |
//写入邮件验证内容 |
|
2 |
$keyums = md5($userid.$email."dedecmslove"); //这里的7就是有效期7天的时间。上面的dedecmslove就是给发送的URL加密用的KEY |
|
3 |
$emldatetime = time()+7*24*3600; |
|
4 |
$emailyz = "INSERT INTO `dede_sj_emailyz`(`userid`,`keyums`,`datetime`) |
|
5 |
VALUES ('{$userid}','{$keyums}','{$emldatetime}'); "; |
|
6 |
$dsql->ExecuteNoneQuery($emailyz); |
|
7 |
|
再找到
|
|
|
1 |
//---------------------------------------------- |
|
2 |
//模拟登录 |
|
3 |
//--------------------------- |
|
4 |
|
在其上面插入:
|
查看源码
打印代码帮助
|
|
01 |
//发送验证邮件 |
|
02 |
if($cfg_md_mailtest=='Y') |
|
03 |
{ |
|
04 |
$msg ="<html><head></head><body>"; |
|
05 |
$msg .= "<b><font color='#ff0000'>".$uname."</font></b> 恭喜您注册成为XXXXX的会员了!<br>"; |
|
06 |
$msg .= " 您的登陆帐号:<b>".$userid."</b><br><br>";//这里,做了个小判断,如果是企业用户注册,则给多送条信息去。 |
|
07 |
if($mtype=='企业'){ |
|
08 |
$msg .= " 活动公告:<b><font color='#ff0000'>马上完善您的企业信息,免费开通3个月体验会员,享受更多无限制服务体验!</font></b><br>"; |
|
09 |
} |
|
10 |
$msg .= " 注意!该验证有效期为1周,请尽快进行您的帐户验证。<br>"; |
|
11 |
$msg .= "还有一步您就成功了,请点击下面的链接进行最后一步验证。(如果无法点击链接,请将下面红色部分的链接地址全部复制,然后粘贴到浏览器地址中打开!)<br><br>"; |
|
12 |
$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>"; |
|
13 |
|
|
14 |
$msg .= "请点击打开上面的连接地址或复制到浏览器地址中打开。如需帮助,请联系XXXXX管理员!<br><br><br>"; |
|
15 |
$msg .= "<span style='font-size:12px; color:#CCCCCC'>这是一封由XXXXX网站系统自动发送的邮件,请不要回复邮件!</span><br>"; |
|
16 |
$msg .= "<a href=http://www.XXXXXXX.com/>XXXXXX</a> <span style='font-size:12px; color:#CCCCCC'>--XXXXXXXXX的门户网站。</span><br>"; |
|
17 |
$msg .= "</body></html>"; |
|
18 |
$mailbody = ''; |
|
19 |
//下面这个是邮件标题,上面的是邮件正文部分。 |
|
20 |
$mailtitle = "XXXXXXXX会员注册验证邮件"; |
|
21 |
$mailbody .= "$msg \r\n\r\n"; |
|
22 |
|
|
23 |
$headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail; |
|
24 |
|
|
25 |
if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) |
|
26 |
{ //下面这里选择HTML网页方式发送,如果邮箱不支持HTML,就改为TXT,不过现在好像都支持HTML了吧。 |
|
27 |
$mailtype = 'HTML'; |
|
28 |
require_once(DEDEINC.'/mail.class.php'); |
|
29 |
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password); |
|
30 |
$smtp->debug = false; |
|
31 |
$smtp->sendmail($email, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype); |
|
32 |
|
|
33 |
} |
|
34 |
else |
|
35 |
{ |
|
36 |
@mail($email, $mailtitle, $mailbody, $headers); |
|
37 |
} |
|
38 |
ShowMsg("恭喜您注册成为XXXXXXXXXX的会员了,现在需要对您的电子邮件( ".$email." )进行验证(有效期1周),请登陆您的邮箱查收!如果无法查收到邮件,请马上联系管理员!","index.php",0,20000); |
|
39 |
exit(); |
|
40 |
} |