JavaMail如何发发送HTML格式邮件



JavaMail如何发发送HTML格式邮件?

/**
*
* @param smtp
*            SMTP主机地址
* @param port
*            SMTP主机地址端口
* @param user
*            用户名
* @param password
*            密码
* @param from
*            发信人
* @param to
*            收信人
* @param cc
*            抄送人
* @param bcc
*            暗送人
* @param subject
*            主题
* @param body
*            内容
* @throws Exception
*/
public static void send(String smtp, int port, String user,
String password, String from, String to, String cc, String bcc,
String subject, String body) throws Exception {
// 变量声明
Properties props = new Properties();// 系统属性
// 设置系统属性
props.put(“mail.transport.protocol”, “smtp”); // 使用smtp协议
props.put(“mail.smtp.auth”, “true”); // 是否需要邮件认证

// 获得邮件会话对象
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(true);

// 创建MIME邮件对象
MimeMessage mimeMsg = new MimeMessage(mailSession);

// 设置发信人
mimeMsg.setFrom(new InternetAddress(from));
// 设置收信人
if (to != null) {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(to));
}

// 设置抄送人
if (cc != null) {
mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress
.parse(cc));
}

// 设置暗送人
if (bcc != null) {
mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress
.parse(bcc));
}
// 设置邮件主题
mimeMsg.setSubject(subject);
// 设置邮件内容,将邮件body部分转化为HTML格式
mimeMsg.setContent(body, “text/html ;charset=gbk”);

// 发送邮件
Transport transport = mailSession.getTransport();
transport.connect(smtp, port, user, password);
transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());
transport.close();
}

这是一个发送HTML格式的邮件,我简单的封装成一个方法。
参数有点多,有些是可选的。
后来,我在开发中为了减少参数,我把参数包装到一个Map中,
重载了这个方法,这样感觉对外开发好一点。