https://github.com/auguszero/javaToolRepsitory

利用java api 创建excel 内容并发送邮件

主要实现功能:

1.通过配置文件设置发送邮件发送方,接收方,抄送方

2.目前实现了 自定义发送内容

3.实现了excel 邮件发送内容

核心代码 (SendMailManager ) :

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;

/**

* @author haisong

* @create 2018/09/13 14:21

*/

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 copyToList = sendMailConfigModel.getCopyToList();

if(copyToList!=null&&copyToList.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> conteList) throws Exception {

String htmlStr ="";

for(int i=0;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 data,boolean headFlage,boolean endFlage) {

String html_msg="";

if(headFlage){

html_msg = "

html_msg = html_msg+"

";

for(int column=0;column

html_msg = html_msg +"

"+data.get(column)+"";

}

html_msg = html_msg+"

";

}else{

html_msg = html_msg+"

";

for(int column=0;column

html_msg = html_msg +"

"+data.get(column)+"";

}

html_msg = html_msg+"

";

}

if(endFlage){

html_msg = html_msg + "

";

}

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

sendMail.to=auguszero@163.com

excel 邮件发送实例图:

如果你觉得可以 可以直接在github 上将该项目打包好 进行引入 作为工具类 。

同时欢迎大家一起来完善这个github项目 。

欢迎一起交流:

java邮件中添加excel_使用java api 创建excel内容并发送邮件相关推荐

  1. java邮件中添加excel_基于javaMail的邮件发送--excel作为附件

    基于JavaMail的Java邮件发送 Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用 ...

  2. java邮件中添加excel_Java以邮件附件的方式发送excel文件

    思路:Java创建Excel,返回一个ByteArrayOutputStream 流   ==>   sendEmail()接受ByteArrayOutputStream 流以附件的形式发送出去 ...

  3. Java 11中的新功能和API详解系列1

    Java 11中的新功能和API详解系列1 2018.9.27 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. JDK 11在语言语法方面有一个小改动,增加了相当数量的新API,以及 ...

  4. java channel midi_为Java程序中添加播放MIDI音乐功能

    下载本文示例代码 Java在多媒体处理方面的确优势不大,但是我们在程序中有些时候又需要一些音乐做为点缀,如果播放的音乐是wav等波形音频文件,又挺大,所以背景音乐最好就是MIDI了,可是网上很多播放M ...

  5. java注释中添加删除线_如何在Word中添加和删除注释

    java注释中添加删除线 Leaving comments in a Word document is a good way to leave feedback on a piece you're r ...

  6. html5页面中添加腾讯地图api

    html5页面中添加腾讯地图api: 点击地图出现详细的地图: 这是一个基于微信端的地图处理方案. 先看看html架构: <a id="aToMap" href=" ...

  7. win10邮件中添加QQ邮箱无法成功

    win10邮件中添加QQ邮箱无法成功 1.登录QQ邮箱在设置->账户将IMAP由关闭改为开启 2.如果还是无法成功,点击生成授权码 3.出现如下界面后,使用手机发送短信,待发送成功后,点击我已发 ...

  8. 文件管理搜不到Android 里的文件,Android:在原始文件夹中添加文件后窗口找不到内容容器视图...

    正在获取窗口找不到内容容器视图.这个错误询问应用程序何时将检查权限Android:在原始文件夹中添加文件后窗口找不到内容容器视图 我注意到,对于穿着应用程序,我正在将穿着apk复制到原始文件夹中.它有 ...

  9. POI API 创建Excel 文档

    原文来自 http://www.blogjava.net/hezhi/articles/POI.html HSSF提供给用户使用的对象在org.apache.poi.hssf.usermodel包中, ...

最新文章

  1. 一幅图读懂量子力学(上)
  2. java面向对象程序设计第三版耿祥义pdf_java基础知识干货——封装
  3. v$sysstat表解释
  4. Android SQLite Database的使用模板
  5. listview 每行后面的小箭头_几个简单而有用的电脑小知识
  6. signalr网上学习资料
  7. 啊啊啊 草蛋啊 之前努力一天搞出来的时间算法 被一句pk掉 给我砖头
  8. yeoman_使用yeoman轻松创建Yeoman生成器
  9. 虚拟环境vitualenv的使用
  10. android系统自动休眠代码流程,Android P 电源管理(4)待机流程
  11. Apache和PHP结合、Apache默认虚拟主机
  12. 首批绿证核发 2018年或适时启动强制约束交易
  13. linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?
  14. 在HTML中添加图片阴影,html – 如何在CSS中为图像添加内部阴影[复制]
  15. 简单介绍三级分销系统开发源码
  16. HTML 做个漂亮的表格
  17. 计算机文化基础(高职高专版 第十一版)第七章 答案
  18. COSMOS认证咨询,Cosmo-天然产品标准以及Cosmo有机产品标准分为哪几大类
  19. 也许是史上最全的前端资源大汇总
  20. 发明专利费用减缓需要哪些资料?

热门文章

  1. 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
  2. 如何启用nodejs request模块的调试模式
  3. IB COM Read
  4. SAP ERP和C4C Acount和Contact的双向同步
  5. Request load debugging - ERP side
  6. CM: 使用ICF node实现对附件的读取
  7. 如何获得SAP CRM SalesOrder里involved party的详细信息
  8. 通过rxjs的一个例子, 来学习SwitchMap的使用方法
  9. 英语采访问题之:你每天上班的动机是什么?
  10. SAP CRM 中间件里的发布-订阅者模式