JavaMail发送带多个附件的邮件,多个收件人,多个抄送人
/** * 方法描述:发送带附件的邮件 * * @throws UnsupportedEncodingException */ public static boolean sendEmailWithAttachment(Email email) throws UnsupportedEncodingException { Properties prop = new Properties(); prop.put("mail.smtp.host", mailServer); prop.put("mail.smtp.auth", "true"); Authenticator auth = new MailAuthenticator(); Session session = Session.getDefaultInstance(prop, auth); Message message = new MimeMessage(session); boolean flag = false; try { message.setSubject(email.getEmail_subject());// 设置邮件主题 message.setHeader("Header:", email.getEmail_header()); // 设置邮件标题 message.setSentDate(new Date()); // 设置发送时间 Address addressFrom = new InternetAddress(mailAddress, mailAccount); // 设置发信人地址 message.setFrom(addressFrom); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(email.getEmail_content(), "text/html;charset=utf-8"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); MimeBodyPart mimeBodyPart; //多个附件 for (int i = 0; i < email.getEmail_file().size(); i++) { Map<String, String> map = email.getEmail_file().get(i); String fileSource=""; String fileName=""; for (String key : map.keySet()) { fileSource = key; fileName = map.get(key); } mimeBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(fileSource); mimeBodyPart.setDataHandler(new DataHandler(source)); mimeBodyPart.setFileName(MimeUtility.encodeText(fileName)); multipart.addBodyPart(mimeBodyPart);// Put parts in } message.setContent(multipart); // 设置多个收件人地址 List<String> list = email.getEmail_to(); String toAddress = SendEmail.getAddress(list); InternetAddress[] internetAddressTo = new InternetAddress().parse(toAddress); message.setRecipients(Message.RecipientType.TO, internetAddressTo); // 设置多个抄送地址 String ccAddress = SendEmail.getAddress(email.getEmail_cc()); InternetAddress[] internetAddressCC = new InternetAddress().parse(ccAddress); message.setRecipients(Message.RecipientType.CC, internetAddressCC); message.saveChanges(); System.out.println("开始发送邮件……"); Transport.send(message); System.out.println("发送成功!"); flag = true; } catch (MessagingException e) { System.out.println("发送失败!"); flag = false; e.printStackTrace(); } return flag; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。