首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Office.Interop如何在已发送文件夹中使用PR_SEARCH_KEY查找电子邮件

Office.Interop如何在已发送文件夹中使用PR_SEARCH_KEY查找电子邮件
EN

Stack Overflow用户
提问于 2018-02-12 09:36:09
回答 1查看 173关注 0票数 0

我的软件使用Outlook对象模型(Interop)。

在发送电子邮件之前,我会获取并保留我们创建的电子邮件的PR_SEARCH_KEY。

如果我想使用PR_SEARCH_KEY在已发送文件夹中查找电子邮件,如何在c#中使用Office.Interop (而不是EWS或不兑换)来执行此操作?

我试着从SentFolder.Items.Find(过滤器)中找到它。但它不起作用,因为PR_SEARCH_KEY是二进制的。

谢谢!

代码语言:javascript
复制
        public Outlook.MailItem FindEmailFromSentFolder(string emailId)
    {
        try
        {
            if (_sentFolderItems == null)
                return null;

            // find the sent mail from sent folder based on PR_Serach_Key
            var filter = string.Format("@SQL=\"http://schemas.microsoft.com/mapi/proptag/0x300B0102\" = '{0}'",
                                   emailId);

            var item = _sentFolderItems.Find(filter);

            if (item != null && item is Outlook.MailItem)
                return item as Outlook.MailItem;
        }
        catch (Exception ex)
        {
            return null;
        }
        return null;
    }
EN

回答 1

Stack Overflow用户

发布于 2018-02-12 11:12:12

正如你已经注意到的,面向对象模型不能让你搜索任何二进制属性--你需要扩展的MAPI (C++或者Delphi)或者赎回(任何语言)。

最好的方法是对传出邮件设置一些字符串属性,然后在“已发送邮件”文件夹中查找它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48738420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档