新人 ,第一次做关于用邮箱激活注册的方法。
请教一下这个方法的流程、简单的数据库设计,有整个注册代码那就更好了。谢谢了。~~~在线等。

解决方案 »

  1.   

    申请邮箱验证的时候~后台生成一个KEY ~~~
    邮箱中的链接就是带上这个KEY然后验证跟数据库生成的判断是否一样,,
    一样的话就改写用户的状态 激活状态
      

  2.   

    源码手上没有哦 不过你可以弄一个很简单的例子
    问下  邮件服务器 这个应该不需要你关心吧~~ 你手头邮件发送应该有调用接口吧~~
    如果这个你没有的话~~我一两句是讲不清楚的~~
    邮箱验证的原理 很简单~~ 
    发送邮件之前会生成一个邮件模板说白了就是一个html页面 里面的URL后面跟了个KEY。这个KEY 如何生成你自己喜欢 只有有这么一个算法就可以。比如用MD5加密然后生成一个KEY 存到你的数据库中~~
    用户收到信件的时候就是~一个页面里有一串url~~如: www.csdn.com/reg.html?key=ad2^%$#$@!ADAWE 
    他点击进来 ~~就会走该页面里的方法  剩下解密验证 就是你自己的事情咯~~
      

  3.   


    可以啊 ·~是jsp做的吗?
      

  4.   

    以前写着玩的 比较菜  你将就着看把 有很多多余的东西你自己过滤掉吧
    Action public String execute() throws DangException {
    UserDAO userDao = DAOFactory.getUserDAO();
    try {
    //将密码加密
    String pwd = DigestUtil.md5Digest(user.getPassword());
    user.setPassword(pwd);
    //将其他字段值初始化
    user.setUser_integral(10);
    long l=System.currentTimeMillis();
    Timestamp data=new Timestamp(l);
    user.setLast_login_time(data);
    String ip = ServletActionContext.getRequest().getRemoteAddr();
    user.setLast_login_ip(ip);
    user.setEmail_verify("N");
    //生成一个邮箱验证码
    String code = VerifyUtil.getVerifyCode();
    user.setEmail_verify_code(code);
    //保存用户信息
    userDao.save(user);
    //拼成一个code-id格式的信息,发送给用户
    String emailCode = code+"-"+user.getId();
    //给用户发送邮箱验证码
    EmailUtil.sendEmail(user.getEmail(), emailCode);
    return "success";
    } catch (Exception e) {
    e.printStackTrace();
    throw new DangException();
    }

    }/**
     * 邮件发送
     * @author teacher
     *
     */
    public class EmailUtil {
    public static void sendEmail(String mail,String msg){
    SimpleEmail email = new SimpleEmail();
    email.setHostName("smtp.sina.cn");
    email.setAuthentication("ljq_2000", "***");
    email.setCharset("UTF-8");
    try {
    email.addTo(mail);
    email.setFrom("[email protected]");//必须和Authentication使用的用户相同,否则失败
    email.setSubject("当当邮箱验证");
    email.setMsg(msg);
    email.send();
    } catch (EmailException e) {
    e.printStackTrace();
    }
    }
    }public class VerifyUtil {
    public static String getVerifyCode(){
    UUID uuid = UUID.randomUUID();
    return uuid.toString();
    }

    public static void main(String[] args){
    System.out.println(getVerifyCode());
    }


    }希望各位大大不要笑我啊
      

  5.   

    那个没玩过
    顺便说一下   你作为发送的那个邮箱 要开通什么POP3 的 啥啥啥的服务啥的 这样 JAVA才能连过去
    其实我也是 小白一只
      

  6.   


    开通POP3邮件本身有这个功能。 哈哈 我今天刚刚接触。