public static final String host="邮箱host";
public static final String username="发件人邮箱";
public static final String password="密码/授权码";
//contactEmails收件人,cpEmial抄送人,subject主题,text内容,fileUrl附件
public void sendAttachmentMail( List<String> contactEmails,String cpEmial,String subject,String text, List<String> fileUrl) {
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true"); // 发送服务器需要身份验证
props.setProperty("mail.transport.protocol", "smtp"); // 发送邮件协议名称
props.setProperty("mail.smtp.host", host); // 设置邮件服务器主机
Session session = Session.getInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(username)); // 发件人
msg.setSubject(subject);
InternetAddress[] sendTo = new InternetAddress[contactEmails.size()];
for (int i = 0; i < contactEmails.size(); i++) {
logger.info("发送给:"+contactEmails.get(i));
sendTo[i] = new InternetAddress(contactEmails.get(i));
}
msg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cpEmial));
// 设置正文
BodyPart bp = new MimeBodyPart();
bp.setContent("<h1>"+text+"</h1>", "text/html;charset=utf-8");
MimeMultipart mp = new MimeMultipart();
mp.addBodyPart(bp);
// 设置附件
if (fileUrl != null && fileUrl.size() > 0) {
for (int i = 0; i < fileUrl.size(); i++) {
bp = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileUrl.get(i));
bp.setDataHandler(new DataHandler(fds));
bp.setFileName(MimeUtility.encodeText(fds.getName(), "UTF-8", "B"));
mp.addBodyPart(bp);
}
}
msg.setContent(mp);
Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}