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

delphi - Thunderbird 总是作为 MAPI 邮件客户端工作吗?

我有一个应用程序(我用 Delphi 编写的),它具有格式化和发送电子邮件的功能,使用底层操作系统的 MAPI 客户端。我已经在四台机器上对其进行了测试,并且在 4 例中的 3 例中都按预期工作。我注意到的主要区别是工作机器将 Microsoft 电子邮件客户端设置为默认值,而不能正常工作的机器将 Thunderbird 作为其默认电子邮件客户端。... 我不知道关于 Thunderbird 的事情吗?对这里发生的事情有更好的解释吗?

谢谢,一如既往 - Al C.

0 投票
1 回答
490 浏览

exchange-server - 我在哪里可以学习编写用于 Exchange 集成的原始 MAPI 命令?

尝试在我的 VB .Net 应用程序中使用 Outlook 和 Redemption 时,我有些头疼。网络上是否有任何指南描述了 MAPI 协议以及如何使用它与 Exchange 服务器的连接进行交互?

我知道尝试这种方法会带来更多麻烦,但我仍然很感兴趣。

TIA,戴夫——特林达兹在 Fedang #MAPI-guide

0 投票
2 回答
548 浏览

delphi - 如何确保 MAPI 客户端在启动时获得焦点?

我有一个通过 MAPI 启动用户默认电子邮件程序的功能。邮件程序通常在我的应用程序顶部启动,但有时不会;有时我的应用程序仍保留在桌面显示的顶部。有什么方法可以确保用户的电子邮件程序将在桌面上启动,而不是隐藏在其他打开的应用程序后面?

0 投票
2 回答
1279 浏览

com - 我的应用程序无法使用 MAPI 子系统正确创建 MAPI/Messaging 配置文件

我有一个创建 MAPI 配置文件以发送邮件/消息的应用程序。配置文件在 Outlook2007 环境中正确创建,但在 Outlook2007 SP2 环境中未正确创建。源代码和“MAPI/outlook 配置文件的交换环境”都相同。该配置文件是使用 MAPI 子系统创建的。

关于应用程序的描述: 该应用程序是一个基于 Windows 服务的应用程序。该服务执行 COM 应用程序。COM 应用程序产生一个新线程来创建一个新的配置文件并发送一个示例消息。

实际问题:在配置文件创建期间,即使返回 S_OK,对 ConfigureMsgService 函数(属于 IMsgServiceAdmin)的调用也无法正常工作。ConfigureMsgService 函数的第 5 个参数“lpProps”的值如下所示。

另请注意,在调用 ConfigureMsgService 函数之前,所有其他 MAPI 调用(如 MAPIInitialize、MAPIAdminProfiles、CreateProfile、AdminServices、CreateMsgService、GetMsgServiceTable 等)均已成功。

我的问题,相同的代码在 Outlook 2007 环境中正常工作,但在 Outlook 2007 SP2 环境中失败。

请注意,1. 当从独立应用程序执行相同的代码时,它运行良好。2. 如果服务作为本地系统帐户或网络服务帐户执行,则代码无法正常工作。

  1. 可能是什么问题呢?我是不是错过了什么。
  2. 是否有任何解决方法可用?

提前感谢萨拉瓦南

0 投票
1 回答
2133 浏览

com - 32 位 VB6 应用程序需要自动化 64 位 Outlook 发送电子邮件而不提示用户

我有一个 32 位旧版 VB6 应用程序,它使用 COM 组件自动化 Outlook 发送电子邮件。要求是电子邮件需要出现在 Outlook 的“已发送邮件”文件夹中。更糟糕的是,不允许应用程序弹出通常的安全、警告或确认消息。

在 64 位 Office 出现之前,此应用程序可以正常运行。32 位进程无法自动执行 64 位 Outlook。

我想出的想法如下:

  1. 使用在 CCW 中运行的 .NET WCF 客户端替换 COM 组件(.NET 伪装成 COM)

  2. 此 COM 组件使用 netTcpBinding 调用作为 64 位进程运行的 WCF 服务。

  3. WCF 服务(作为本地系统运行)然后以用户身份启动 64 位控制台应用程序,并使用扩展 MAPI 库发送电子邮件。

