java导出eml_java 本地生成带附件的eml文件
有时候,我们需要把从数据库中查出来的资料,动态生成eml文件进行保存和发送,有的还需要嵌入附件,用什么方法来生成eml文件 ?如何本地生成邮件eml文件。
参考了JAVAMAIL通过IMAP协议保存的eml文件格式后,我们自己也可以本地构造eml文件。
还是看例子吧。
String mailbody = "";
mailbody = "Message-ID:"+uid+"\r\n";
mailbody = mailbody+"X-FreePOPs-User: "+user+"\r\n";
mailbody = mailbody+"X-FreePOPs-Domain: "+domain+"\r\n";
mailbody = mailbody+"Subject: "+sub+"\r\n";
mailbody = mailbody+"Date: "+sentDate+" \r\n";
mailbody = mailbody+"From: "+from+"\r\n";
mailbody = mailbody+"To: "+to+"\r\n" ;
mailbody = mailbody+"MIME-Version: 1.0\r\n";
BASE64Encoder encoder = new BASE64Encoder();
byte[] data = "body".getBytes();
try{
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(((new Random()).nextInt() + "").getBytes());
data = digest.digest();// Get a romdom integer and get it's digest
}catch (Exception e) {
e.printStackTrace();
}
String mainBoundary = "****MAIN_BOUNDARY****" + byte2hex(data);
// Main boundary
String subBoundary = "****SUB_BOUNDARY****" + byte2hex(data);
mailbody += "Content-Type: multipart/mixed;\r\n" + "\tboundary=\"" + mainBoundary
+ "\"\r\n" + "\r\n" + "This is a multi-part message in MIME format.\r\n" + "\r\n"
// Above is mail's header
+ "--" + mainBoundary + "\r\n"
// The mail's text body
+ "Content-Type: multipart/alternative;\r\n" + "\tboundary=\"" + subBoundary + "\"\r\n" + "\r\n" + "--"
+ subBoundary + "\r\n";
mailbody += "Content-Type: text/html;\r\n";
mailbody += "\tcharset=\"utf-8\"\r\n" + "Content-Transfer-Encoding: 7bit\r\n" + "\r\n"
+ massage + "\r\n" + "\r\n" + "--" + subBoundary + "--\r\n"// End of sub boundary
+ "\r\n";
//
for (int i = 0; i < fjs.size(); i++) {
List attachment = fjs.get(i);
String attachName = (String)attachment.get(0);
Matcher m = Pattern.compile("[\\u4e00-\\u9fa5]").matcher(attachName);
try{
if(m.find()){
attachName = MimeUtility.encodeText(attachName, "gb18030", "B");
}else{
attachName = MimeUtility.encodeText(attachName, "utf-8", "B");
}
}catch (Exception e) {
attachName = "attachName_"+i;
e.printStackTrace();
}
try{
mailbody += "--" + mainBoundary + "\r\n" + "Content-Type:" + (String)attachment.get(1)
+ ";\r\n" + "\tname=\"" + attachName + "\"\r\n"
+ "Content-Transfer-Encoding: base64\r\n" + "Content-Disposition: attachment;\r\n"
+ "\tfilename=\"" + attachName + "\"\r\n" + "\r\n"
+ encoder.encode((byte[])attachment.get(2)) + "\r\n" + "\r\n";
}catch (Exception e) {
e.printStackTrace();
}
}
mailbody += "--" + mainBoundary + "--";
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fullFileName), "UTF-8"));
bw.write(mailbody);
bw.flush();
bw.close();
其后可以用foxmail等工具打开eml来查看附件是否可以下载,eml内容是否可以解析。
java导出eml_java 本地生成带附件的eml文件相关推荐
- Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)
一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...
- python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法
在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...
- java根据pdf模板生成指定格式的pdf文件
java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...
- C#导出到通讯录 生成微信头像跟VCF文件 并把头像保存在阿里云
/// <summary> /// 导出到通讯录 生成微信头像跟VCF文件 /// </summary> /// <ret ...
- 小功能:java导出excel,并与附件打包zip,excel中每条记录用超链接关联附件目录
代码仓库:ExcelAttach.java 配套视频:https://www.bilibili.com/video/BV1wT41197W8 需求 需求要做一个小小的员工信息收集系统,员工登录页面,填 ...
- Java邮件发送QQ邮箱带附件
添加依赖 <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency><groupId& ...
- java使用bytebuddy动态生成带泛型的DTO
2019独角兽企业重金招聘Python工程师标准>>> 我这人文笔很low,喜欢直接贴代码,大家将就着看 //TODO 文字描述,回头有空再补上 package com.valson ...
- poi java 导出word_java poi 生成word文档并下载
我使用的是Springboot框架开发的.首先需要在pom.xml文件中引入以下maven包: org.apache.poi poi 3.10-FINAL org.apache.poi poi-oox ...
- jFreeChart+itext生成带统计图的pdf文件
jar包依赖 <!-- iText start--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --& ...
- java导出excel 浏览器直接下载或者或以文件形式导出
1 /**2 * excel表格直接下载3 */4 public static void exportExcelByDownload(HSSFWorkbook wb,HttpServletRespon ...
最新文章
- 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装
- 数据结构与算法--5.Python实现十大排序算法
- Python数据挖掘-相关性-相关分析
- (78)Verilog HDL条件编译:`ifdef
- SYSTEM INSTRUCTIONS | 系统指令
- 初识Scrapy,在充满爬虫的世界里做一个好公民
- linux音频函数接口,Linux音频驱动-OSS和ALSA声音系统简介及其比较
- android停止蓝牙音乐服务,蓝牙音乐播放状态一直为暂停态
- MCDownloader(iOS下载器)说明书
- B端产品-定义、分类、竞品分析、与C端产品的区别
- 多用途数据主导“物联网未来”的实施
- 瑞思教育被认定为“公共空壳”公司,要参与电动汽车业务?
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
- SWT学习|常用组件及参数
- Verilog语法之数学函数
- Docker 基本使用与常用环境
- 华硕笔记本重置计算机,win10系统华硕笔记本恢复出厂设置的详细方案
- JavaScript事件 DOMNodeInserted DOMNodeRemoved
- Pinterest今年营收有望达6亿美元 考虑IPO
- 【python实战】python一行代码,实现文件共享服务器
热门文章
- 系统自带的微软拼音输入法,在输入字母和数字的时候,间隔变大,输入中文没事的 问题。
- PC端微信更新至3.7.0版文件保存至MsgAttach文件夹乱码问题解决
- 监听SpringBoot 服务启动成功事件并打印信息
- sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
- 黎曼ζ(2)的导数:ζ'(2)=-1
- vc 热键、组合键的用法 MFC c++ hotkey WM_HOTKEY
- TXTReader功能之一:HotKey
- 【我的新书】一步一步学SpringBoot 2:微服务项目实战
- HDS存储管理工具命令行汇总
- NY145 聪明的小柯