橙网站,网站排版怎么做的,管理培训课程,wordpress登录才可评论在阅读本文前#xff0c;可以先阅读我的上一篇文章#xff1a; SpringBoot#xff0c;使用JavaMailSender发送邮件(含源码)。 #xff0c;本文使用的代码案例涉及到的 jar包、application.properties配置与它相同。 先看一下效果。 图一 图二 在下方代码案例中#xff0c;… 在阅读本文前可以先阅读我的上一篇文章 SpringBoot使用JavaMailSender发送邮件(含源码)。 本文使用的代码案例涉及到的 jar包、application.properties配置与它相同。 先看一下效果。 图一 图二 在下方代码案例中我使用 Hutool 工具包生成Excel文件并将其转化成 InputStream流之后生成对应的 javax.mail.util.ByteArrayDataSource添加到邮件附件中。需要说明的是邮件附件中Excel文件后缀名目前只支持 “.xls”不支持 “.xlsx” 。 获取 Excel文件输入流工具函数 /*** 获取 Excel文件输入流.** param sourceList 数据来源集合* param beanClass 导出文件类型.** return java.io.InputStream* author DY41220 2023/10/18 14:58*/public static T, K ByteArrayInputStream getExcelInputStream(ListT sourceList, ClassK beanClass) {Assert.isFalse(CollectionUtils.isEmpty(sourceList), 源数据为空异常);ListK exportVOS sourceList.stream().map(infoVO - MyBeanUtils.convert(infoVO, beanClass)).collect(Collectors.toList());Assert.isFalse(CollectionUtils.isEmpty(exportVOS), 转换后导出的数据为空异常);// Map英文名, 中文名 组合形式.MapString, String aliasMap ExcelUtils.getDTOAliasTitle(beanClass, Constant.BooleanFlag.FALSE);ExcelWriter writer ExcelUtils.initExcelWriter(exportVOS, aliasMap);ByteArrayOutputStream outputStream new ByteArrayOutputStream();writer.flush(outputStream, Constant.BooleanFlag.TRUE);ByteArrayInputStream inputStream new ByteArrayInputStream(outputStream.toByteArray());return inputStream;} 邮件附件中含Excel文件进行发送。
/*** 邮件附件中含Excel文件进行发送。** return void* author moon 2023/10/18 17:10*/Testpublic void sendExcelAttachmentsMail() {// 1、数据简单封装User user1 new User(1L, 张三, 20, new Date());User user2 new User(5L, 李四, 21, new Date());User user3 new User(6L, 王五, 18);ListUser targetVOList Arrays.asList(user1, user2, user3);// 2、获取 Excel文件输入流ByteArrayInputStream inputStream ExcelUtils.getExcelInputStream(targetVOList, UserExportVO.class);// 3、设置 邮件附件名String attachmentFilename 用户错误数据 DateUtil.format(new Date(), Constant.DatePattern.PURE_DATETIME_PATTERN) Constant.ExcelProperty.XLS_SUFFIX;// 4、构建 邮件发送DTO对象EmailDTO emailDTO new EmailDTO(new String[] {12345678qq.com}, 邮件附件中含Excel文件测试, 这是一个测试祝自己早日学有所成。, attachmentFilename, inputStream);// 5、发送邮件sendAttachmentsMail(emailDTO);log.info(邮件附件中含Excel文件邮件发送成功~~~~~);}/*** 邮件附件发送消息。** param emailDTO* return void* author DY41220 2023/10/18 14:43*/public void sendAttachmentsMail(EmailDTO emailDTO) {Assert.isFalse(Objects.isNull(emailDTO.getToArray()),必须设置收件人);//获取MimeMessage对象MimeMessage message mailSender.createMimeMessage();MimeMessageHelper messageHelper;try {messageHelper new MimeMessageHelper(message, true);// 邮件发送人messageHelper.setFrom(from);// 邮件接收人messageHelper.setTo(emailDTO.getToArray());// 邮件主题message.setSubject(emailDTO.getSubject());// 邮件内容html格式messageHelper.setText(emailDTO.getText(), Constant.BooleanFlag.TRUE);ByteArrayDataSource file new ByteArrayDataSource(emailDTO.getInputStream(), Constant.HttpMessage.HTTP_SERVLET_RESPONSE_EXCEL_CONTENT_TYPE);// 附件messageHelper.addAttachment(MimeUtility.encodeWord(emailDTO.getAttachmentFilename(), Constant.HttpMessage.UTF_LOWER,B), file);// 发送mailSender.send(message);//日志信息log.info(邮件已经发送。);} catch (Exception e) {log.error(发送邮件时发生异常, e);}} 源码路径 springboot-mail 项目 SpringBoot2.x--翟永超/springboot-mail 项目中参考 com.moon.EmailApplicationTests 单元测试类。 参考文章
1、SpringBoot使用JavaMailSender发送邮件(含源码)。
2、Java后台生成Excel文件并作为邮件附件发送
3、