Java实现注册邮箱激活验证

邮件发送servelet实现

package com.xbs.register.main;

import java.io.IOException;
import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
/**
*
*/
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
* @author James
* 发送邮件的servlet实现
*/
public class RegisterServlet extends HttpServlet {

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

resp.setContentType("text/html");

// 编码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");

String toMail = req.getParameter("email");
String registerName = req.getParameter("userName");

String userName = "[email protected]";
String password = "wjw6993469";

String registerId = "" + Math.random() * Math.random();
String url = "http://localhost:8080/register/MailBackServlet?registerId="
+ registerId+"&registerName="+registerName;// 待会用户点在邮箱中点击这个链接回到你的网站。

HttpSession httpSession = req.getSession();
httpSession.setAttribute(registerId, registerName);
// 秒数
httpSession.setMaxInactiveInterval(1000);
httpSession.setAttribute("2", registerName);

/*
* System.out.println("------"+registerId); String str = (String)
* httpSession.getAttribute(registerId);
* System.out.println("----------------"+str);
* System.out.println(registerName);
*/

// 设置身份验证、服务器等信息
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.qq.com");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.store.protocol", "smtp");
Authenticator authenticator = new MyAuthenticator(userName, password);

javax.mail.Session session = javax.mail.Session.getDefaultInstance(
props, authenticator);
session.setDebug(true);

try {
Address from = new InternetAddress(userName);
Address to = new InternetAddress(toMail);

MimeMessage msg = new MimeMessage(session);
msg.setFrom(from);
msg.setSubject("诚实网站注册");
msg.setSentDate(new Date());
msg.setContent("<a href=‘" + url + "‘>点击" + url + "完成注册</a>",
"text/html;charset=utf-8");
msg.setRecipient(RecipientType.TO, to);
/*
* Transport transport = session.getTransport("smtp");
* transport.connect("smtp.163.com", userName, password);
* transport.sendMessage(msg,msg.getAllRecipients());
* transport.close();
*/
Transport.send(msg);
} catch (MessagingException e) {
e.printStackTrace();
}

req.getRequestDispatcher("/sendMailSuccess.jsp").forward(req, resp);
}
}

/**
* 发送邮件的邮箱的授权用户名和密码类
*/
package com.xbs.register.main;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/**
* @author James
*
*/
public class MyAuthenticator extends Authenticator {
private String userName;
private String password;

public MyAuthenticator(String userName, String password){
this.userName = userName;
this.password = password;
}

@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
}

简单的注册页面

register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户注册利用邮箱进行验证</title>
</head>
<body>
<br/>
<form action="${pageContext.request.contextPath }/RegisterServlet" method="post">
<font size="24" color="red">用户注册</font><br/>
邮箱:<input type="text" name="email" /><br/>
昵称:<input type="text" name="userName" /><br/>
<input type="submit" value="submit" /><br/>
</form>
</body>
</html>

所需要的jar报。mail.jar和servlet.jar

http://www.2cto.com/kf/201312/268157.html例子

时间: 2024-10-11 17:10:20

Java实现注册邮箱激活验证的相关文章

java实现注册邮箱激活验证(一)

一般情况注册账户激活时有发送六位数字激活码和发送激活地址两种常见的方式,今天来总结一下 一.发送六位数字激活码的方式,下一篇博客介绍发送激活地址的方式(用qq邮箱或者163邮箱发邮件,注意前提是要拿到授权码滴,下文有说到) 1.新建一个maven项目,结构如下 2.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundat

Java注册帐号邮箱激活验证实现

Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.html ? 2.将字符串通过MD5进行加密的工具类: class="java">import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.

java实现qq邮箱激活注册功能

1先去qq邮箱设置中开启 POP3和STMP 服务, 记住授权码 然后编写代码 package cn.yunhe.utils; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * 邮件发送工具类 * Created by Administrator on 2017/8/4

servlet邮箱激活验证实例含代码

也有很多人本来有机会的,他们都拒绝了,不想让自己太累,太麻烦.或者中途被情绪所左右,半途而废了. 成长是有代价的,同样悠闲也是有代价的. 流程: 用户填写相关信息,点击注册按钮 系统先将用户记录保存到数据库中,其中用户状态为未激活 系统发送一封邮件并通知用户去验证 用户登录邮箱并点击激活链接 系统将用户状态更改为已激活并通知用户注册成功 相关知识点 JSP和Servlet Maven MySQL c3p0 SMTP协议和POP3协议 1.在邮箱设置中将下图的服务器开启,本案例使用的是QQ邮箱为发

Asp.Net 注册 邮箱激活

数据库 表的设计 State为用户状态  0为禁用  1为可用  默认为0,下面有个UserGUID,这个字段将来用于激活账户 首先你要写一个表单,验证码神马的,这个我就不写了..直接写处理的 代码在下面 if (IsPostBack) 2 { 3 string userName = Request["UserName"]; 4 string userPwd = Request["UserPwd"]; 5 string userEmail = Request[&qu

Java实现注册时发送激活邮件+激活

最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 1.RegisterController.java package com.app.web.controller; import java.text.ParseException; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; i

.Net发送邮件(注册发送邮件激活)的方法与注意要点

.NET发送方法(来自参考) public class SendEmail { /// <summary> /// 发送邮件:配置到web.config /// </summary> /// <param name="strto">收件人帐号</param> /// <param name="strSubject">主题</param> /// <param name="strB

注册邮箱验证激活技术

一.先说思路 //1.数据库加三个字段,state:(0:未激活,1:激活成功),ActiCode:(放激活码),token_exptime(过期时间,用来验证激活邮件是否过期) //2.用户填写资料,点击注册,插入数据成功,state字段默认是0,同时生成一个ActiCode(用传过来的邮箱.密码.和当前时间加密形成)也存入数据库 //3.发送邮件...提示用户登录邮箱激活...邮件中带一个激活成功页的URL,URL里有两个参数(1,用户ID,2:激活码) //4.用户登录邮箱点击链接,来到处

C# 注册邮箱验证的实现代码

本文介绍下,C#实现注册用户时,通过邮箱进行验证的思路与代码,有需要的朋友,不妨参考下. 一.思路 1,数据库加两个字,state字段(0:未激活,1:激活成功),ActiCode:(放激活码). 2,用户填写资料,插入数据成功,state字段默认是0,同时生成一个ActiCode也存入数据库. 3,提示用户激活.发送邮件.邮件中带一个激活成功页的URL,URL里有两个参数(1,用户ID,2:激活码). 4,用户点击链接,回到激活成功页.激活成功页的Load事件,得到两个参数,以这两个参数为条件