问题标签 [mapi]

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 投票
1 回答
329 浏览

mapi - MSG 流 ID 计算

我正在尝试计算 MSG 文件的命名属性部分的流名称,特别是字符串命名属性。MSG 文件格式规范 ID的生成方式如下:

Stream ID = 0x100m ((ID XOR (GUID index << 1 | 1)) MOD 0x1f

其中 ID 值是“Unicode 名称标识符”的 CRC-32。我也有信心0x100m实际上是0x1000

这以某种方式映射'x-mailer'0x100fGUID 索引为 3 时。ID 的值为 0x894e50ff(因为它存储在另一个位置),但如何'x-mailer'转换为该值?

(这些是存储在 下的属性"__nameid_version1.0",部分在"__substg1.0_00040102"流中)。

0 投票
1 回答
944 浏览

c++ - 如何获取默认配置文件 .pst 文件的路径(PR_PST_PATH 属性)

我正在尝试为 Outlook 开发一个自定义通讯簿提供程序。使用MFCMAPI浏览商店,我发现PR_PST_PATH可以通过 IProviderAdmin-Interface 访问 Outlook 默认配置文件的 .pst 文件的属性。

所以我尝试了以下一段mapi代码:

但是调用

失败,返回值为E_INVALIDARGS.

那么,我做错了什么?获得PR_PST_PATH财产的正确方法是什么?

问候

约阿希姆

0 投票
2 回答
3074 浏览

c# - 如何创建 MAPI32.dll 存根以便能够从 MS Word“作为附件发送”?

Microsoft Word 具有“作为附件发送”功能,可在 Outlook 中创建带有附加文档的新消息。

我想用自定义邮件代理替换 Outlook,但我不知道如何实现。现在我的邮件代理只是一个运行的程序,并以文件名作为参数。

据我所知,“作为附件发送”正在使用一些称为 MAPI 的 DLL/API。我需要更改我的应用程序,使其不仅接受文件名参数,而且可以接收 MS Word 在“作为附件发送”时使用的 MAPI(?) 调用。

此外,我需要通过创建自己的 MAPI32.dll 存根来更改默认邮件代理,该存根只是重定向到我的应用程序。

如果有人有更多关于如何实现这一目标的信息,我将不胜感激!

0 投票
1 回答
1085 浏览

outlook - 如何判断给定的 MAPI 消息是传入还是传出?

在 Outlook 的 COM 插件(使用 Redemption)中,我需要能够确定我正在查看的给定消息是已接收还是已发送(我只想对传入的消息采取行动)。在我的情况下,仅查看父文件夹或收件人或发件人将不起作用,因为传入和传出的消息可能会一起放在同一个(公共)文件夹中,并且可能有多个有效的发件人。此外,还可能存在从一个有效发件人发送到另一个有效发件人的内部消息。

检查PR_RECEIVED_BY_*PR_RCVD_REPRESENTING_*识别收到的邮件对我来说也不是完整的解决方案,因为这些属性仅在邮箱存储中设置,而我正在处理的消息通常位于公用文件夹存储中(更准确地说:在启用邮件的 Public文件夹,代表该文件夹发送的消息也放置在其中)。

我已经使用 OutlookSpy 来比较各种示例邮件的 MAPI 属性,并多次认为我找到了一些东西,但到目前为止,我没有发现任何东西被证明是最终稳定的解决方案(例如,起初PR_MESSAGE_RECIP_ME似乎只对传入邮件进行设置,而从未在传出邮件上设置的,但后来我发现传入的消息也缺少该属性)。

本质上,我正在寻找一些属性(或其值),它总是设置在传入或传出消息

这需要至少适用于 Exchange 2003 和 2007 以及 Outlook 2003 和 2007。

有任何想法吗?

0 投票
4 回答
10135 浏览

vsto - 是否有 Outlook MAPI 命名空间的 ID 列表?

我正在开发一个 Outlook 加载项,我正在寻找一个完整的列表,该列表将 MAPI 属性与比这个更模糊的名称相关联。

有很多关于如何访问这些属性的文档 ,但我没有找到任何能告诉我这些属性是什么的东西。

PS我已经看过这篇关于这个主题的帖子,但我真的很想了解更多关于这个主题的信息。

或者,如果有关于扩展外出助手的信息,我们将不胜感激。

谢谢。

0 投票
2 回答
2920 浏览

.net - 是否有适用于 .NET 应用程序的 MAPI API?

数据以压缩文件的形式通过电子邮件传入。我们编写的 Java 解决方案试图自动解析和下载电子邮件并加载数据。我们在通过防火墙时遇到了各种各样的问题,最终解决方案被搁置了。因为管理员不允许访问匿名类型的邮箱。

该帐户当前是 pop3——他们想要移动电子邮件服务器并将帐户类型更改为本地 MAPI。这不适用于 java 解决方案,因为不存在 java -> MAPI API。

.net 解决方案会起作用吗?是否有适用于 .NET 应用程序的 MAPA API?

0 投票
1 回答
3407 浏览

c# - 通过 MAPI 接口从 MailItem 获取电子邮件文件夹

我正在创建一个程序来自动从传入的电子邮件附件生成报告,它几乎可以完全保存一个区域。传入的电子邮件会自动过滤到文件夹中,以区分它们来自哪个客户端和服务器。我不知道如何从电子邮件项目中获取文件夹的路径。

我正在使用该NewMailEx事件调用下面的方法,this.AppNamespacethis.ReportFolder确认已正确实例化。

上的 MSDNMailItem这里。我错过了什么或以不正确的方式接近这个吗?

0 投票
1 回答
841 浏览

mapi - 从地址更改 MAPI

我正在使用 MAPI 从我的 C# 应用程序打开默认电子邮件客户端,与本示例中的类似方式

http://www.codeproject.com/KB/IP/SendTo.aspx?df=100&forumid=257922&select=1801097#xx1801097xx

但是,无论如何定义/更改地址?

0 投票
1 回答
813 浏览

email - 如何从 MapiRecipDesc 获取用户的外部电子邮件地址?

我需要知道如何使用 MAPI 获取电子邮件地址。当我检查MapiRecipDesc结构的内容(例如,通过调用返回MAPIAddress())时,我看到该lpszAddress字段不包含正常的 SMTP 地址,但似乎是某种 Exchange 服务器查询:

EX:/o=MMS/ou=Exchange 管理组 (FYDIBOHF23SPDLT)/cn=Recipients/cn=laiic

我相信我可以使用它通过 Active Directory 从 Exchange 中提取其他信息...有谁知道我是否可以通过这种方式获取外部电子邮件地址,如果可以,我该如何实现?

0 投票
2 回答
830 浏览

c# - Interop.Outlook 是多线程的吗?

我需要使用Outlook 互操作对象从 Web 界面生成 .MSG 文件。这就是为什么它们将被不同的线程同时访问。它是多线程的吗?

还有一个问题:在服务器上使用 Outlook 之前是否需要初始化(例如帐户集)Outlook.Application