java邮箱激活

@Controller
@RequestMapping("/user")
public class UserController {
	
	private static final String SEND_ACTIVATE_TIME = "SEND_ACTIVATE_TIME";
	
	@RequestMapping("index.html")
	protected String index() {
		return "user/list";
	}
	
	@RequestMapping("sendActivate.html")
	@ResponseBody
	protected String sendActivate(String email, HttpServletRequest request) throws HttpException, IOException {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("email", email);
		List<HashMap<String,Object>> list = MybatisUtils.selectList("user.mysql.selectUser", map);
		String code = UUID.randomUUID().toString();
		Calendar calendar = Calendar.getInstance();
		HttpSession session = request.getSession();
		session.setAttribute(SEND_ACTIVATE_TIME, calendar.getTime().getTime());
		calendar.add(Calendar.DAY_OF_MONTH, 2);
		Date date = calendar.getTime();
		map.put("activateCode", code);
		map.put("activateTime", date);
		if(list.size() > 0){
			// 用0表示已激活
			String status = (String) list.get(0).get("status");
			if(status != null && status.equals("0")){
				return "已激活";
			}else{
				// 单纯激活就更新
				MybatisUtils.update("user.mysql.updateActivateCode", map);
			}
		}else{
			// 注册insert
			map.put("userId", code);
			map.put("registTime", date);
			MybatisUtils.insert("user.mysql.insertUser", map);
		}
		StringBuffer sb=new StringBuffer("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");  
        sb.append("<a href=\"http://localhost:8080/me/user/activate.html?email=");  
        sb.append(email);   
        sb.append("&activateCode=");   
        sb.append(code);  
        sb.append("\">点击激活</a>");   
		System.out.println(sb);
		MailUtils.send(email, "激活账号", sb.toString());
		return "success";
	}
	
	@RequestMapping("activate.html")
	@ResponseBody
	protected String activate(String email, String activateCode, HttpServletRequest request){
		String home = "<a href=\"http://localhost:8080/me\">返回首页</a>";
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("email", email);
		List<HashMap<String,Object>> list = MybatisUtils.selectList("user.mysql.selectUser", map);
		if(list.size() > 0){
			// 用0表示已激活
			String status = (String) list.get(0).get("status");
			if(status != null && status.equals("0")){
				return "已激活" + home;
			}else{
				Date date = (Date) list.get(0).get("activateTime");
				if(date.after(new Date())){
					String code = (String) list.get(0).get("activateCode");
					if(code.equalsIgnoreCase(activateCode)){
						map.put("status", "0");
						MybatisUtils.update("user.mysql.updateActivateStatus", map);
						return "激活成功" + home;
					}else{
						return "激活码不正确" + home;
					}
				}else{
					return "激活码已过,请重新激活" + home;
				}
			}
		}else{
			return "您还没有注册,请先注册" + home;
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Java邮箱注册功能,可以按照以下步骤进行操作: 1. 创建一个支持HTML格式的邮件发送方法。该方法接收两个参数,一个是接收验证码的邮箱地址,另一个是验证码本身。在方法中,需要配置邮件服务器地址(这里以163邮箱为例),设置编码格式,添加接收地址,设置发送人邮箱和授权密码,设置邮件标题和内容,最后通过调用send()方法发送邮件。 2. 创建mailService类,并在该类中实现itriptxCreateByMail方法。此方法接收一个itripUser对象作为参数,在方法内部调用之前创建的邮件发送方法,将用户的邮箱地址和生成的验证码作为参数传递给邮件发送方法。 3. 在mailService类中实现sendActivationMail方法,该方法用于发送激活邮件。此方法接收两个参数,一个是邮件接收人的邮箱地址,另一个是激活码。在方法内部调用之前创建的邮件发送方法,将接收人的邮箱地址和激活码作为参数传递给邮件发送方法。 通过以上步骤,你可以实现Java邮箱注册功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java 使用邮箱进行注册验证](https://blog.csdn.net/datahuo/article/details/127363654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [JAVA实现邮箱注册功能](https://blog.csdn.net/SCDN_CP/article/details/84561336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值