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

delphi - 在 Outlook 中标记为已读的项目上的事件 - Delphi COM 插件

我有一个适用于 Outlook (2000-2007) 的 Delphi COM 加载项,并且正在尝试找到一种方法来在 Outlook 中的 MailItem 标记为已读时注册事件。我想在项目被标记为已读时/就在项目中添加一个附加属性。

有谁知道如何使用 Outlook 对象模型来做到这一点?我还使用 Add-In-Express 组件来帮助获取其他属性事件。

0 投票
2 回答
296 浏览

com - 我如何可靠地判断两个 Inspector 引用指向同一个 Inspector 实例?

[继续从有没有办法判断两个 COM 接口引用是否指向同一个实例?]

我有Inspector来自两个不同来源的对象的引用,并且需要能够区分来自一个来源的哪个项目对应于来自另一个来源的哪个项目。但是,到目前为止,我想出的方法都没有(可靠):

  • 我不能简单地比较IUnknown接口,因为该Inspectors.Item()方法似乎返回了对动态创建的代理对象的引用,而不是检查器实例本身。试试看:两次访问同一个索引将返回两个截然不同的指针。

  • 比较Inspector.CurrentItem.EntryID也不好。新的/未保存的项目EntryID始终为空白,一次可能有多个未保存的项目打开。

  • Inspector.Caption或者Inspector.CurrentItem.Subject同样模棱两可。

  • 暂时将Inspector.CurrentItem.Subject(或任何其他项目属性)设置为明确的值,然后在其他列表类型的作品中查找该值,但具有将检查器中的项目标记为“脏”的烦人副作用,即在关闭检查器时将再次要求用户保存该项目(即使他只是查看收到的邮件)。

还有其他想法吗?


语境:

我正在尝试解决众所周知的错误/功能,即通过简单 MAPI 发起的新电子邮件消息(例如,资源管理器上下文菜单中的发送到>邮件收件人)不会生成Inspectors.NewInspector事件,因此无法向那些添加任何插件功能检查员(例如添加工具栏按钮或在消息创建时执行代码)。在我的 COM 插件中,我有一个用于捕获事件的包装器对象的内部列表InspectorInspectors.NewInspector通过监视和Inspector.Close事件将项目添加和删除到此列表中。

作为一种替代方法,我使用了一个 shell 钩子:我现在能够在创建或销毁新的检查器窗口时收到通知,因此这似乎是一个很好的地方,可以跳入并将我的内部包装对象列表与Application.Inspectors集合匹配并相应地添加或删除新的或孤立的包装对象。

0 投票
2 回答
3467 浏览

vb.net - 查找 Outlook.MAPIFolder 的类型

我正在为应用程序构建 Outlook 控件,并通过递归添加子文件夹来填充树列表。这些文件夹被声明为 Outlook.MAPIFolder。但该应用程序只允许从实际电子邮件导入,所以我想排除包含日历项目的文件夹。我可以右键单击 Outlook 中的这些文件夹,转到属性,然后将类型视为“包含日历项目的文件夹”。但我似乎无法在 VB.Net 中以编程方式解决这个问题。我错过了一些简单的东西吗?

0 投票
2 回答
5528 浏览

html - Outlook HTML 邮件 - 将链接项目更改为嵌入

我正在尝试通过 C# 3 发送 HTML 格式的电子邮件Outlook.MailItem

电子邮件是通过从 RTF 控件(TX 文本控件)保存而在外部生成的,该控件生成 HTML,其中包含指向存储在<<FileName>>_files 子目录中的图像的链接。例子:

<img border="0" src="file:///C:/Documents%20and%20Settings/ItsMe/Local%20Settings/Temp/2/zbt4dmvs_Images/zbt4dmvs_1.png" width="94" height="94" alt="[image]">

以这种方式发送电子邮件会生成链接损坏的邮件。

