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

delphi - 使用 MAPI 和 Outlook 发送 HTML 邮件时出现问题

我正在尝试在我的 Delphi 应用程序中使用 MAPI 调用发送 HTML 电子邮件。
当客户端是 Thunderbird 时,如果工作正常。但是,当客户端是 Microsoft Outlook 或 Outlook Express 时,我需要将 HTML 代码保存在一个文件中并将其作为邮件的第一个附件发送,邮件客户端在其他地方将 HTML 解释为文本,显示标签。
仅当不再发送附件时,将 HTML 作为第一个附件发送才有效,因为如果我发送一个或多个附件,则第一个 (HTML) 也显示为附件。

有人可以帮助我吗?

提前致谢。

道格拉斯。

消息确定:
确定 http://www.freeimagehosting.net/uploads/e51dfa52f4.jpg

坏消息(带一个附件):
坏 http://www.freeimagehosting.net/uploads/7e5689e2b9.jpg

0 投票
2 回答
9999 浏览

exchange-server - 检测是否安装了 Exchange MAPI

从 Exchange 2007 开始,安装 Exchange 时不再安装 MAPI。在这些系统上,如果您想使用 MAPI,除了 Exchange 之外还需要此安装。

我的软件依赖于 Exchange MAPI,所以我需要检测它是否已安装。如何可靠地测试 MAPI 是否安装在本地计算机上?一等奖将是我是否还可以知道它的 Exchange MAPI 或 Outlook MAPI 以及它是 32 位还是新的 64 位。

0 投票
1 回答
2063 浏览

c# - windows live mail mapi 支持

我正在编写需要使用 MAPI 发送电子邮件的 ac# .net 应用程序。我正在使用以下库来实现此http://www.codeproject.com/KB/IP/SendFileToNET.aspx 这是我如何使用它的示例。

这段代码在默认邮件程序上打开一个新的消息对话框,如果用户决定发送或中止发送电子邮件,应该显示。

此代码在使用 Outlook 时工作正常,这意味着它会弹出一个新的电子邮件对话框并返回正确的错误代码,例如,如果用户决定不通过关闭消息对话框发送消息。

问题是当使用 windows 邮件时,这不能正常工作。发送邮件对话框正确打开,应用程序在 mapi.SendMailPopup 上暂停执行,直到邮件对话框关闭。然而,无论用户做什么,mapi.SendMailPopup 总是返回零。例如,如果用户决定关闭消息对话框而不发送消息,则 mapi.SendMailPopup 在正确响应为 1(用户中止)时返回 0。

我的问题是 windows live mail 是否需要为此提供 MAPI 支持,如果没有,有人可以告诉我其他一些免费的 windows 邮件客户端,它们将提供所需的 MAPI 支持

0 投票
3 回答
552 浏览

python - 使用 python 修改文件夹的 Exchange ACL

在尝试读取文件夹的 ACL 表时,我遇到了这个问题:

在 C++ 工具 (MFCMAPI) 中,此方法用于获取可用数据类型的属性 PR_ACL_TABLE:

我想在 python win32 中做到这一点:

但似乎 MAPI 扩展不知道 IID_IExchangeModifyTable 类型。我刚刚收到这个错误:

属性错误:'module' object has no attribute 'IID_IExchangeModifyTable'

有人知道通过 MAPI(和 python)从交换中获取和修改 ACL 数据的另一种方法吗?

谢谢-侯爵

0 投票
3 回答
2261 浏览

delphi - Delphi:MAPILOGON 错误代码 1

我尝试了许多版本的 MAPISend,但每次都在一个地方出错。MAPILogon 返回错误代码 1。

我尝试使用“MAPISend 组件”,此代码:

http://prog.hu/tudastar/60044-6/Delphi-Email+csatolt+file+thunderbird.html

和其他 2 个。

有趣的是,Acrobat Reader 可以使用带有附加到电子邮件功能的 MAPI,并且“发送”“在邮件中”上下文菜单也可以使用。

我不明白为什么它不工作,在我的机器(Win7)上它工作正常。

然后我失败的机器有WinXP OS,他们使用Thunderbird。

怎样才能成功登录 MAPI?

谢谢:dd

0 投票
1 回答
721 浏览

c# - 使用 GetTable 时如何访问 Outlook 邮件的收件人?

