使用 JavaMail 创建带有附件的 EML 文件 [关闭]

2024-01-22

我将使用 JavaMail 创建一个带有附件的 EML 文件。

我成功创建了一个简单的 EML 文件,但添加附件无法正常工作。我要添加一个 PDF 文件。我的 EML 文件将成功创建。如果我使用 Outlook 打开生成的 EML 文件,我不会发现 PDF 文件作为附件,但会发现 EML 文件本身作为附件。有人有想法吗?

我尝试了两种变体(结果相同),我使用了FileDataSource类和简单的方法MimeBodyPart#attachFile(File).

我将发布一个例子:

File pdfFile = new File("somePdfFile");

Properties p = System.getProperties();
Session session = Session.getInstance(p);
MimeMessage message = new MimeMessage(session);
// MimeBodyPart txt = new MimeBodyPart();
// txt.setText("");
MimeBodyPart mbp = new MimeBodyPart();
mbp.attachFile(attachment);
// FileDataSource fds = new FileDataSource(attachment);
// fds.setFileTypeMap(new FileTypeMap() {
//    
//   @Override
//   public String getContentType(String arg0) {
//     return "application/pdf";
//   }
//    
//    @Override
//    public String getContentType(File file) {
//      return "application/pdf";
//    }
//      
//  });
//  mbp.setDataHandler(new DataHandler(fds));
//  mbp.setFileName("\"" + attachment.getName() + "\"");
//  mbp.setDisposition(MimePart.ATTACHMENT);
//  mbp.setHeader("Content-ID", "Attachment");
Multipart mp = new MimeMultipart();
//  mp.addBodyPart(txt);
mp.addBodyPart(mbp);
message.setContent(mp);
File emlFile = new File("message.eml");
emlFile.createNewFile();
message.writeTo(new FileOutputStream(emlFile));

// do something with the EML file
// Desktop.getDesktop().open(emlFile);

使用 Java 创建 .eml(电子邮件)文件 https://stackoverflow.com/questions/157195/create-an-eml-e-mail-file-in-java


感谢您的答复。我上传了一个 PDF 文件(我用于测试,它是使用 Crystal Reports 生成的简单 HelloWorld)和生成的 EML 文件,其中应包含该 PDF 文件。

我刚刚注意到,如果我使用 Apple Mail 或 Outlook Express 打开链接的 EML 文件,它就可以工作(但无法编辑)。也许这是 Microsoft Outlook 的问题?

链接已删除


您应该尝试将我提到的标题行添加到邮件的最顶部,然后看看 Outlook 如何处理它。添加一个To:, From:, Subject:甚至可能是一个Date:其中包含真实数据,Outlook 更有可能将其视为一条消息,而不仅仅是一个文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaMail 创建带有附件的 EML 文件 [关闭] 的相关文章

  • Java Runtime.getRuntime().freeMemory() 问题

    我搜索并看到了一些线程 但没有一个能够解决我遇到的具体问题 我正在尝试使用以下方式监视我的内存使用情况Runtime getRuntime freeMemory Runtime getRuntime maxMemory and Runtim
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • 使用 JUnit 时,有没有办法验证测试方法中是否调用了 try/catch 指令的 Catch 部分?

    例如 如果我想测试以下课程 public class SomeClass public void someMethod try Some code where comething could go wrong catch Exception
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • 在 Google App-Engine JAVA 中将文本转换为字符串,反之亦然

    如何从字符串转换为文本 java lang String to com google appengine api datastore Text 反之亦然 Check Javadoc http code google com appengin
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数

