使用的javax.mail-1.6.2.jar包实现,其中附件是普通的增加bodypart方法具体见代码,邮件内容包含图片采用的是包含html格式的xml模板,因为需要排版,所以使用html格式更容易实现,具体看代码。
一共三个方法,主方法sendmail() 包含添加附件根据邮箱配置发送邮件
reader方法和createImageMimeBodyPart方法是读取模板以及把图片插入到模板里,其中读取模板用的dom4j包里的方法(把html模板转成xml文件,转换很简单,html的代码外包一层xml-body标签,文件后缀换成xml就行了)使用的dom4j-1.6.1.jar包
参考文章:https://www.cnblogs.com/hujunzheng/p/5093496.html
/**
* 发送邮件
* @throws Exception
*/
public void sendMail() throws Exception{
//数据
String date ="2021年01月20日";
String stockContent = "xxxxxx";
String trades = "1000000";
String consumers = "1000000";
String dateAddConsumers = "1000000";
String inAmt = "1000000";
String inTrades = "1000000";
String outTrades = "1000000";
String outAmt = "1000000";
/**
* 创建内容(为消息对象)
*/
//创建一个多功能邮件块,用于组合文本和图片,"mixed"型的MimeMultipart对象
MimeMultipart mixed = new MimeMultipart("mixed");
//新建一个存放新建内容的MimeBodyPart对象
MimeBodyPart content = new MimeBodyPart();
//把内容放到MimeBodyPart里
String templateContent = reader("D/doc/template/2021.xls");
Object[] obj = new Object[]{date,stockContent,trades,consumers,dateAddConsumers,inAmt,inTrades,outAmt,outTrades,"trades","transAMT","inAMT","consumerAdd","thred","bank"};
String contentStr = MessageFormat.format(templateContent, obj);
content.setContent(contentStr, "text/html;charset=UTF-8");
//将MimeBodyPart加入到MimeMultipart对象中(可以加