public boolean send(final String to, final String cc, final String subject, final String message, final List<String> filePath) throws Exception {
Transport mailTransport = null;
try {
String smtp = “192.168.2.3”;
String smtpPort = “587”;
String from = “xx@xx.com”;
String password = “”;
String smtpKey = “mail.smtp.host”;
String hostKey = “mail.host”;
String mailTransportProtocol = “smtp”;
String subjectEncoding = “UTF-8”;
String fromEncoding =”UTF-8“;
String textEncoding = ”UTF-8“;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", smtp);
props.put("mail.host", smtp);
props.setProperty("mail.smtp.auth", "true");
// SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,
// 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
// QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)
props.setProperty("mail.smtp.port", smtpPort);
props.setProperty("mail.smtp.starttls.enable", "true");
// 送付
Session mailSession = Session.getDefaultInstance(props, new Authenticator() {
// mail验证
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
//mailSession.setDebug(true);
mailTransport = mailSession.getTransport(mailTransportProtocol);
MimeMessage mimeMessage = new MimeMessage(mailSession);
// 发件人邮箱地址设置
Address fromAdr = new InternetAddress(from, "", fromEncoding);
mimeMessage.setFrom(fromAdr);
// 主题设置
mimeMessage.setSubject(subject, subjectEncoding);
// 收件人邮箱地址设置
InternetAddress[] toAdr = null;
toAdr = InternetAddress.parse(to);
mimeMessage.addRecipients(Message.RecipientType.TO, toAdr);
// 抄送收件人邮箱地址设置
if (cc != null && !cc.isEmpty()) {
InternetAddress[] ccAdr = null;
ccAdr = InternetAddress.parse(cc);
mimeMessage.addRecipients(Message.RecipientType.CC, ccAdr);
}
// 文本内容添加
Multipart mp = new MimeMultipart();
MimeBodyPart mbpText = new MimeBodyPart();
mbpText.setText(message, textEncoding);
mp.addBodyPart(mbpText);
// 邮件内容设定
if (filePath != null) {
for (int j = 0; j < filePath.size(); j++) {
MimeBodyPart mbpFile = new MimeBodyPart();
FileDataSource fds = new FileDataSource(filePath.get(j));
mbpFile.setDataHandler(new DataHandler(fds));
mbpFile.setFileName(MimeUtility.encodeText(fds.getName()));
mp.addBodyPart(mbpFile);
}
}
mimeMessage.setContent(mp);
// 送行日期设定
mimeMessage.setSentDate(new Date());
// 连接服务器
mailTransport.connect(smtp, Constants.STRING_EMPTY, Constants.STRING_EMPTY);
mailTransport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
mailTransport.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (mailTransport != null) {
mailTransport.close();
}
}
}