邮件发送器:
mail.jar
public class SimpleMailSender extends BaseController {
/**
* 以文本格式发送邮件
*
* @param mailInfo
* 待发送的邮件的信息
*/
public boolean sendTextMail(MailSenderInfo mailInfo) throws Exception {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if (mailInfo.isValidate()) {
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
// logBefore(logger, "构造一个发送邮件的session");
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO, to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// 设置邮件消息的主要内容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
// 发送邮件
Transport.send(mailMessage);
logBefore(logger, "发送成功!");
return true;
}
/**
* 以HTML格式发送邮件
*
* @param mailInfo
* 待发送的邮件信息
*/
public boolean sendHtmlMail(MailSenderInfo mailInfo) throws Exception {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
// 如果需要身份认证,则创建一个密码验证器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO, to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);
return true;
}
/*
* @title:标题
*
* @content:内容
*
* @type:类型,1:文本格式;2:html格式
*
* @tomail:接收的邮箱
*/
public boolean sendMail(String title, String content, String type, String tomail) throws Exception {
// 这个类主要是设置邮件
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.qq.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setUserName("XXX@qq.com");
mailInfo.setPassword("tttt");// 您的邮箱密码
mailInfo.setFromAddress("XXX@qq.com");
mailInfo.setToAddress(tomail);
mailInfo.setSubject(title);
mailInfo.setContent(content);
// 这个类主要来发送邮件
SimpleMailSender sms = new SimpleMailSender();
if ("1".equals(type)) {
return sms.sendTextMail(mailInfo);// 发送文体格式
} else if ("2".equals(type)) {
return sms.sendHtmlMail(mailInfo);// 发送html格式
}
return false;
}
/**
* @param SMTP
* 邮件服务器
* @param PORT
* 端口
* @param EMAIL
* 本邮箱账号
* @param PAW
* 本邮箱密码
* @param toEMAIL
* 对方箱账号
* @param TITLE
* 标题
* @param CONTENT
* 内容
* @param TYPE
* 1:文本格式;2:HTML格式
*/
public static void sendEmail(String SMTP, String PORT, String EMAIL, String PAW, String toEMAIL, String TITLE,
String CONTENT, String TYPE) throws Exception {
// 这个类主要是设置邮件
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost(SMTP);
mailInfo.setMailServerPort(PORT);
mailInfo.setValidate(true);
mailInfo.setUserName(EMAIL);
mailInfo.setPassword(PAW);
mailInfo.setFromAddress(EMAIL);
mailInfo.setToAddress(toEMAIL);
mailInfo.setSubject(TITLE);
mailInfo.setContent(CONTENT);
// 这个类主要来发送邮件
SimpleMailSender sms = new SimpleMailSender();
if ("1".equals(TYPE)) {
sms.sendTextMail(mailInfo);
} else {
sms.sendHtmlMail(mailInfo);
}
}
public static String setCaseTable(List<Map> dataList) throws Exception {
String content = "<br>";
content += "<table align='left' border='1' cellpadding='1' cellspacing='0'>";
content += "<tr style='font-size: 16px;' height='20px' bgcolor='#DCDCDC'>";
content += "<th></th>";
content += "<th></th>";
content += "<th></th>";
content += "<th></th>";
content += "<th></th>";
content += "<th></th>";
content += "</tr>";
for (Map casedata : dataList) {
content += "<tr>";
content += "<td></td>";
content += "<td></td>";
content += "<td></td>";
content += "<td></td>";
content += "<td></td>";
content += "<td></td>";
content += "</tr>";
}
content += "</table>";
content += "<br>";
return content;
}
public static void main(String[] args) throws Exception {
// 这个类主要是设置邮件
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.qq.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setUserName("XXX@qq.com");
mailInfo.setPassword("XXXXX");// 您的邮箱密码
mailInfo.setFromAddress("XXX@qq.com");
mailInfo.setToAddress("XXX@qq.com");
mailInfo.setSubject("设置邮箱标题");
mailInfo.setContent("设置邮箱内容");
// 这个类主要来发送邮件
SimpleMailSender sms = new SimpleMailSender();
sms.sendTextMail(mailInfo);// 发送文体格式
// sms.sendHtmlMail(mailInfo);//发送html格式
}
/**
* 以HTML格式发送邮件
*
* @param mailInfo
* 待发送的邮件信息
*/
public boolean sendHtmlMailNew(MailSenderInfo mailInfo) throws Exception {
// Recipient's email ID needs to be mentioned.
String to = mailInfo.getToAddress();
// Sender's email ID needs to be mentioned
String from = mailInfo.getFromAddress();
// Assuming you are sending email from localhost
// String host = "smtp.uat1bank.dbs.com";
Properties pro = mailInfo.getProperties();
// Get the default Session object.
Session session = Session.getDefaultInstance(pro);
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// Set Subject: header field
message.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
message.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
message.setContent(mainPart);
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (Exception mex) {
mex.printStackTrace();
System.out.println("Sent message fail....");
}
return true;
}
/**
* 不需身份认证的发邮件
* @param host
* @param port
* @param from
* @param to
* @param title
* @param content
* @throws Exception
*/
public static void sendEmail(String host, String port, String from, String to, String title,
String content) throws Exception {
// 这个类主要是设置邮件
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost(host);
mailInfo.setMailServerPort(port);
mailInfo.setFromAddress(from);
mailInfo.setToAddress(to);
mailInfo.setSubject(title);
mailInfo.setContent(content);
// 这个类主要来发送邮件
SimpleMailSender sms = new SimpleMailSender();
// sms.sendTextMail(mailInfo);// 发送文体格式
sms.sendHtmlMailNew(mailInfo);// 发送html格式
}
}
加密:
SimpleMailSender.sendEmail("", "", "", "", to, title, content,"2");
不加密
SimpleMailSender.sendEmail("", "", "", to,title, content);