在网站开发中,通常需要进行邮箱的准确性验证,在网上找了好久,发现JMAIL组件比较好用:

String responseText = "";

boolean flag = true;

String toEmail = request.getParameter("email");

String title = "来自*****官网的邮箱验证邮件";

StringBuilder content = null;


SessionManager sessionManager = SessionManager.getInstance();

UserSession user = (UserSession) sessionManager.getSession(request);

long suberId = 0;

if (user != null) {

if (user.getSuber() != null) {

l.debug("session中suber No null");

suberId = user.getSuber().getSuberId();

content = new StringBuilder("尊敬的用户").append(user.getSuber().getUname()).append(':').append("<br/>");

content.append("&nbsp;&nbsp;&nbsp;&nbsp;验证您的邮箱,请点击");

//TODO 在这里需要改成本网站的域名

content.append("http://192.168.1.105:8080/mail/checkMail.php?suberId=").append(suberId).append("&authCode=")

.append(Text.MD5(new StringBuilder().append(suberId).append(user.getSuber().getUname()).toString()));

} else {

responseText = "Please login!";

}

}

Properties pro = new Properties();

pro.put("mail.smtp.host", XingbookConfig.send_email_service);

pro.put("mail.smtp.auth", "true"); // 通过服务器验证

Session s = Session.getInstance(pro); // 根据属性新建一个邮件会话

MimeMessage message = new MimeMessage(s);

InternetAddress fromAddr = null;

InternetAddress toAddr = null;

try {

fromAddr = new InternetAddress( XingbookConfig.send_email_address); // 邮件发送地址

message.setFrom(fromAddr); // 设置发送地址

toAddr = new InternetAddress(toEmail); // 邮件接收地址

message.setRecipient(Message.RecipientType.TO, toAddr); // 设置接收地址

message.setSubject(title); // 设置邮件标题

BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象

mdp.setContent(content.toString(), "text/html;charset=gb2312");// 给BodyPart对象设置内容和格式/编码方式

Multipart mm = new MimeMultipart();

mm.addBodyPart(mdp);// 将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)

message.setContent(mm);// 把mm作为消息对象的内容

message.setSentDate(new Date()); // 设置邮件日期

message.saveChanges(); // 保存邮件更改信息

Transport transport = s.getTransport("smtp");

transport.connect(XingbookConfig.send_email_service,  XingbookConfig.send_email_account,  XingbookConfig.send_email_pwd); // 服务器地址,邮箱账号,邮箱密码

transport.sendMessage(message, message.getAllRecipients()); // 发送邮件

transport.close();

responseText = "send success!";

} catch (Exception e) {

responseText = "send error!";

}

Writer out = response.getWriter();

out.write(responseText);