当前位置: 首页 > 知识库问答 >
问题:

使用Interop.Outlook和ews

艾星河
2023-03-14

我正在使用EWS搜索和显示电子邮件。然而,项目的最后一步是将特定的消息保存为文件系统上的.msg文件。我知道这在EWS中是不可能的,所以我需要使用Interop.Outlook来实现这一点。我的问题是:根据EWS提供的信息,找到Outlook消息的最佳方法是什么。我尝试将通过EWS从exchange获得的Message.ID和ConversationId与Outlook的messageId关联起来,但迄今未成功。

 OUTLOOK.Application olApp = new OUTLOOK.Application();
        OUTLOOK.NameSpace olNS = olApp.GetNamespace("MAPI");
        OUTLOOK.MAPIFolder oFolder = olNS.GetDefaultFolder(OUTLOOK.OlDefaultFolders.olFolderInbox);
        OUTLOOK.Items oItems = oFolder.Items;
        String sFilter = string.Format("@SQL=\"http://schemas.microsoft.com/mapi/proptag/0x1035001F\" = '{0}'", missive.ConversationID.UniqueId);
        object obj = oItems.Find(sFilter);
        OUTLOOK.MailItem oEmail = (OUTLOOK.MailItem)obj;
        if (oEmail != null)
        {
            return oEmail;
        }
        else
        {
            throw new Exception("MAIL ITEM NOT IN OUTLOOK");
        } 

共有1个答案

卓瀚
2023-03-14

您可以使用ConvertIdType请求;请参阅:https://msdn.microsoft.com/en-us/library/office/bb856559(V=exchg.140).aspx。

有关MAPI属性及其DASL名称和属性标记值的列表,请参阅:https://msdn.microsoft.com/en-us/library/office/cc815517.aspx。虽然Outlook Spy也是一个很好的工具。

 类似资料:
  • 我正在学习Spring Boot,并试图实现身份验证。我有一个注册页面,它使用POST方法发送新用户数据以存储在内存数据库中。奇怪的是,当我提交表单时,GET方法是唯一被调用的方法。这是我的超文本标记语言文件: 如您所见,表单上有< code>method="POST"属性。 这是我的注册控制器: 我已经将放在@GetMap()方法中,即使我点击注册表单上的提交按钮,也可以在我的服务器上看到该方法

  • 问题内容: 我想在其他线程不再引用它时正确关闭Closeable对象。 我写了一些小测试,但是将对象加入队列后,get方法返回null,即poll方法返回没有引用的正确Object。 提前致谢。任何帮助将不胜感激。 问题答案: 首先,如果仅是关闭,请使用。接下来,从参考队列中,不保证您将获得参考。并且您将永远不会找回实际的对象(参考对象)。 如果要确保已关闭,则必须自己跟踪它们。然后,当您使用参考

  • 问题内容: 我目前正在研究Mockito框架,并且已经使用Mockito创建了一些测试用例。但后来我读到的不是调用模拟( SomeClass的 的.class)我可以使用和-我需要做的唯一一件事情就是我的注释测试类或使用的方法。 但这不起作用-似乎不会起作用!这是我的2个代码修订-一个使用注释,另一个不使用注释。 我究竟做错了什么? 正如我所说-这项工作很棒。但是以下内容不会: 这是课程: 我想念

  • 问题内容: 我对Python相对较新(我使用MATLAB的次数更多)。我本质上希望能够制作和保存动画。因此,我去检查了它的工作方式,发现了这一点:http : //jakevdp.github.io/blog/2012/08/18/matplotlib- animation-tutorial/ 我直接将代码复制/粘贴到IPython Notebook中。 我了解必须安装ffmpeg,我认为我已经安

  • 我已经在运行El Capitan的Mac上安装了Python 2.7和3.5。此外,我在python中使用了Symphy包(与pip一起安装)。我想用Pypy(用自制软件安装)运行我的代码,但Pypy似乎找不到Sympy,并说: “没有名为sympy的模块” 我根本不是专家,现在不知道该怎么办。Sympy可以很好地与Python2和3配合使用,但不能与Pypy配合使用。 我感谢你的每一个回答,提前

  • 简介 Vargrant是一个管理虚拟机环境的工具,允许你在不同的虚拟化和云平台 配置和使用可再生的工作环境.它也集成了Ansible作为对虚拟机的服务提供者,而且这两个工具配合的很好. 这个指南会叙述如何同时配合使用Vagrant和Ansible. 如果你对Vagrant还不了解,你应该看看这个文档 the documentation. 假设你已经安装了Ansible,在Git上检测,运行的也很好