第三步的原因有两个:

  1. 如果您告诉 MAPI 发送电子邮件,MAPI 会要求确认。扩展 MAPI 没有。这意味着我们必须使用来自 Microsoft 的正确 64 位头文件编译一个 C++ 扩展 MAPI 库,并从我们的 .NET 代码中“调用”它。

  2. 在 WCF 中模拟(松散使用的术语)用户会导致注册表配置单元加载不正确。换句话说,当扩展 MAPI 尝试从 HKCU 加载配置文件时,它会失败。这意味着我们必须启动一个新进程来基本上“RunAs”正确的用户。

这一切实际上都在实践中有效,但我需要对以下内容进行一些解释:

如果我使用命令行参数中所需的所有信息运行控制台应用程序,MAPI 将无法登录。但是,如果我用 1 个表单编译这个与 Windows 应用程序相同的代码,并且在表单的 OnLoad() 方法中使用完全相同的代码,那么它会成功。谁能解释为什么?

要以当前登录用户(不是本地系统)的身份从 WCF 服务运行“WinForms”应用程序,我执行以下操作以获取正确的令牌:

有没有办法解决?当然,使用 WCF 的内置模拟会更好。

0 投票
2 回答
752 浏览

vb6 - 带有用于 Lotus Notes 的 MAPI 的 VB6

大家,

我需要将邮件功能合并到一个 VB6 应用程序中。默认邮件系统是 Lotus Notes 6.5。我读过这个版本的 Lotus Notes 支持 MAPI。

这是我看到的一件奇怪的事情。当用户单击 SendMail 按钮时,将启动以下代码:

此代码在 Lotus Notes 中打开一个窗口(这是我所期望的),但是 - 收件人地址框包含收件人地址,后跟第一行的正文文本和第二行的收件人地址:

-- 正文部分为空白。

我可以做些什么来修复它或 Lotus Notes 与 MAPI 不兼容。
谢谢,列夫

0 投票
2 回答
29820 浏览

c# - 获取联系人时的 System.Runtime.InteropServices.COMException (0x800706BE)。LastName

我们的一些用户有时会遇到此异常(并非针对每个联系人):

当我们试图获取联系人的姓氏(ContactItem类型)时,就会发生这种情况。

有谁知道问题是什么?

任何帮助,将不胜感激。谢谢!

0 投票
1 回答
312 浏览

php - 通过php调用exe

我有一个 exe 文件,我使用 'system' 命令通过 php 调用它。然后 exe 文件由于某种原因调用 Microsoft mapi,我不知道当我通过 php 调用 exe 时 mapi 没有被初始化,但是如果我从命令行运行 exe,它工作正常。任何线索为什么?

ps 我在 2008 服务器上运行 iis

0 投票
3 回答
2460 浏览

c# - 如何使用嵌入图像创建 HTML 电子邮件并使用 .net (c#) 在默认邮件客户端中显示它?

如果您查看 Windows 中的 Snip 工具,则可以选择将 snip 作为默认邮件客户端中的嵌入式附件发送(我猜是 html 电子邮件)。我正是需要那个。

目前我正在使用简单的 MAPI 来附加图像,但这不允许嵌入。

一个关键要求是它应该被创建然后显示在默认邮件客户端中。我认为我不能为此使用 System.Net.Mail。或者我可以吗?

它是一个使用 c# 的 WPF 应用程序。

编辑:请在回答之前仔细阅读问题。我对此并不陌生。我知道如何在非托管代码中做到这一点,而无需求助于黑客。我需要一个托管的等价物。我不是在寻找黑客,并且很乐意在必要时花大量时间在正确的解决方案上。

0 投票
3 回答
1431 浏览

c# - Outlook - 0×8004010F 访问挂载邮箱时出错

0×8004010F 一个用户在outlook中访问另一个挂载用户的邮箱时抛出错误。除了禁用缓存交换模式之外,可能的解决方案是什么?使用了 VSTO,并在 C# 中实现。