java web实现邮箱激活与忘记密码

2025-05-29 0 110

由于在项目中要实现用户注册的邮箱激活以及忘记密码重置密码功能,所以通过查阅资料做了一个简单的设计和实现。

邮箱激活

背景:几乎每个网站或论坛之类的用户注册后都需要通过发送邮件到邮箱激活用户。
设计:

激活步骤:

1、 发送激活操作链接地址至用户邮箱。
2、 用户至邮箱查收邮件。
3、 用户点击链接,跳转至成功页面(修改激活状态),激活成功。

实现:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70
/**

* 发送邮件

*

* @param request

* @return

*/

@requestmapping(value = "/sendemail.jhtml")

@responsebody

public string sendemail(httpservletrequest request) {

dynamicparams params = new dynamicparams(request);

stringbuilder builder = new stringbuilder();

stringbuffer url = new stringbuffer();

string type = params.getstring("type");

long uid = params.getlong("id");

user user = usermanager.find(uid);

string subject = "";

// 判断是否已激活

if ("1".equals(string.valueof(user.getemailstatus()))) {

return errmsg();

}

string contextpath = request.getcontextpath();

string rurl = string.valueof(request.getrequesturl());

url.append(rurl.substring(0, rurl.indexof(contextpath)));

url.append(contextpath + "/account");

// 邮箱激活

// url.append("/activateemail.jhtml?email=" + user.getemail() +

// "&id=" + uid + "&mode=activate");

url.append("/activateemail.jhtml?id=" + uid + "&mode=activate");

// 正文

builder.append("<html><head><meta http-equiv=\\"content-type\\" content=\\"text/html; charset=utf-8\\" </head><body>");

builder.append("请点击下方链接激活您的邮箱,完成激活邮箱的操作!");

builder.append("<br/><br/>");

builder.append("<a href=\\"" + url + "\\">");

builder.append(url);

builder.append("</a>");

builder.append("</body></html>");

subject = "邮箱地址激活 - xxxx";

mailsender.mailsimple(user.getemail(), subject, builder.tostring(),

false, null);

return successmsg();

}

/**

* 激活邮箱

*

* @param request

* @return

*/

@requestmapping(value = "/activateemail.jhtml")

public string activateemail(httpservletrequest request, model model) {

dynamicparams params = new dynamicparams(request);

// 激活之前查询

user user = usermanager.find(params.getlong("id"));

if ("1".equals(string.valueof(user.getemailstatus()))) {

// 已激活

model.addattribute("flag", false);

} else {

// 未激活

usermanager.activateemail(params);

// 激活之后查询

user = usermanager.find(params.getlong("id"));

request.getsession().setattribute("sessionuser", user);

model.addattribute("mode", params.getstring("mode"));

model.addattribute("flag", true);

}

return "site/modules/account/activatesuccess";

}

mailsender.mailsimple(user.getemail(), subject, builder.tostring(),false, null);即为发送邮件工具类,如有不明白可参考我之前的文章(spring mail发送邮件)

java web实现邮箱激活与忘记密码

忘记密码(重置密码)

背景:同样是各大网站都会拥有的一个功能,通过发送验证码到用户注册的邮箱重置密码

设计:

1)输入用户名/手机号码/邮箱,验证码。
2)用户选择手机验证或邮箱验证,发送验证码到手机或邮箱。如果用户邮箱未激活,则不允许邮箱验证。
3)用户输入验证码成功,进入密码重新设置页面。
4)重置密码

流程:

java web实现邮箱激活与忘记密码

java web实现邮箱激活与忘记密码

实现:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33
/**

* 发送邮件

*

* @param request

* @return

*/

@requestmapping(value = "/sendemail.jhtml")

@responsebody

public string sendemail(httpservletrequest request) {

dynamicparams params = new dynamicparams(request);

stringbuilder builder = new stringbuilder();

stringbuffer url = new stringbuffer();

string type = params.getstring("type");

long uid = params.getlong("id");

user user = usermanager.find(uid);

string subject = "";

// type = forget 密码重置

string verifycode = verifycodeutils.generateverifycode(4);

request.getsession().setattribute("resetcertcode", verifycode);

url.append("<font color='red'>" + verifycode + "</font>");

// 正文

builder.append("<html><head><meta http-equiv=\\"content-type\\" content=\\"text/html; charset=utf-8\\" /></head><body>");

builder.append("要使用新的密码, 请将已下字符输入验证框中,完成重置密码的操作!");

builder.append("<br/><br/>");

builder.append("<div>" + url + "</div>");

builder.append("</body></html>");

subject = "密码重置 - xxxx";

mailsender.mailsimple(user.getemail(), subject, builder.tostring(),

false, null);

return successmsg();

}

至此,激活邮箱和忘记密码功能已初步完成!如有不同看法的朋友,请留下您宝贵的意见或建议。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/zwx19921215/article/details/44494543

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java web实现邮箱激活与忘记密码 https://www.kuaiidc.com/109655.html

相关文章

发表评论
暂无评论