在网站开发中,通常需要进行邮箱的准确性验证,在网上找了好久,发现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(" 验证您的邮箱,请点击");
//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);