使用 Outlook 2007 作为电子邮件客户端和 Word 作为电子邮件编辑器,切换到 RTF(选项选项卡、格式选项卡组)可以保留布局内联图像。

通过以下方式以编程方式执行此操作:

丢失格式并破坏图像(图像成为[image]屏幕上的链接标记,可单击但不再显示图像)。这并不奇怪,因为MailItem.BodyFormat 属性的文档说“当属性从 RTF 切换到 HTML 时,所有文本格式都会丢失,BodyFormat反之亦然”。

可悲的是,似乎没有一种简单的方法来更改 to 中的each Type,因为它是在创建.AttachmentMailItem.AttachementsOlAttachmentType.olByValueAttachment

想到的一种方法是遍历 HTML,用标记替换<img>标签并以编程方式遍历MailItem文本,插入一个Outlook.Attachmentof Type OlAttachmentType.olByValue.

另一种选择是转换<img>要使用的链接src="cid:uniqueIdN"并将图像添加为具有引用身份的附件。

那么,对于这个问题......有没有办法将链接图像转换为嵌入图像,最好不要进入第三方工具,如 Redemption?转换为 RTF 碰巧会产生结果,但这样做绝不是先决条件,而且显然可能会失去保真度 - 我只是想让它正常工作:D 我现有的想法对我来说听起来都不干净。

0 投票
2 回答
437 浏览

outlook - Outlook 2003 插件

我想为 Outlook 2003 创建一个自定义插件/插件,以支持与任务管理系统的集成功能。

我找不到很多好的开发资源。

有人可以解释一下 Outlook 2003 架构和插件的开发。

也欢迎良好的链接/资源。

0 投票
2 回答
1126 浏览

outlook - 如何查找在 Outlook 2007 中复制的约会项目的计数

在 Outlook 2007 中当用户有两个日历说测试和实际日历,他去查看测试日历中的所有约会,复制说大约 20 到 30 个约会并将它们粘贴到实际日历的“所有约会项目视图,如何获取消息框说复制了这么多项目。

如果再次为另外 50 个约会项目重复复制/粘贴,则进一步补充我上面的评论,则消息框应显示 50(此计数应正确出现,无需关闭 Outlook 或终止会话

0 投票
2 回答
2761 浏览

outlook - Application.ActiveInspector() 在 Outlook 功能区加载时为 Null

是否可以在加载色带时访问 ActiveInspector。Application.ActiveInspector() 在我使用自定义表单时返回正确的值,但对于默认联系表单不返回。

我需要 ActiveInspector 来根据 ActiveInspector().CurrentItem 中的属性值自定义功能区按钮。

0 投票
1 回答
348 浏览

c# - 如何将联系人插入 Outlook - C# 3.0

问题的标题解释了我想要实现的目标。我知道可以使用Microsoft OUtlook object library 12.0. 但是,我正在寻找一个托管选项,或者将 XML 导入到 Outlook 中。因为,联系人的数量可以是数千。所以,我期待着最好的方法。您知道的任何开放/封闭源代码库。

请告诉我。

0 投票
1 回答
146 浏览

c# - 使用 C# 在 Outlook 中插入联系人时 CPU 使用率达到 100%?

这个问题与我关于将联系人插入 Outlook的问题有关。

除了 OOM(Outlook 对象模型)或 Microsoft Outlook 对象库 12.0 之外,没有人能提出任何这样做的方法,所以我最终使用了 OOM。

当我尝试插入 1000 条记录时,我的 CPU 使用率达到 100%。我正在关闭联系人,我是否必须处理或关闭其他任何东西?

此外,如果我的程序正在运行并且 Outlook 已打开,如果有人关闭 Outlook,则程序会出错。

0 投票
1 回答
4524 浏览

outlook - 使用 VSTO 在 Outlook 插件中获取邮箱名称

我正在使用 VSTO 处理 Outlook 2003 AddIn。有没有办法获取用户的邮箱名称NTUserName