/**
*
* @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中,
重载了这个方法,这样感觉对外开发好一点。