问题标签 [mailitem]

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 投票
5 回答
8615 浏览

c# - 如何正确发布 Outlook MailItem?

我只是无法释放我的 Outlook MailItems。打开 200 封邮件后,Exchange 服务器返回已达到的最大打开邮件数。

我要从所有选定的邮件中删除我的 UserProperty。

我的代码:

知道有什么问题吗?

0 投票
1 回答
537 浏览

outlook - 如何取消 Outlook.MailItem 更改?

我正在对 Outlook.MailItem 进行更改,但在关闭最后一个资源管理器后,一个消息框会要求保存该项目(两次!)。

我想取消项目的“脏”状态而不保存它,因此不会显示消息框。

有可能实现吗?我唯一的解决方案是保持以前的状态并再次保存。

0 投票
1 回答
951 浏览

c# - 是否可以使用 c# 在邮件项中设置回复地址

是否可以在 c# 中设置邮件项的回复地址?

然后将回复设置为mailitem.reply();,以便收件人回复的所有消息都进入中央邮箱?

我花了一些时间谷歌搜索,但没有运气。我可能正在寻找不可能的东西或寻找错误的地方。

谢谢你的帮助。

0 投票
2 回答
8647 浏览

c# - 在 c# 中创建/打开从路径到新 Outlook.MailItem 的现有味精

您好,我想从位于磁盘上的现有邮件项创建一个 Outlook.MailItem(我相信)。我将路径存储在字符串中,并希望访问以从中保存正文和附件。

我似乎无法弄清楚如何在 c# 中打开它并访问它。

目前我有一些类似的东西

其中 fl 的计算结果类似于 "C:\users\msgs\email.msg"

谢谢你的时间

0 投票
3 回答
5645 浏览

c# - 从 C# 中的 MailItem 获取命名的 MAPI 属性

我正在用 C# 开发一个 Outlook 2010 自定义插件。这是我第一次使用 C#(我通常是 java 人)。

我想访问的消息中有一个命名的(自定义)MAPI 属性,但在这样做时遇到了麻烦。我的理解是,在 Outlook 2007 中引入了 PropertyAccessor 对象,它允许轻松访问命名的 MAPI 属性。我按照以下文档中的说明进行操作:

http://msdn.microsoft.com/en-us/library/ff868915.aspx

我可以使用 Outlook Spy 在邮件上看到我想要访问的命名 MAPI 属性。从 Outlook Spy 我可以获得有关该属性的以下信息:

所以我尝试了以下代码(对象邮件是 MailItem 的有效实例):

这会产生以下异常:

所以我想知道如何真正获得这个属性?我是否错误地形成了命名空间引用?或者我是否需要使用本示例中概述的方法:

http://www.outlookcode.com/codedetail.aspx?id=1112

我的理解是,这仅对 2007 年之前的 Outlook 版本是必需的。任何帮助深表感谢!

0 投票
2 回答
25357 浏览

vba - 使用 EntryID、StoreID 和/或 PR_ENTRYID 打开 Outlook 邮件项目

