邮件发送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 = "1364450155@qq.com";
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例子

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

  1. Java实现邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java [java] view plaincopyprint?   package co ...

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

    Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.h ...

  3. Java实现邮箱激活验证2

    SendEmail.java [java] view plaincopyprint?   package com.app.tools; import java.util.Date; import ja ...

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

    也有很多人本来有机会的,他们都拒绝了,不想让自己太累,太麻烦.或者中途被情绪所左右,半途而废了. 成长是有代价的,同样悠闲也是有代价的. 流程: 用户填写相关信息,点击注册按钮 系统先将用户记录保存到 ...

  5. Asp.Net 注册 邮箱激活

    数据库 表的设计 State为用户状态  0为禁用  1为可用  默认为0,下面有个UserGUID,这个字段将来用于激活账户 首先你要写一个表单,验证码神马的,这个我就不写了..直接写处理的 代码在 ...

  6. 主攻ASP.NET MVC4.0之重生:发邮箱激活验证

    导入Interop.jmail组件 using jmail;using System.Net.Mail; 点击下载源代码 Controller相关代码 public class SendEmailCo ...

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

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 1.RegisterController.java package com.app.web.controller; import java ...

  8. Java实现发送邮箱验证码/注册验证链接

    本文以163邮箱为例 1.准备(邮箱账号,邮箱必须设置POP3/SMTP/IMAP,设置步骤如下:) >>步骤:1 开启授权码服务 >>步骤:2 手机获取验证码 >> ...

  9. .net 实现注册邮箱验证激活

    没事上网当了个注册邮箱验证激活的代码,用起来感觉还不错,特意和大家要一起分享一下 下面是主要实现代码: uing System.Net.Mail; public partial class jquer ...

随机推荐

  1. jQuery1.9.1源码分析--数据缓存Data模块

    jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...

  2. Linux运维初级教程(一)Shell脚本

    序,掌握shell脚本是linux运维工程师的最基础技能. 一.脚本语言 与高级语言不通,脚本语言运行时需要调用相应的解释器来翻译脚本中的内容. 常见的脚本语言有Shell脚本.Python脚本.ph ...

  3. 欧几里得证明$\sqrt{2}$是无理数

    选自<费马大定理:一个困惑了世间智者358年的谜>,有少许改动. 原译者:薛密 \(\sqrt{2}\)是无理数,即不能写成一个分数.欧几里得以反证法证明此结论.第一步是假定相反的事实是真 ...

  4. Mac Pro 软件收藏

    记录下Pro Mac中安装过的软件: 编号 软件名 功能说明 1 QQ   2 微信   3 搜狗输入法   4 Chrome 浏览器  Chrome 及其 插件“个性化设置”备份 5 360云盘   ...

  5. 格式化Double类型

    //格式化Double类型 //F:默认是2位小数点 //F6:输出小数点后6位,不够的话用0补齐 //G:默认输出原先的,保留小数点后面的位数 LalTotal.Text = "合计:原始 ...

  6. DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法

    DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...

  7. Eclipse 语法提示

    新建一个txt 拷贝下面的文本,然后保存修改扩展名为.epf #Sat Nov :: CST /instance/org.eclipse.jdt.core/org.eclipse.jdt.core.c ...

  8. [POJ1177]Picture

    [POJ1177]Picture 试题描述 A number of rectangular posters, photographs and other pictures of the same sh ...

  9. Win10新版下virtualbox双击没有反应

    百度virtualbox 第一个就是Oracle官网,点击download,点击相应的版本,下载后右键管理员权限去安装,

  10. 在ROS下编写自己的节点来订阅话题(C++)

    参考 http://blog.csdn.net/u013453604/article/details/49102957     的博客,其实这些内容和 <开源机器人操作系统> 这本书差不多 ...