随机推荐

  • 如何从 LogisticRegressionCV 和 GridSearchCV 获得可比较且可重复的结果

    我想用不同的参数对不同的分类器进行评分 为了加速LogisticRegression I use LogisticRegressionCV 至少快 2 倍 并计划使用GridSearchCV为他人 但问题是它给了我平等C参数 但不是AUC
  • 为什么我的 CSS 样式没有被应用?

    我有这个html p span class fancify Parting is such sweet sorrow span span Bill Rattleandrollspeer span p 以及这个 css 添加到 Site cs
  • 我如何从库比蒂诺日期选择器中隐藏一天

    我只需要从日期选择器中获取年份和月份 那么如何从日期选择器中隐藏日期 CupertinoDatePicker initialDateTime DateTime now onDateTimeChanged DateTime newdate p
  • 使用 mapbox-gl-js 集群自定义 html 标记

    我正在使用 mapbox gl js API 并将其与 React 一起使用来创建一些自定义标记 如下所示 let div document createElement div let marker new mapboxgl Marker
  • 在 R 中绘制相关矩阵,如 Excel 示例所示

    我一直在尝试尽量减少对 Excel 的使用 转而使用 R 但在显示简单的数据单元格时仍然遇到困难 而这通常是分析的最后一步所需要的 以下示例是我想要破解的示例 因为它将帮助我切换到 R 来完成工作流程的这一关键部分 我想说明 R 中的以下相
  • Android 上的 WiFi Direct 无法正常工作

    我正在尝试在 android Jelly Bean 4 1 1 中直接使用 wifi 开发一个应用程序 如果启用了 p2p 我会立即致电 mManager discoverPeers mChannel actionListener 之后我会
  • Matplotlib:将颜色条添加到不可映射的对象

    我有一系列代表变量变化的线 每个都有独特的颜色 因此 我想在绘图旁边添加一个颜色条 所需的输出如下所示 问题是plot是不可映射的对象 即必须手动添加颜色条 我认为我当前的解决方案 如下 不是最佳的 因为它涉及我没有兴趣控制的尺寸参数 我更
  • 有没有一种简单的方法可以在 matplotlib 中为滚动垂直线设置动画?

    我想要一个我所描述的进度标记 它在音频播放实用程序中似乎很常见 我认为在 matplotlib 中这相当于左 右动画plt vlines 我的代码采用 2 秒的数据数组并创建音频时间序列可视化 我正在努力创建一条动画垂直线 该线会在绘图上从
  • Windows上使用R将本地repo推送到github

    我曾经问过一个很类似的问题 https stackoverflow com questions 14912161 repo from rstudio to github并得到了从命令行有效的响应 但我现在想使用 R 从 Windows 自动
  • ASP.NET MVC 中的 RSS 源

    您建议如何在 ASP NET MVC 中处理 RSS 源 使用第三方库 在 BCL 中使用 RSS 内容 只是制作一个呈现 XML 的 RSS 视图 或者完全不同的东西 NET 框架公开了处理聚合的类 SyndicateFeed 等 因此
  • 如何在 iPad 中使用图像选择器?

    我知道如何在 iPhone 中使用图像选择器 虽然知道需要在 iPad 中使用新类 UIPopoverController 但仍然无法找出一种在 iPad 中使用图像选择器的方法 有人有同样的问题吗 谢谢 UIImagePickerCont
  • 使用 Groovy MarkupBuilder 的 HTML,如何优雅地混合标签和文本?

    使用 Groovy 时MarkupBuilder 我有需要将文本输出到文档中的地方 或者调用将文本输出到文档中的函数 目前 我正在使用未定义的标签 text 进行输出 有更好的方法来编写这段代码吗 li text type getAlias
  • 自动续订订阅:一个月有多长?

    我对一些问题感到困惑 1 自动续费订阅的一个月期限是30天还是按照自然月 因为我只能在沙盒模式下测试 所以持续时间只有几分钟 也许苹果只是简单地这样计算 2013 01 15 gt 2013 02 15 gt 2013 03 15 如果是这
  • r 在 for 循环中创建并寻址变量

    我在一个文件夹中有多个 csv 文件 我想将此文件夹中的每个 csv 文件加载到一个单独的数据框中 接下来 我想从该数据框中提取某些元素到一个矩阵中 并计算所有这些矩阵的平均值 setwd D data group 1 lt list fi
  • CMDeviceMotion 用户加速度漂移

    我正在使用以下方法获取加速度数据 CMDeviceMotion userAcceleration 我注意到一件有趣的事情 Z 轴上总是有一个小偏差 约为 0 0155 方差为 0 002 而在其他轴上 平均值接近 0 我正在使用 iPod
  • 查看 IsEnabled 属性在 Xamarin Forms 上不起作用

    这是我的列表视图 Listview 内部按钮 IsEnabled 属性不起作用 IsEnabled False 不起作用 我遵循了此步骤 但仍然不起作用https forums xamarin com discussion 47857 se
  • 寻找一个Linux PDF库来从PDF中提取注释和图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个免费的库 Java Ruby 它可以在linux上运行 并且可以从PDF中提取图像和注释
  • 从文件流上传到 ADLS

    我正在 ADF 中进行自定义活动 其中涉及从 Azure 存储 Blob 读取多个文件 对它们进行一些处理 最后将生成的文件写入 Azure Data Lake Store 最后一步是我停止的地方 因为据我所知 NET SDK 只允许从本地
  • .NET 应用程序中的最大线程数?

    在 C 应用程序中可以创建的最大线程数是多少 当达到这个限制时会发生什么 是否抛出某种异常 没有固有的限制 最大线程数由可用物理资源量确定 看到这个文章作者 雷蒙德 陈 https devblogs microsoft com oldnew
  • 使用 JavaMail 创建带有附件的 EML 文件 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我将使用