注意:我使用的是 VBA 和 Office 2007。(我会使用 C#,但项目参数不允许这样做)

我试图在 Outlook 或 API 中找到一些方法,通过提供 Access 数据库中的 Outlook EntryID 或 MAPI“PR_ENTRYID”属性,我可以打开 Outlook 邮件项目。我发现了很多对上述代码的引用,但我从未见过有人真正发布解决方案。我尝试包含对 mapi32.dll 和 OLMAPI32.dll 的引用,但出现以下错误:“无法添加对指定文件的引用。” 我猜这是因为这些 dll 是为 .NET 设计的。

您可以提供的任何帮助将不胜感激。

0 投票
1 回答
1616 浏览

c#-4.0 - 如何在 Outlook 2010 C#.NET 加载项中确定新的回复/转发邮件的父 MailItem

我正在尝试为 Outlook 2010 开发一个插件,它允许我使用Outlook.MailItem的 UserProperties 集合标记电子邮件。这些字段从数据库配置中加载,并显示在任务窗格中,供用户在撰写电子邮件时填充。当使用插件的人收到电子邮件时,他们可以打开它并在同一任务窗格中查看/编辑标记值。

我还想用当前值填充从标记的电子邮件产生的回复或转发消息。不幸的是,我无法确定新电子邮件来自哪个 Outlook.MailItem。我尝试使用传递给回复事件的新创建的电子邮件来查找父级,使用 Parent 属性或 GetConversation() 方法,这两者都为新创建的项目返回 null。

所以,总结一下:有没有办法确定生成新的回复或转发邮件项的生成邮件项?如果您需要对此问题进行任何澄清,请告诉我。

谢谢,安德鲁

0 投票
1 回答
2182 浏览

events - Outlook 2007 VSTO VB.NET 中 Mailitem 的“读取”事件

好吧,这有点棘手……

我正在使用 VS 2010 和 VSTO 以及 VB.NET 为 MS Outlook 2007 编写插件。我的目标是提示用户打印他们从某些电子邮件地址收到的电子邮件。(这将通过一个简单的 MsgBox 完成。)

具体来说,我希望在用户阅读完电子邮件后得到提示。我的概念是它应该与 Outlook 中的“阅读回执”功能类似。(你知道,那些烦人的事情...... “发件人已要求您提供已阅读此电子邮件的收据等等”

因此,用户阅读电子邮件,然后当他们关闭检查器(或者如果他们在资源管理器视图中将焦点更改为不同的项目)时,MsgBox 会弹出。我注意到当电子邮件变为“已读”时,时间匹配。

几天来,我一直在谷歌和 MSDN 和教程网站上追逐这个,这就是我发现的:

第 1 轮: Mailitem 对象有一个 UnRead 属性,它也有一个 PropertyChange 事件。我可以在收件箱中的每个 Mailitem 上使用 AddHandler for PropertyChange,将它们绑定到一个子例程中,该例程检查 PropertyChange 事件的参数以确保它是未读的。似乎相当可行,除了 PropertyChange 没有传递调用对象的身份,所以我无法知道收件箱中的哪些电子邮件刚刚丢失了“未读”状态。

事实上,似乎没有一个 Mailitem 事件传递它们的身份,可能是因为有人(我猜是 MS)假设您首先拥有指向 Mailitem 对象的直接指针。所以这条路线似乎行不通。

第 2 轮: 我可以将收件箱中的所有邮件项收集到一个集合中,然后将它们限制为仅未读的邮件项。

由于 unreadItems 是用事件变暗的,我可以编写一个 Sub 来处理 unreadItems.ItemRemove,这样可以正常工作。但是 ItemRemove 事件没有对象参数!嗬!

第 3 轮: 假设我做相反的事情:我获取收件箱内容并限制为 [Unread]=false,然后使用 .ItemAdd 事件。这在一定程度上会起作用,除了理论上它会在用户将“[未读] = false”项目从任何文件夹转储到收件箱时调用,而不仅仅是从收件箱中的未读组更改为已读组。所以,除非我在这里误解了一些东西,否则也不是一个选择。

第 4 轮: 现在,我还想到了简单地将 Inbox 项目集合 WithEvents 调暗并关闭 .ItemChange 事件,但该事件并没有真正指定对象发生了什么变化,所以没有骰子。


最后,我对此感到非常困惑。我非常接近放弃我的目标。一个蹩脚的替代方法是在用户收到来自指定地址之一的电子邮件时提醒用户(因为我相信 Application.NewMail 事件不会给我带来任何麻烦)。但是,我将不得不简单地提醒用户——我不会提示他们打印他们甚至还没有阅读的电子邮件。

这种选择是不可取的,我想我会提出我的问题以供检查和建议。

-马特

PS我来自使用Objective-C制作iPad应用程序,我自己构建大部分对象层次结构......不得不处理具有这些限制的COM对象很奇怪。

0 投票
1 回答
1847 浏览

outlook - Outlook 中的 DASL 过滤器以通过 EntryID 选择邮件

我正在尝试使用此 SQL 查询在搜索文件夹上应用 DASL 过滤器 [自定义视图]:

我只想通过我在之前的搜索中找到的 entryID 来选择邮件。搜索文件夹肯定包含具有该 entryID 的邮件。

在同一个文件夹上应用这样的东西

作品。

难道不能这样做吗?还是我的 SQL 查询不正确?

0 投票
1 回答
4470 浏览

c# - 更改outlook mailitem选择c#

我想从我的 Outlook 加载项中选择一个 mailItem。我知道如何从 c# 显示邮件项,但我需要在 Outlook 窗口本身中选择它。

显示一个邮件项:

我正在使用 Outlook 2010 加载项。

有人知道如何做到这一点吗?