问题标签 [outlook-object-model]

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 回答
1378 浏览

c# - 以编程方式在 Outlook 2007 中创建 IMAP 帐户

我们正在推出一个新的语音邮件系统,并试图找出一种以编程方式将新 IMAP 帐户添加到用户 Outlook 的方法。

想法是我创建一个表单,它需要一堆所需的字段,并为它们创建所有这些。

0 投票
1 回答
2302 浏览

outlook - 当用户关闭 Outlook 并且我的应用程序正在使用 OLE 自动化时,如何避免“RPC 服务器不可用”?

我的应用程序使用 Outlook 对象模型。Outlook 是一个进程外 COM 服务器。在 Outlook 2007 之前,如果用户在我的应用程序引用它时关闭 Outlook,Outlook 将保持在隐藏状态下运行。在 Outlook 2007 中,如果用户关闭 Outlook,进程将关闭并且我的应用程序会收到“RPC 服务器不可用”。Outlook 忽略了我的应用程序引用。

如何让 Outlook 2007 尊重我的应用程序对它的引用,并执行它在 Outlook 2000 中所做的事情(在我的应用程序发布引用之前一直运行)?

0 投票
1 回答
2265 浏览

vb.net - 如何通过 Outlook 的对象模型找到“联系人”文件夹?

我有一些代码可以通过遍历Application.Session.Stores集合来定位用户可以访问的所有联系人文件夹。

这适用于用户的联系人以及所有公共联系人文件夹。它还查找用户通过工具 -> 帐户设置... 菜单命令添加的其他邮箱帐户中的所有联系人文件夹。

但是,这要求用户对其他人的帐户具有完全访问权限。当用户只能访问其他人的联系人时,该人的联系人会显示在“联系人”视图中的“联系人”组下。如何找到那些不显示在下面的联系人文件夹Session.Stores

要查看其他用户的联系人文件夹而不添加对其完整邮箱的访问权限,请单击 Outlook 菜单中的文件 -> 打开 -> 其他用户的文件夹...。在对话框中,输入其他用户的名称并Contacts从文件夹类型下拉列表中选择。

这是我用来查找所有用户的 Outlook 联系人文件夹列表的代码(减去错误检查和日志记录)。我知道这可以(也许应该)使用对Outlook.Application类型的早期绑定来完成,但这不会影响结果。EnumerateFolders是递归的,因此它搜索所有子文件夹。

0 投票
1 回答
2857 浏览

c# - 如何在 Outlook 中访问撰写邮件项目的主题

在 Outlook 中,我可以设置新邮件的主题(在撰写新邮件时),但我想添加文本。所以我需要先获取主题,然后设置它。

此代码适用于回复,但不适用于新邮件,因为在这种情况下,myMailItem 为空。

0 投票
2 回答
914 浏览

c# - 如何通过 C# 在 Outlook 字段“收件人”中添加多个电子邮件地址?

有人知道如何通过 C# 在 Outlook 字段“收件人”中添加多个电子邮件地址吗?

当我尝试按照上面描述的方式进行操作时,我会收到下一种字符串:mail1@mail.commail2@mail.commail3@mail.com

0 投票
1 回答
5763 浏览

c# - 如何使用唯一且稳定的标识符访问 Outlook 邮件?

我正在构建一个应用程序来分析 Outlook 电子邮件,存储分析的信息,然后允许用户打开满足特定条件的邮件。

我希望我会从每封电子邮件中提取 Message-ID,将其存储在我的数据库中,然后要求 Outlook 通过稍后提供 Message-ID 来打开邮件。但是,我似乎错过了一些东西。

通过 Outlook 互操作 API,我可以获得一个 EntryID,但据我所知,EntryID 只能保证在给定文件夹(或者可能是给定商店)中是稳定的。如果将邮件移动到不同的文件夹,EntryID 可能会更改。此外,API 要求在通过 EntryID 查找消息时提供 StoreID。同样,如果消息在商店之间移动,则该信息可能是无效的。

我见过很多与 Office 相关的产品,它们似乎在做我上面描述的事情。如何有效地查找 Outlook 可访问的消息,而不考虑商店等?

目前,我的备用计划是为我扫描的每个 Message-ID 存储 EntryID 和 StoreID 信息,然后尝试我为给定 MessageID 记录的所有各种 EntryID / StoreID 组合,直到成功。但这似乎是 Outlook 应该已经知道如何为我完成的工作。

谢谢,

-帕特里克

0 投票
2 回答
656 浏览

vb.net - VB.net 2005 使用 Outlook 2003 发送电子邮件

我们目前使用以下代码在 Outlook 中创建电子邮件,以便用户可以在 Outlook 中键入他们想要的内容,然后在发送电子邮件时,系统会提示他们查看是否要保存电子邮件。

只要他们不使用 Word 作为电子邮件编辑器,该代码就可以在 Outlook 2003 上正常工作。但是,将 Word 设置为电子邮件编辑器后,测试电子邮件对象是否已关闭的 while 循环永远不会结束。

有没有办法以不同的方式处理这个问题,以便即使使用 Word 作为编辑器也能正常工作?

0 投票
2 回答
2289 浏览

c# - 在后台线程上引发的 Outlook 电子邮件发送事件

我正在创建一个 Outlook 邮件项对象并监视发送事件。一切看起来都很好,但是当 Send 事件触发时,该事件会在我的应用程序的后台线程上引发。这是一个问题的原因是此事件创建了通过我的应用程序发送的电子邮件的记录,该记录被添加到对象集合中。因此,该集合在后台线程上引发 List Changed 事件,从而导致对显示该集合的控件进行跨线程控件访问。

这是我的活动联播:

该事件连接在一个基本类中,该类包含对正在发送的消息的引用,以及在引发发送事件时调用的委托。这允许我将电子邮件对象的实例传递给委托。

这是我的处理程序:

这是此事件的正确行为还是我在构造对象时做错了什么?谢谢你的帮助。

编辑:澄清一下,我不是在 UI 层中处理事件,而是在业务对象中。从发送事件处理程序调用的委托会在内部将一个新对象添加到列表中,这会导致引发列表的 ListChanged 事件,从而导致在显示此列表的控件中调用处理程序。我希望这能澄清我想要实现的目标。

0 投票
1 回答
1568 浏览

perl - 如何使用 Perl 的 Mail::Outlook 格式化邮件?

我想格式化我使用 Mail::Outlook 发送的消息。例如更改字体大小或使其变为粗体等。我该怎么做?

0 投票
1 回答
376 浏览

outlook-addin - 通过 COM Outlook 插件从 Exchange 获取用户可用性

我有一个用 C++ (VS2005) 编写的 COM Outlook 插件。我正在尝试查看在此插件中是否可以获得随机用户或资源,并查看它在特定会议时间是否可用。基本上,我正在尝试从下面列出的 2007 Exchange Web Service api 中执行 getuseravailability() 之类的操作。

获取用户可用性

这是获取此信息的唯一方法吗?我一直在查看 CDO、ADSI、MAPI 和 Outlook 对象模型,但找不到其他类似的东西。我正在避免使用 Web 服务,因为我运行的 Exchange 服务器可能没有启用它/可能不是 Exchange 2007。而且,我希望 COM api 可以轻松与现有的 Outlook COM 插件集成,我真的希望OOM 解决方案。

我错了还是 webservices sdk 是否也需要在运行插件的机器上安装 .net ?