有时候,我们需要把从数据库中查出来的资料,动态生成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文件相关推荐

  1. Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    一.效果图 1.带页码效果 2.目录效果 前言:Java 使用iText7生成带页码的PDF文件,同时生成目录PDF,但限于水平,暂时还在摸索合并两个PDF.不过看了一下,iText好像有生成目录的代 ...

  2. python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法

    在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...

  3. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  4. C#导出到通讯录 生成微信头像跟VCF文件 并把头像保存在阿里云

    /// <summary>         /// 导出到通讯录 生成微信头像跟VCF文件         /// </summary>         /// <ret ...

  5. 小功能:java导出excel,并与附件打包zip,excel中每条记录用超链接关联附件目录

    代码仓库:ExcelAttach.java 配套视频:https://www.bilibili.com/video/BV1wT41197W8 需求 需求要做一个小小的员工信息收集系统,员工登录页面,填 ...

  6. Java邮件发送QQ邮箱带附件

    添加依赖 <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency><groupId& ...

  7. java使用bytebuddy动态生成带泛型的DTO

    2019独角兽企业重金招聘Python工程师标准>>> 我这人文笔很low,喜欢直接贴代码,大家将就着看 //TODO 文字描述,回头有空再补上 package com.valson ...

  8. poi java 导出word_java poi 生成word文档并下载

    我使用的是Springboot框架开发的.首先需要在pom.xml文件中引入以下maven包: org.apache.poi poi 3.10-FINAL org.apache.poi poi-oox ...

  9. jFreeChart+itext生成带统计图的pdf文件

    jar包依赖 <!-- iText start--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --& ...

  10. java导出excel 浏览器直接下载或者或以文件形式导出

    1 /**2 * excel表格直接下载3 */4 public static void exportExcelByDownload(HSSFWorkbook wb,HttpServletRespon ...

最新文章

  1. 高德地图markevents_GitHub - mingxuWang/Map: 高德地图API二次封装
  2. 数据结构与算法--5.Python实现十大排序算法
  3. Python数据挖掘-相关性-相关分析
  4. (78)Verilog HDL条件编译:`ifdef
  5. SYSTEM INSTRUCTIONS | 系统指令
  6. 初识Scrapy,在充满爬虫的世界里做一个好公民
  7. linux音频函数接口,Linux音频驱动-OSS和ALSA声音系统简介及其比较
  8. android停止蓝牙音乐服务,蓝牙音乐播放状态一直为暂停态
  9. MCDownloader(iOS下载器)说明书
  10. B端产品-定义、分类、竞品分析、与C端产品的区别
  11. 多用途数据主导“物联网未来”的实施
  12. 瑞思教育被认定为“公共空壳”公司,要参与电动汽车业务?
  13. Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
  14. SWT学习|常用组件及参数
  15. Verilog语法之数学函数
  16. Docker 基本使用与常用环境
  17. 华硕笔记本重置计算机,win10系统华硕笔记本恢复出厂设置的详细方案
  18. JavaScript事件 DOMNodeInserted DOMNodeRemoved
  19. Pinterest今年营收有望达6亿美元 考虑IPO
  20. 【python实战】python一行代码,实现文件共享服务器

热门文章

  1. 系统自带的微软拼音输入法,在输入字母和数字的时候,间隔变大,输入中文没事的 问题。
  2. PC端微信更新至3.7.0版文件保存至MsgAttach文件夹乱码问题解决
  3. 监听SpringBoot 服务启动成功事件并打印信息
  4. sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
  5. 黎曼ζ(2)的导数:ζ'(2)=-1
  6. vc 热键、组合键的用法 MFC c++ hotkey WM_HOTKEY
  7. TXTReader功能之一:HotKey
  8. 【我的新书】一步一步学SpringBoot 2:微服务项目实战
  9. HDS存储管理工具命令行汇总
  10. NY145 聪明的小柯