C# 使用Interop.outlook和ews
我使用EWS搜索和显示电子邮件。但是,项目的最后一步是将特定消息保存为文件系统上的.msg文件。我知道这在EWS中是不可能的,所以我需要使用Interop.Outlook来实现这一点。我的问题是:鉴于EWS提供的信息,查找Outlook邮件的最佳方式是什么。我已尝试将通过EWS从exchange获得的Message.Id和ConversationId与Outlook的messageId相关联,但迄今为止未成功 以下是查找ConversationID的当前(失败)代码:C# 使用Interop.outlook和ews,c#,outlook,interop,exchangewebservices,C#,Outlook,Interop,Exchangewebservices,我使用EWS搜索和显示电子邮件。但是,项目的最后一步是将特定消息保存为文件系统上的.msg文件。我知道这在EWS中是不可能的,所以我需要使用Interop.Outlook来实现这一点。我的问题是:鉴于EWS提供的信息,查找Outlook邮件的最佳方式是什么。我已尝试将通过EWS从exchange获得的Message.Id和ConversationId与Outlook的messageId相关联,但迄今为止未成功 以下是查找ConversationID的当前(失败)代码: OUTLOOK.Appl
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");
}
另一方面:我正在寻找一个Outlookd过滤器的引用,它是[property]=值版本的属性名称;以及用于@SQL版本的十六进制值。是否有人有一个链接到一个很好的参考 您可以使用ConvertIdType请求;请参阅: 有关MAPI属性及其DASL名称和属性标记值的列表,请参阅:。尽管Outlook Spy也是一个很好的工具