问题标签 [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.
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'
到0x100f
GUID 索引为 3 时。ID 的值为 0x894e50ff(因为它存储在另一个位置),但如何'x-mailer'
转换为该值?
(这些是存储在 下的属性"__nameid_version1.0"
,部分在"__substg1.0_00040102"
流中)。
c++ - 如何获取默认配置文件 .pst 文件的路径(PR_PST_PATH 属性)
我正在尝试为 Outlook 开发一个自定义通讯簿提供程序。使用MFCMAPI浏览商店,我发现PR_PST_PATH
可以通过 IProviderAdmin-Interface 访问 Outlook 默认配置文件的 .pst 文件的属性。
所以我尝试了以下一段mapi代码:
但是调用
失败,返回值为E_INVALIDARGS
.
那么,我做错了什么?获得PR_PST_PATH
财产的正确方法是什么?
问候
约阿希姆
c# - 如何创建 MAPI32.dll 存根以便能够从 MS Word“作为附件发送”?
Microsoft Word 具有“作为附件发送”功能,可在 Outlook 中创建带有附加文档的新消息。
我想用自定义邮件代理替换 Outlook,但我不知道如何实现。现在我的邮件代理只是一个运行的程序,并以文件名作为参数。
据我所知,“作为附件发送”正在使用一些称为 MAPI 的 DLL/API。我需要更改我的应用程序,使其不仅接受文件名参数,而且可以接收 MS Word 在“作为附件发送”时使用的 MAPI(?) 调用。
此外,我需要通过创建自己的 MAPI32.dll 存根来更改默认邮件代理,该存根只是重定向到我的应用程序。
如果有人有更多关于如何实现这一目标的信息,我将不胜感激!
outlook - 如何判断给定的 MAPI 消息是传入还是传出?
在 Outlook 的 COM 插件(使用 Redemption)中,我需要能够确定我正在查看的给定消息是已接收还是已发送(我只想对传入的消息采取行动)。在我的情况下,仅查看父文件夹或收件人或发件人将不起作用,因为传入和传出的消息可能会一起放在同一个(公共)文件夹中,并且可能有多个有效的发件人。此外,还可能存在从一个有效发件人发送到另一个有效发件人的内部消息。
检查PR_RECEIVED_BY_*
或PR_RCVD_REPRESENTING_*
识别收到的邮件对我来说也不是完整的解决方案,因为这些属性仅在邮箱存储中设置,而我正在处理的消息通常位于公用文件夹存储中(更准确地说:在启用邮件的 Public文件夹,代表该文件夹发送的消息也放置在其中)。
我已经使用 OutlookSpy 来比较各种示例邮件的 MAPI 属性,并多次认为我找到了一些东西,但到目前为止,我没有发现任何东西被证明是最终稳定的解决方案(例如,起初PR_MESSAGE_RECIP_ME
似乎只对传入邮件进行设置,而从未在传出邮件上设置的,但后来我发现传入的消息也缺少该属性)。
本质上,我正在寻找一些属性(或其值),它总是设置在传入或传出消息上。
这需要至少适用于 Exchange 2003 和 2007 以及 Outlook 2003 和 2007。
有任何想法吗?
.net - 是否有适用于 .NET 应用程序的 MAPI API?
数据以压缩文件的形式通过电子邮件传入。我们编写的 Java 解决方案试图自动解析和下载电子邮件并加载数据。我们在通过防火墙时遇到了各种各样的问题,最终解决方案被搁置了。因为管理员不允许访问匿名类型的邮箱。
该帐户当前是 pop3——他们想要移动电子邮件服务器并将帐户类型更改为本地 MAPI。这不适用于 java 解决方案,因为不存在 java -> MAPI API。
.net 解决方案会起作用吗?是否有适用于 .NET 应用程序的 MAPA API?
c# - 通过 MAPI 接口从 MailItem 获取电子邮件文件夹
我正在创建一个程序来自动从传入的电子邮件附件生成报告,它几乎可以完全保存一个区域。传入的电子邮件会自动过滤到文件夹中,以区分它们来自哪个客户端和服务器。我不知道如何从电子邮件项目中获取文件夹的路径。
我正在使用该NewMailEx
事件调用下面的方法,this.AppNamespace
并this.ReportFolder
确认已正确实例化。
上的 MSDN在MailItem
这里。我错过了什么或以不正确的方式接近这个吗?
mapi - 从地址更改 MAPI
我正在使用 MAPI 从我的 C# 应用程序打开默认电子邮件客户端,与本示例中的类似方式
http://www.codeproject.com/KB/IP/SendTo.aspx?df=100&forumid=257922&select=1801097#xx1801097xx
但是,无论如何定义/更改地址?
email - 如何从 MapiRecipDesc 获取用户的外部电子邮件地址?
我需要知道如何使用 MAPI 获取电子邮件地址。当我检查MapiRecipDesc结构的内容(例如,通过调用返回MAPIAddress()
)时,我看到该lpszAddress
字段不包含正常的 SMTP 地址,但似乎是某种 Exchange 服务器查询:
EX:/o=MMS/ou=Exchange 管理组 (FYDIBOHF23SPDLT)/cn=Recipients/cn=laiic
我相信我可以使用它通过 Active Directory 从 Exchange 中提取其他信息...有谁知道我是否可以通过这种方式获取外部电子邮件地址,如果可以,我该如何实现?