@GetMapping("/netCapitalSubmitEmail")
public Result netCapitalSubmitEmail() throws Exception {
Result result = new Result();
sendNetCapitalEmail();
return result;
}
private void sendNetCapitalEmail() throws Exception {
//Integer periodId = getFlowPeriodId(flowId);
//log.info("净资本发送邮件 | FlowPeriodController.netCapitalSubmit | periodId={}",periodId);
log.info("净资本发送邮件 | FlowPeriodController.netCapitalSubmit | 任务开始,");
HSSFWorkbook wb = new HSSFWorkbook();
//exportExcelForBGService.exportExcelForBG(wb,periodId,false);
//String htmlExcel = ExcelToHtml.getExcelInfo(wb, true);
// 创建临时文件
File file = File.createTempFile(netCapitalTitle, ".xls");
//输出流
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
byte[] content = os.toByteArray();
//写入输入流
InputStream inputStream = new ByteArrayInputStream(content);
copyInputStreamToFile(inputStream, file);
os.flush();
os.close();
inputStream.close();
//获取附件列表文件
List<File> attachments = new ArrayList<>();
attachments.add(file);
SendEmailRequest sendEmailRequest = new SendEmailRequest();
sendEmailRequest.setGroupName("净资本邮件发送");
sendEmailRequest.setAttachments(attachments);
//sendEmailRequest.setText(htmlExcel);
sendEmailRequest.setText("净资本邮件发送测试");
com.hs.ermp.response.Result resultEmail = emailService.sendEmail(sendEmailRequest);
if (!ErrInfo.SUCCESS.equals(resultEmail.getCode())) {
//删除附件文件
file.delete();
log.error("净资本发送邮件 | FlowPeriodController.netCapitalSubmit fail,msg={}", resultEmail.getMsg());
throw new RuntimeException(resultEmail.getMsg());
}
log.info("净资本发送邮件 | FlowPeriodController.netCapitalSubmit success,msg={}", resultEmail.getMsg());
}catch (Exception ex){
//删除附件文件
file.delete();
throw new IOException("净资本发送邮件出现异常,异常信息:" + ex.getMessage());
}finally {
os.close();
}
//删除附件文件
file.delete();
}
// InputStream -> File
private static void copyInputStreamToFile(InputStream inputStream, File file)
throws IOException {
try (FileOutputStream outputStream = new FileOutputStream(file)) {
int read;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
}
}
Java 发送邮件带有附件
最新推荐文章于 2023-07-14 11:06:17 发布