思路
1.数据库一共写五个字段
2.准备需要的测试环境
3.用户在注册界面填写资料,点击注册,插入数据成功,将state字段设置为0(也可以在数据库设置默认是0),同时生成一个激活码(用工具类随机生成)也存入数据库
4.发送邮,并通过吐丝效果提示用户注册成功即将跳转至邮箱登录界面,请登录邮箱点击邮件链接进行激活。邮件中带一个激活成功页的URL,URL里有两个参数(1,用户名,2:对应的激活码)
5.用户登录邮箱点击链接,来到处理激活的业务逻辑页面或Servlet,得到URL中两个参数,以这两个参数为条件查询数据库里的数据,如果有并且一致,则将字段state为1,并把激活码字段清空,最后激活成功,转到登录页面也可以自己设计一个激活成功页.
关于邮件激活工具类
配置好后直接调用工具类中的sendMail方法即可 可以先用main方法测试一次 记住需要导入mail.jar包
/**
* 邮件工具类
* @author JianAi
*/
public class MailUtils {
/**
* 邮箱服务器地址 根据你的发信邮箱需要修改,126邮箱为smtp.126.com,163邮箱为163.smtp.com,QQ为smtp.qq.com
*/
public static final String HOST = "smtp.qq.com";
/**
* 发件人邮箱账户 用来发送激活链接的邮箱账户
*/
public static final String FROM = ";
/**
* 发件人授权码 不是登录密码 126不用开启权限,QQ需要其它自习Goole或者百度
*/
public static final String PASSWORD = ";
/**
* 获取Session
* @return session
*/
private static Session getSession() {
Properties properties = new Properties();
//设置服务器地址
properties.put("mail.smtp.host", HOST);
properties.put("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(FROM, PASSWORD);
}
};
Session session = Session.getDefaultInstance(properties, authenticator);
return session;
}
/**
* 发送邮件
* @param emailAddress 收件人邮箱地址
* @param emailMsg 激活码
* @param username 激活账户
*/
public static void sendMail(String emailAddress, String emailMsg,String username) {
Session session = getSession();
//邮件内容可以自行编辑
try {
String url = "http://localhost:8080/EmailDemo/SystemServlet?method" +
"=activate&username="+username+"&code="+emailMsg;
String content = "<h1>来自Dawn的激活邮件!激活请点击以下链接!</h1><h3><a href='"+url+"'>"+url+"</a" +
"></h3>";
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM));
InternetAddress[] addresses = {
new InternetAddress(emailAddress)};
msg.setRecipients