新人 ,第一次做关于用邮箱激活注册的方法。
请教一下这个方法的流程、简单的数据库设计,有整个注册代码那就更好了。谢谢了。~~~在线等。
请教一下这个方法的流程、简单的数据库设计,有整个注册代码那就更好了。谢谢了。~~~在线等。
解决方案 »
- org.apache.http.client.ClientProtocolException这个类的作用是什么?
- 关于尚学堂OA数据库字典!!!!
- [100分]求hibernate批量删除数据代码
- 怎样配置WEB.XML使网站所有内容都显示相同的地址。
- ssi+extjs 分页问题 急!!
- ExtJs 事件处理
- 怎样才能用一个按钮提交2次表单?
- applet的隐藏问题
- 求MYSQL数据库连接池
- (发言者有分)关于如何配合使用jsp,servlet, javabean 开发模式的问题
- 请求大师指点下这个JS列表我想让不点击就显示怎么弄?
- 一个简单的struts2登录程序,报错StringCoding.decode(String, byte[], int, int) line: not avail
邮箱中的链接就是带上这个KEY然后验证跟数据库生成的判断是否一样,,
一样的话就改写用户的状态 激活状态
问下 邮件服务器 这个应该不需要你关心吧~~ 你手头邮件发送应该有调用接口吧~~
如果这个你没有的话~~我一两句是讲不清楚的~~
邮箱验证的原理 很简单~~
发送邮件之前会生成一个邮件模板说白了就是一个html页面 里面的URL后面跟了个KEY。这个KEY 如何生成你自己喜欢 只有有这么一个算法就可以。比如用MD5加密然后生成一个KEY 存到你的数据库中~~
用户收到信件的时候就是~一个页面里有一串url~~如: www.csdn.com/reg.html?key=ad2^%$#$@!ADAWE
他点击进来 ~~就会走该页面里的方法 剩下解密验证 就是你自己的事情咯~~
可以啊 ·~是jsp做的吗?
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());
}
}希望各位大大不要笑我啊
顺便说一下 你作为发送的那个邮箱 要开通什么POP3 的 啥啥啥的服务啥的 这样 JAVA才能连过去
其实我也是 小白一只
开通POP3邮件本身有这个功能。 哈哈 我今天刚刚接触。