验证邮箱是否可用:
/**
*
* @param host SMTP服务端地址,如qq邮箱为smtp.qq.com
* @param email 邮箱名
* @param password 邮箱注册码(非登录名,具体需根据邮箱到官网申请)
* @return 如果可用返回true
* @throws MessagingException
*/
public Object checkEmail(String host, String email, String password) throws MessagingException {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", host);
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.debug", "true");
final String smtpPort = "465";
props.setProperty("mail.smtp.port", smtpPort);
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", smtpPort);
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
Transport transport = session.getTransport();
try {
transport.connect(email, password);
return true;
} catch (MessagingException e) {
sLog.error("connect to email server error. address=" + email);
return false;
} finally {
transport.close();
}
}
如果验证可用则可发送邮件,可以在return true;行之上增加发送邮件代码:
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sendEmail, "发送人", "UTF-8"));
message.setSentDate(new Date());
message.setSubject("邮件标题", "UTF-8");
message.setContent("邮件内容", "text/html;charset=UTF-8");
message.addRecipient(MimeMessage.RecipientType.TO,
new InternetAddress("收件人邮箱", "收件人", "UTF-8"));
message.saveChanges();
transport.sendMessage(message, message.getAllRecipients());