出于性能考虑,我正在使用 GetTable() 枚举 Outlook 邮件文件夹。这为我提供了一组 Row 对象,我可以枚举这些对象以获取给定文件夹中的特定属性。在开始枚举之前,我可以使用表格的 Columns 集合来控制结果中的列。总的来说,这很好用。但是,我不知道如何访问任何多值属性。具体来说,我无法为邮件的收件人取回任何值。

我已将收件人列添加到所需的列集中,但它总是返回 null。我用 MFCMAPI 检查了相关的消息,显然有收件人:-)

GetTable的文档说某些类型的列仅部分受支持。它确实谈到了收件人:

返回对象的属性,例如 Attachments、Parent、Recipients、RecurrencePattern 和 UserProperties。

但它特别说:

如果属性被其显式的内置名称引用,则不支持;如果属性被其命名空间引用,则支持。

我正在使用其命名空间引用该属性(使用 Columns.Add):http: //schemas.microsoft.com/mapi/proptag/0x0E12000D。但是,该值始终返回 null。

有什么不对劲!任何人都可以为我提供一个使用 GetTable 的收件人属性(PR_MESSAGE_RECIPIENTS)枚举收件人的示例吗?

0 投票
1 回答
417 浏览

python - 从 MAPI 检索用户条目 ID

我使用接口 IExchangeModifyTable 扩展了 win32comext MAPI,以通过 MAPI 编辑 ACL。我可以修改现有的 ACL 条目,但我坚持添加新条目。根据这个 C 示例,我需要用户条目 ID 来添加它

示例来源来自 MSDN

我可以打开通讯簿,但是 pywin32 mapi 中没有提供 HrCreateDirEntryIdEx。我在交换扩展中找到它,它在我的系统上无法编译,缺少库问题。您是否有任何想法检索用户条目 ID?

谢谢。

  • 帕特里克
0 投票
2 回答
1710 浏览

delphi - 从 delphi 控制邮件客户端

我在这里有一个问题,我们需要控制 Embarcadero Delphi 2010 的前景。

我们今天使用了一些第三方组件来打开邮件发送窗口,这在前段时间奏效了。但现在它似乎在较新的 Outlook 版本上失败了。

是否有任何组件专门用于从 Delphi 控制 Outlook,或者是否有任何 MAPI 客户端可以作为更好的替代品。

我们需要做的基本上是: 1. 在 Outlook 中启动新消息(发送收件人作为参数) 2. 接收发送的消息以便我们可以存储它 3. 将消息从 Outlook 拖放到我们的应用程序。

如果最终用户不使用 Outlook,一个普通的 MAPI 就足够了。

我在哪里可以找到一个很好的强大组件来为我做这样的工作?

0 投票
1 回答
373 浏览

.net - 外出规则的 MAPI

如果可能,我需要使用 MAPI 或任何其他 API 阅读和修改“不在办公室”规则(不是主题、正文或启用标志),例如,我需要阅读邮件应该转发给谁并修改此字段。你知道任何样本、网址、起点或其他任何可以帮助我实现这一目标的东西吗

谢谢阿尔米尔

0 投票
1 回答
885 浏览

c# - 使用协议“mapi://”从 C# 在 Outlook 中打开邮件


mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가我希望以我通过 Windows 桌面搜索搜索得到的格式执行 URL 。

在带有 Outlook 2007 的 Vista 上,如果 Outlook 已打开,则无法打开电子邮件。除了有时,当它出于神秘的原因工作时。


以下是我尝试过的一些事情,试图让它发挥作用:

执行它Process.Start,或Process.Start通过 cmd.exe /c start 执行它。前者冻结了一分钟,然后什么也没做,Process.Start返回 null (除非 Outlook 尚未打开,但它工作时)。后者弹出一个“未指定的错误”消息框。

使用协议“mapi://”从 java 在 Outlook 中打开邮件
我不知道如何让这个脚本工作。我生成的 vbs 脚本声称发现了无效字符。另外,这个解决方案让我很难过。

http://social.msdn.microsoft.com/forums/en-US/windowsdesktopsearchdevelopment/thread/00491710-e245-452f-8b0a-56caa56277e4/ 我怀疑这个解决方案会起作用。但是,由于编译器错误,我无法让它在 C++ 或 C# 中工作。这是一个不确定要包含哪些库或在 C# 中如何有效使用ShellItem2互操作等的问题。

在目录中创建应用程序快捷方式 我尝试创建一个快捷方式并调用Process.Start它。这也不起作用,尽管当我双击它时快捷方式本身起作用。