问题标签 [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 回答
11963 浏览

mapi - Exchange 2010 - Exchange MAPI 连接问题

我有一个 Exchange 2000/2003/2007 的软件解决方案,现在希望在 2010 年之后。该软件在服务器上运行,并通过RDO使用 Exchange MAPI 与 Exchange服务器通信,检索邮箱内的电子邮件。

在 Exchange 2000/2003/2007 上一切正常,但 2010 不会让步。尝试访问邮箱时继续收到此错误(调用 Session.getSharedMailbox - RDO lib):

从错误看来,交换服务器似乎已关闭,但事实并非如此,我可以从 Outlook 访问一切正常。我已经向 RDO 的开发人员提交了我的案例,我们仍在通信,但我只是想这可能是一些新的 Exchange 2010 功能或架构更改或 MAPI 更改可能导致这种情况?除了在邮箱上启用 MAPI 并授予对运行软件的帐户的访问权限之外,我还需要配置什么吗?

有人遇到过类似的事情吗?任何帮助将不胜感激。

编辑:如果我在这台机器上安装 Outlook(因此用 Outlook MAPI 替换 Exchange MAPI)一切正常,这告诉我问题是 Exchange MAPI?SO上有任何MS Exchange开发人员吗?

0 投票
2 回答
527 浏览

windows - 为什么 Thunderbird 通过 MAPI 发送邮件后总是立即返回?

为什么 Thunderbird 通过 MAPI 发送邮件后总是立即返回?

其他客户端(如 Outlook Express)仅在发送邮件或用户取消请求时返回。但是 Thunderbird 每次都会返回 SUCCESS。

有人知道为什么或知道如何解决吗?

提前致谢。

0 投票
0 回答
1063 浏览

mapi - OpenMsgStore 失败:MAPI_E_NO_SUPPORT 或 E_ACCESSDENIED

我必须支持一个旧的 C++ 程序(我不是它的作者),它使用扩展 MAPI 来扫描 Outlook 2007 中的邮件文件夹。突然,该软件开始在一个客户的计算机上遇到以下问题:调用 OpenMsgStore 对某些文件夹失败代码 0x80040102 (MAPI_E_NO_SUPPORT)。对于其他文件夹,它失败并显示代码 0x80070005 (E_ACCESSDENIED)。但是OpenMsgStore打开的其他文件夹OK。

问题的原因是什么?

0 投票
1 回答
483 浏览

windows - 如何让 mapi 系统存根 dll 将扩展的 mapi 调用传递给我的 dll?

由于各种原因(质疑原因对我没有帮助),我想为windows xp实现我自己的扩展mapi dll。我现在有一个框架 dll,只有几个入口点用于测试,但是系统 mapi 存根(c:\windows\system32\mapi32.dll,我已经检查它与 mapistub.dll 相同)不会通过调用我的 dll,虽然它很高兴地将相同的调用传递给 MS Outlook 的 msmapi32.dll,(MAPIInitialize、MAPILoginEx 是两个这样的调用)。在存根和扩展的 mapi dll 之间有一些秘密握手,其中存根检查“是的,它是一个扩展的 mapi dll”:也许是我还没有实现的一些额外入口点的存在,也许是某个函数的返回值, 我不知道。一世' 我尝试跟踪我编写的一个示例应用程序,该应用程序使用 STraceNT 和 ProcessMonitor 调用 MAPIInitialize,但这并没有显示任何明显的内容。跟踪表明,存根确实加载了我的 dll,但随后发现秘密酱明显丢失,并返回错误代码而不是调用我的 dll 的函数。除了在我的 dll 的导出表中存在 MAPIInitialize 之外,调用 MAPIInitialize 还需要什么?GetProcAddress 说它在那里。除了在我的 dll 的导出表中存在 MAPIInitialize 之外,调用 MAPIInitialize 还需要什么?GetProcAddress 说它在那里。除了在我的 dll 的导出表中存在 MAPIInitialize 之外,调用 MAPIInitialize 还需要什么?GetProcAddress 说它在那里。

我想知道的是如何最小化扩展我的骨架扩展 mapi dll,以便存根 mapi dll 将通过扩展 mapi 调用传递给我的 dll。秘方是什么?我宁愿不要在 msvc 对存根行为进行逆向工程上度过痛苦的一周。

0 投票
1 回答
534 浏览

delphi - 为什么 SendMailMAPI 将文件附件重命名为较短的附件?

我在 Eudora 中使用以下电子邮件功能。由于某种原因,附件文件名被重命名为其他名称。如何确保附件文件名保持不变?

0 投票
2 回答
694 浏览

delphi - 如何最好地证明我的应用程序需要连接到 Outlook?

我有一个用 Delphi 编写的联系人管理应用程序,它具有我 10 年前开发的“与 Outlook 同步”功能。现在,我要回去添加一些功能并修复一些错误。此同步功能使用 Outlook 对象模型开始,但它有一个称为“使用 MAPI 增强功能”的可选模式,它使用纯 MAPI 来加快查找更改的速度,并允许使用 RTF 而不是同步笔记只是纯文本。

我想知道支持两个并行执行路径是否是个好主意。

如果我使用所有 MAPI,我相信我会避免一些安全提示,并且我会避免防病毒具有阻止我的应用程序连接到 Outlook 的“脚本阻止”功能的情况。但我认为不利的一面是,我的 32 位应用程序无法使用 MAPI 连接到 64 位 Outlook 2010。我想知道 MAPI 的未来。

如果我坚持使用 Outlook 对象模型,我的 32 位应用程序是否能够连接到 Outlook 对象模型(因为它是进程外 COM)?如果是这样,这是保留我的 Outlook 对象模型执行路径的一个令人信服的理由。但如果不是,并且如果我的应用程序需要针对 x64 进行编译,那么为什么不直接使用纯 MAPI?

0 投票
1 回答
817 浏览

exchange-server - 扩展 MAPI:如何获取 CopyMessages 移动的消息的条目 ID

我发现如果我使用IMAPIFolder::CopyMessages(使用 MESSAGE_MOVE 标志)移动消息,则消息会获得一个新的条目 ID。但是,我看不到任何可靠的方法可以在新位置获取消息的条目 ID,或者以其他方式获取对它的引用。

到目前为止,我得到的最好的建议是在移动之前用旧的自定义属性标记消息,然后再进行搜索,但我想知道是否有一个不那么复杂的解决方案。

0 投票
2 回答
2073 浏览

delphi - 动态加载 mapi32.dll 时出错

我们的应用程序使用 Simple MAPI 发送电子邮件。我们的一位客户在从他的终端服务器上的会话中发送电子邮件时遇到问题。

mapi32.dll 加载了对 LoadLibrary 的调用,该调用成功,但随后我们的应用程序尝试获取函数MAPILogonMAPILogOff​​ 、MAPISendMailMAPIFreeBuffer的地址MAPIResolveName。问题是GetProcAddress那些带有ERROR_ACCESS_DENIED(代码:5)的函数失败,除了MAPIFreeBuffer. 它看起来像某种安全的东西。

我该如何解决这个问题,或者我应该使用其他方法发送邮件?

FWI,这里有一些关于操作系统和注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 消息子系统内容的更多信息:

我在 Delphi 7.0 上,但这没关系。

编辑,添加版本信息:

C:\WINDOWS\system32\mapi32.dll 的文件版本信息

C:\Program Files\Common Files\SYSTEM\MSMAPI\1043\msmapi32.dll 的文件版本信息

0 投票
2 回答
1367 浏览

windows - 出现在 MYOB Accounting Plus 18.5 及其他版本中。无法从“MAPI32.dll”获取“MAPISendMail”的函数地址

我在 SBS server 2003 上安装了 MYOB。为什么?因为用户使用的是离线文件,结果发现本地和服务器上大约有 7 个版本的文件不同步。所以我可以控制文件访问的唯一方法是强制 RDP 到服务器。始终使用服务器文件并始终保持同步。

无论如何,这个问题发生在 MYOB Accounting Plus 18.5 中。

Cannot get the function address for "MAPISendMail" from "MAPI32.dll" Please check your Mapi installation

我只想从 MYOB 发送邮件,但我不能 - MYOB 支持是无用的,并责怪其他人......(即 Microsoft 和 Outlook)

我发现其他人有同样的问题,他们的解决方法似乎是将 MAPI32.dll 复制到 myob 目录中,但这对我不起作用。

0 投票
4 回答
5166 浏览

statistics - IMAP vs POP vs Exchange的统计数据?

我正在拼命寻找一些关于 POP 与 IMAP 与 Exchange-MAPI 的使用情况的统计数据,尤其是在专业环境中。我知道 IMAP 用于从带宽有限的移动设备访问邮件,而 POP 是旧标准,而 Exchange 更面向业务。有人知道每种协议的大致使用百分比吗?

谢谢 !