使用java api 创建excel内容并发送邮件
利用java api 创建excel 内容并发送邮件
主要实现功能,在邮件中生成excel内容主要是用到了html中的table标签。这里简单进行记录以备后期使用查看。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | package com.javatool.email.proxy; import com.javatool.configer.DefaultConfigerContext; import com.javatool.email.model.MailAuthenticator; import com.javatool.email.model.SendMailConfigModel; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import java.util.Date; import java.util.List; import java.util.Properties; public class SendMailManager { /** * 发送邮件 * @param subject 邮件主题 * @param content 邮件内容 * @return success 发送成功 failure 发送失败 * @throws Exception */ public static String sendMail( String subject, String content) throws Exception { SendMailConfigModel sendMailConfigModel = DefaultConfigerContext.getInstance().getModelFromProperties(SendMailConfigModel. class ); String to = sendMailConfigModel.getTo(); if (to != null ){ Properties props = System.getProperties(); props.put( "mail.smtp.host" , sendMailConfigModel.getMail_smtp_host()); props.put( "mail.smtp.auth" , "true" ); props.put( "mail.transport.protocol" , "smtp" ); MailAuthenticator auth = new MailAuthenticator(); Session session = Session.getInstance(props, auth); session.setDebug( true ); try { MimeMessage message = new MimeMessage(session); message.setFrom( new InternetAddress(sendMailConfigModel.getFrom())); if (!to.trim().equals( "" )) { message.addRecipient(Message.RecipientType.TO, new InternetAddress(to.trim())); } List<String> copyToList = sendMailConfigModel.getCopyToList(); if (copyToList!= null &©ToList.size()> 0 ) { Address[] addresses = new Address[copyToList.size()]; int i = 0 ; for (String copy : copyToList) { addresses[i] = new InternetAddress(copy); i++; } message.addRecipients(Message.RecipientType.CC, addresses); } message.setSubject(subject); MimeBodyPart mbp1 = new MimeBodyPart(); // 正文 mbp1.setContent(content, "text/html;charset=utf-8" ); Multipart mp = new MimeMultipart(); // 整个邮件:正文+附件 mp.addBodyPart(mbp1); message.setContent(mp); message.setSentDate( new Date()); message.saveChanges(); Transport trans = session.getTransport( "smtp" ); // trans.connect("smtp.163.com", sendMailConfigModel.getUser(), sendMailConfigModel.getPassword()); trans.send(message); System.out.println(message.toString()); } catch (Exception e){ e.printStackTrace(); return "failure" ; } return "success" ; } else { return "failure" ; } } public static String SendExcelMail(String subject,List<List<String>> conteList) throws Exception { String htmlStr = "" ; for ( int i= 0 ;i<conteList.size();i++){ htmlStr = createHTML(htmlStr,conteList.get(i),i== 0 ? true : false ,i==conteList.size()- 1 ? true : false ); } String result = sendMail(subject,htmlStr); return result; } private static String createHTML(String originHtml, List<String> data, boolean headFlage, boolean endFlage) { String html_msg= "" ; if (headFlage){ html_msg = "<table border=\"1\" width='80%' height='80'>" ; html_msg = html_msg+ "<tr bgcolor='#B6DDE6'>" ; for ( int column= 0 ;column<data.size();column++){ html_msg = html_msg + "<td width='12%'>" +data.get(column)+ "</td>" ; } html_msg = html_msg+ "</tr>" ; } else { html_msg = html_msg+ "<tr>" ; for ( int column= 0 ;column<data.size();column++){ html_msg = html_msg + "<td>" +data.get(column)+ "</td>" ; } html_msg = html_msg+ "</tr>" ; } if (endFlage){ html_msg = html_msg + "</table>" ; } return originHtml+html_msg; } } |
配置文件如下:
sendMail.mail_smtp_host=smtp.163.com sendMail.mail_smtp_auth=login sendMail.user=***@163.com sendMail.password=****** sendMail.from=*****@163.com [email protected]
本文转自:https://www.likecs.com/show-204204366.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律