spring实现注册(邮箱验证+有效时间)

spring实现注册(邮箱验证+有效时间)

实现逻辑

  1. 用户注册时,输入邮箱地址,获取验证码,我们随机生成5位数字验证码发送给用户的邮箱。同时我们把验证码和当前时间存储到HttpSession对象中(格式 : 验证码#时间)。

  2. 然后用户通过表单提交自己的注册信息和验证码。我们先判断用户名是否重复(为空和密码一致就交给前端吧),然后我们从session中取出我们存储的字符串分隔,获取验证码和生成验证码的时间,先比较验证码是否正确,如果正确就比较时间是否在一段时间内,都符合才注册(进行数据库操作)。

  3. 代码实现尊崇ssh框架结构,action,service,dao逐层调用。

1:引入jar包

spring自带的包 spring-context-support, 就可以使用spring自带的发送邮件API。

2:创建MailUtil对象

    import  java.util.Properties;
    import  org.springframework.mail.SimpleMailMessage; 
    import  org.springframework.mail.javamail.JavaMailSenderImpl; 

    public class MailUtil {

        //使用对象注入的方式  记得配置文件
        private JavaMailSenderImpl senderImpl;
        public void setSenderImpl(JavaMailSenderImpl senderImpl) {
            this.senderImpl = senderImpl;
        }

        private SimpleMailMessage mailMessage;
        public void setMailMessage(SimpleMailMessage mailMessage) {
            this.mailMessage = mailMessage;
        }

        private Properties prop;
        public void setProp(Properties prop) {
            this.prop = prop;
        }

        //发送验证码的方法,to是目标邮箱地址,text是发送的验证码(事先生成)
        public boolean sendMail (String to,String text) {
            System.out.println("sendMail...util...");

            try{
                //设定mail server
                senderImpl.setHost("smtp.163.com");

                // 设置收件人,寄件人 用数组发送多个邮件
                // String[] array = new String[]    {"sun111@163.com","sun222@sohu.com"};    
                // mailMessage.setTo(array);  

                mailMessage.setTo(to); 
                mailMessage.setFrom( "自己的邮箱" ); 
                mailMessage.setSubject( "主题" ); 
                mailMessage.setText("内容" + text); 

                senderImpl.setUsername("自己的邮箱");
                senderImpl.setPassword("密码");

                prop.put("mail.smtp.auth","true");
                prop.put("mail.smtp.timeout","25000");
                senderImpl.setJavaMailProperties(pro
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值