以K-V格式参数:
@RequestMapping("/multiSendByKV")
public String multiSendByKV( MultipartFile file, MailEntity mailEntity) throws Exception {
if(file == null){
return mailMutilSend(mailEntity);
}
String filename = file.getOriginalFilename();
logger.info(filename);
boolean boo = SeparatorUtil.isMailAccount(mailEntity.getAcceptors());
if(!boo){
return "请检查邮件接收者格式错误";
}
String[] users = mailService.getAcceptors(mailEntity.getAcceptors());
JavaMailSenderImpl mailSender = mailService.getMailSenderInstance();
//复杂邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//邮件发送助手
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"utf-8");
helper.setFrom("[email protected]");
// 群发
helper.setTo(users);
helper.setSubject(mailEntity.getSubject());
//true表示支持html格式的内容
helper.setText(mailEntity.getContent(),true);
//添加多个附件可以使用多条
//MimeUtility.encodeText(fileName,"utf-8",null)是为了解决文件名中文乱码
helper.addAttachment(MimeUtility.encodeText(fileName,"utf-8",null),file);
mailSender.send(mimeMessage);
return "success";
}
以json格式参数:
因为json只支持字符串,所以需要将文件file转化为Base64字符串,接口如下
@RequestMapping("/transferFileToBase64")
public String transferFileToBase64(MultipartFile file) throws Exception{
if(file == null){
return null;
}
byte[] bytes = IOUtils.toByteArray(file.getInputStream(),file.getSize());
String str = Base64.getEncoder().encodeToString(bytes);
logger.info(str);
return str;
}
然后提供json格式邮件发送接口
@RequestMapping("/multiSendByJson")
public String multiSendByJson( @RequestBody MailEntity mailEntity) throws Exception {
String fileBase64 = mailEntity.getFileBase64();
if(StringUtils.isEmpty(fileBase64)){
return mailMutilSend(mailEntity);
}
byte[] bytes = Base64.getDecoder().decode(fileBase64);
//InputStream byteInputStream = new ByteArrayInputStream(bytes);
boolean boo = SeparatorUtil.isMailAccount(mailEntity.getAcceptors());
if(!boo){
return "请检查邮件接收者格式错误";
}
String[] users = mailService.getAcceptors(mailEntity.getAcceptors());
JavaMailSenderImpl mailSender = mailService.getMailSenderInstance();
//复杂邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//邮件发送助手
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"utf-8");
helper.setFrom("[email protected]");
// 群发
helper.setTo(users);
helper.setSubject(mailEntity.getSubject());
helper.setText(mailEntity.getContent(),true);
LocalDate date = LocalDate.now();
String customFileName = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))+"-onstar.txt";
String fileName = StringUtils.isEmpty(mailEntity.getFileName)?customFileName:mailEntity.getFileName;
//helper.addAttachment(MimeUtility.encodeText(fileName,"utf-8",null), new ByteArrayResource(IOUtils.toByteArray(byteInputStream)));
helper.addAttachment(MimeUtility.encodeText(fileName,"utf-8",null), new ByteArrayResource(bytes));
mailSender.send(mimeMessage);
return "success";
}