问题标签 [tnef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
4389 浏览

c# - 如何解析 winmail.dat 文件?

简单的问题。我有一个 C# 应用程序,它使用AE.Net.Mail库访问 IMAP 服务器来检索消息和附件。有时,当从 Outlook 发送邮件时,附件包含在名为 winmail.dat 的文件中。那是TNEF格式的文件。

我的应用程序是否有库或任何其他方式来“解压”这些文件,以便我可以获取附件?

0 投票
1 回答
4255 浏览

c# - 如何在没有 Outlook 的情况下通过邮件发送 Outlook 任务请求?

我需要复制Outlook特性/功能以向某人发送一些任务请求(请参阅此处),但是使用ASP.NET C#和未在网络服务器上安装 Outlook 的网络服务器发送的邮件(因此无法使用 Outlook 自动化)。

我已经检查了执行此操作的可能性,将任务发送给某人的常见方法似乎是生成格式.ics文件iCalendar,并将该文件包含到邮件中(请参阅此 stackoverflow 问题)。

它工作得很好,但是 Outlook 发送的任务不等同:

  • 事件 (VEVENT) 有一个开始日期和结束日期(就像一个任务),但没有“完成”字段(这是有意义的,因为它是一个事件,而不是一个任务)。
  • Todos (VTODO) 只有截止日期,没有开始日期或结束日期,outlook 不支持

我检查了自己 Outlook 在包含任务请求的邮件中究竟发送了什么:它包含一个winmail.dat编码content-type:application/ms-tnefBase64. 在该文件(这是一个二进制文件)中,有一个IPM.TaskRequest似乎是我需要的引用。

我检查了网络并找到了一些 TNEF 解析器,但我需要相反的:从 C# 代码生成一个包含任务请求的 TNEF 文件。我想知道是否有办法做到这一点。使用库(无论是否免费)都不是问题。

0 投票
3 回答
4268 浏览

php - 如何使用 PHP 脚本提取 TNEF winmail.dat?

我正在开发一种功能,它将读取邮箱中的所有电子邮件并处理附件文件。

从 Outlook 发送任何邮件时,其附件将保存为 winmail.dat。[请注意,我已经有了使用 IMAP PHP 下载附件的代码。我的电子邮件附件存储在服务器上我的代码库的一个文件夹中。] 我需要将 winmail.dat 附件提取为其原始格式。到目前为止,我遇到的解决方案都需要手动操作,例如提供提取文件的在线工具,或使我们能够转换 .DAT 文件的软件。

但我需要使用脚本或任何自动化过程(如 cron 或其他东西)进行提取。[我使用的是 Linux - centos 5.7 服务器。]

我的应用程序是否有任何库或任何其他方式来“解包”这些文件,这样我就可以在不手动执行的情况下获取附件?

谢谢!

0 投票
1 回答
208 浏览

linux - 提取 winmail.dat 信息而不是附件

我已经使用TNEF了一段时间来从RTF发送的电子邮件中提取附件Outlook,但我想知道有没有办法提取有关其中包含的附加信息的信息?

更准确地说,我说的是投票按钮以及它可能包含的其他任何内容?

0 投票
1 回答
828 浏览

c# - TNEF 嵌入消息格式

在我的场景中,我需要阅读交换消息的 MAPI 属性以获取有关名称、大小等附件的信息。对于嵌入式消息,我需要获取更多信息。

所以我的问题是如何阅读嵌入的消息信息?

谁能给我链接到有关如何在 Exchange 服务器上读取消息的嵌入消息的文章或规范文档。我使用以下课程:

  • Microsoft.Exchange.Data.ContentTypes.Tnef.TnefReader
  • Microsoft.Exchange.Data.Transport.Email.EmailMessage

这是简化的代码:

我知道我可以使用以下代码来获取有关嵌入消息的一些信息:

但我需要使用类似于上面代码的方法来获取所有可能的属性。

0 投票
1 回答
2157 浏览

python - 如何用python解析winmail.dat

我正在从服务器上提取带有附件的电子邮件,并根据某些标准将它们放在文件夹中。这对于使用纯文本编码发送的电子邮件来说没有问题,但我们都知道,如果它们是使用富文本发送的,那么附件会被转换为 winmail.dat 格式。

我尝试使用一个名为 tnefparse 的模块,但没有任何运气,因为我在网上找不到任何文档或示例。

谁能提供一些关于如何使用 tnefparse 或任何其他 Python 模块读取和转换 winmail.dat 附件的示例?

0 投票
1 回答
260 浏览

java - Apache POI HMEF - 如何从 MS TNEF 消息中获取附件大小?

我有一个HMEFMessage并使用迭代所有附件

可以使用 获取附件大小tnefAttachment.getMAPIAttribute(MAPIProperty.ATTACH_SIZE)。此方法返回 MAPIAttribute 实例,它只有 getData(),它返回 byte[]。

如何将 byte[] 从 MAPIAttribute 转换为 Long(大小)?

据此 - https://poi.apache.org/apidocs/org/apache/poi/hmef/attribute/package-summary.html - 有一个 MAPIStringAttribute.getAsString(attr),它不适用于 ATTACH_SIZE。

编辑 - ATTACH_SIZE 根据http://grepcode.com/file/repo1.maven.org/maven2/org.openl.rules/org.openl.lib.poi.dev/5.9.4.1/org/apache/poi为 Long /hsmf/datatypes/MAPIProperty.java

0 投票
1 回答
535 浏览

ruby-on-rails - 在 Rails 应用程序中使用 ActionMailer 损坏了 winmail.dat 附件

我在 Ruby on Rails 应用程序中使用 ActionMailer 来阅读电子邮件(ruby 1.9.3,rails 3.2.13)。我有一封附有 winmail.dat 文件(ms-tnef)的电子邮件,我正在使用 tnef gem 来提取其内容。

问题是当我从邮件中读取附件时,它被损坏并且 tnef 无法从中提取文件。

使用任何邮件应用程序提取 winmail.dat 附件,提取的 winmail.dat 可与 tnef 正常工作,我得到了它的内容。

比较这两个文件,我注意到: - 原始文件更大(76k 对 72k) - 它们在换行符上有所不同:原始文件具有 windows 格式(0D 0A),rails 保存的文件具有 linux 格式(0A)

我写了这个测试:

这些消息失败了:

我试图将它作为二进制保存到磁盘,然后再次读取,但我得到了相同的结果

我应该如何阅读附件?

0 投票
1 回答
226 浏览

java - 是否可以从 java 创建 TNEF 文件?

我想从 Java 后端向 Outlook 发送一个任务。

我在这里找到了这个没有解决的线程(并且从 2012 年开始): 如何在没有 Outlook 的情况下通过邮件发送 Outlook 任务请求?

它是否存在可以为 java制作TNEF 文件的库?

0 投票
1 回答
2707 浏览

c# - 在 Outlook 中防止 winmail.dat(用于 gmail 帐户)

我使用 Visual Studio 2013 和 Add-in express v.7.7.4087 开发了一个 Outlook 插件。我必须处理多个电子邮件帐户(商店)。请看以下截图

在此处输入图像描述

当我使用此 Gmail 帐户向其他 Gmail 收件人发送邮件(通过 Outlook)时,我可以看到一个名为“winmail.dat”的附件。但是在将文件发送给 Exchange 电子邮件收件人后,我看不到该文件。不过,对于 Gmail 收件人,我在 Outlook 已发送框中的邮件项目中看不到该附件。

我使用此交换帐户(通过 Outlook)发送的同一封邮件。但它从不将任何“winmail.dat”文件附加到 Exchange 收件人或 Gmail 收件人

不仅如此,每次当我看到这个“winmail.dat”时,我注意到outlook用自己的“href”替换了链接的文本(所以,用户只能看到href而不是我为那个URL输入的文本)我从未体验过交换

我需要的?

  1. 请解释矛盾之处。
  2. 有什么治疗方法吗?

    一个。防止将“winmail.dat”附加到电子邮件

    湾。避免 HTML 链接文本被自己的“href”替换

我做了什么?和阐述

我的插件的目的是在邮件中使用 guid 包装一些 URL。因此,我在发送之前修改了邮件项的 HTML 正文。我也在添加一些用户属性(仅用于根据我的业务逻辑操作邮件项)。但是我在发送之前删除了所有用户属性(在 itemSend 事件中)。

在将 Outlook 邮件正文设置为纯文本(使用 Outlook 设置)后,我进行了相同的测试,但仍然没有运气。