springcloud client poi mail
来源:互联网 发布:手机绘画的软件 编辑:程序博客网 时间:2024/06/05 12:44
使用其他服务发送email
application.yml
---#email settingspring: mail: protocol: smtp default-encoding: UTF-8 properties: mail: debug: true smtp: auth: true starttls: enable: true required: true timeout: 25000 socketFactory: class: javax.net.ssl.SSLSocketFactory
依赖:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version></dependency><dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>
客户端:
public static HSSFWorkbook getHSSFWorkbook(String name,List<Map<String, Object>> model, String[] headers){ HSSFWorkbook workbook=new HSSFWorkbook(); int rowNum=1; HSSFSheet sheet = workbook.createSheet(); workbook.setSheetName(0, name); sheet.createFreezePane(0, rowNum+1); sheet.setColumnWidth(0, 4000); sheet.setColumnWidth(1, 3500); sheet.setColumnWidth(2, 6500); sheet.setColumnWidth(3, 2000); sheet.setColumnWidth(4, 3500); sheet.setColumnWidth(5, 3500); sheet.setColumnWidth(6, 3500); sheet.setColumnWidth(7, 3500); sheet.setColumnWidth(8, 6500); HSSFRow row = sheet.createRow(rowNum); sheet.setColumnWidth(2, 12 * 256); sheet.setColumnWidth(3, 17 * 256); HSSFCellStyle style = workbook.createCellStyle(); HSSFFont font = workbook.createFont(); font.setBold(true); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); style.setFont(font); HSSFRow headRow = sheet.createRow(0); for (short i = 0; i < headers.length; i++) { HSSFCell cell = headRow.createCell(i); cell.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(headers[i]); cell.setCellValue(text); } int dataRow=1; if (model==null||model.size()<=0) { return null; } for (Map<String, Object>map:model) { int cell=0; map.forEach((x,y)->{ HSSFRow row2 = sheet.createRow(rowNum); row2.createCell(cell).setCellValue(y.toString()); }); } return workbook;}
HSSFWorkbook hssfWorkbook=getHSSFWorkbook();
ByteArrayOutputStream baos = new ByteArrayOutputStream();hssfWorkbook.write(baos);baos.flush();byte[] bt = baos.toByteArray();String data= Base64Util.startBase64(bt);
然后把data发送过去
服务端:
接收data,String类型
BASE64Decoder decoder = new BASE64Decoder();byte[] bytes =decoder.decodeBuffer(data);InputStream is = new ByteArrayInputStream(bytes, 0, bytes.length);
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); /**设置配置信息,我们在application.yml中配置*/ Properties properties = new Properties(); properties.setProperty("mail.debug", "true");// 是否显示调试信息(可选) properties.setProperty("mail.smtp.starttls.enable", "true"); properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.auth", "true"); properties.put(" mail.smtp.timeout ", " 25000 "); javaMailSender.setJavaMailProperties(properties); javaMailSender.setHost("smtp.163.com"); javaMailSender.setUsername("*****@163.com"); javaMailSender.setPassword("****");//授权码 //javaMailSender.setPort(25); javaMailSender.setDefaultEncoding("UTF-8"); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); mimeMessage.addHeader("charset", "UTF-8"); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("****@163.com"); String []place=new String[]{"****@qq.com"}; helper.setTo(place); helper.setSubject("主题"); helper.setText("正文"); mimeMessage.saveChanges(); DataSource source = new ByteArrayDataSource(is, "application/msexcel");// FileSystemResource file1 = new FileSystemResource(new File("D:\\***.xlsx"));// helper.addAttachment("***.xlsx", file1);/**为避免文件名乱码,测试得出当文件名长度大于20时,也会产生乱码*/
String filename = MimeUtility.encodeText(attachName,"GBK","B"); filename = filename.replaceAll(" ","_").replaceAll("\r", "_").replaceAll("\n", "_");helper.addAttachment(filename ,source);
javaMailSender.send(mimeMessage);把附件转成经过BASE64为压缩后通过json串的形式发送过去,然后再解压
阅读全文
0 0
- springcloud client poi mail
- A Client to Send SMTP Mail
- MailMergeLib - A .NET Mail Client Library
- live messenger8.5 and live mail client
- springcloud-config client配置文件为什么要用bootstrap命名
- springcloud入门之服务提供者client并注册到eureka
- SpringCloud
- springcloud
- SpringCloud
- springcloud
- springcloud
- springcloud
- Courier-imap - Mail client 同 Postfix 的中間人
- 解决530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
- 【SpringCloud】(十三):全局和单个禁用Feign Client对Hystrix的支持
- java开发规范
- java.lang.NoClassDefFoundError: ch/qos/logback/classic/LoggerContext
- Go实战--golang中使用markdown(russross/blackfriday)
- Nginx + Memcached 实现Session共享的负载均衡
- Qual_C:树上的三角形
- springcloud client poi mail
- bootstrap 分页控件,实现直接转到某页
- EasyDSS流媒体解决方案之视频多清晰度解决(1)
- c语言字符串操作
- python中文注释报错的解决方法
- leetcode题目例题解析
- 工具分享之GitforWindows国内下载站
- table 表头固定,表体滚动的css方法
- JSONArray类将JavaBean,List,Map转换成json字符串