首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从特定文件夹获取未读邮件

如何从特定文件夹获取未读邮件
EN

Stack Overflow用户
提问于 2011-05-12 10:26:57
回答 2查看 3.9K关注 0票数 4

我正在使用下面的代码检查outlook中的未读邮件,对于默认的收件箱文件夹,一切正常。

代码语言:javascript
复制
 Microsoft.Office.Interop.Outlook.Application oApp;
    Microsoft.Office.Interop.Outlook._NameSpace oNS;
    Microsoft.Office.Interop.Outlook.MAPIFolder oFolder;
    Microsoft.Office.Interop.Outlook._Explorer oExp;

    oApp = new Microsoft.Office.Interop.Outlook.Application();
    oNS = (Microsoft.Office.Interop.Outlook._NameSpace)oApp.GetNamespace("MAPI");

    oFolder = oNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
    oExp = oFolder.GetExplorer(false);
    oNS.Logon(Missing.Value, Missing.Value, false, true);
    Microsoft.Office.Interop.Outlook.Items items = oFolder.Items;

    foreach (Object mail in items)
    {
        if ((mail as Microsoft.Office.Interop.Outlook.MailItem) != null && (mail as Microsoft.Office.Interop.Outlook.MailItem).UnRead == true)
        {
           string sasd= (mail as OutLook.MailItem).Subject.ToString();

        }
    }

但是我想检查另一个文件夹[我已经创建了名称=“Inbox_Personal”)。我怎么能这么做?

编辑1

如对本教程有任何建议或参考,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-12 10:35:59

代码语言:javascript
复制
var fld = (Outlook.Folder)app.Session.GetFolderFromID("Inbox_Personal", storeID);

我不记得从哪里获取存储ID,但应该存储在默认文件夹对象的会话对象中。

我现在在一个项目中查找到的编辑:StoreID in GetFolderFromID是可选的(Type.Missing)。

在这里可以找到默认的商店ID:

代码语言:javascript
复制
app.Session.DefaultStore.StoreID

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._namespace.defaultstore(v=office.12).aspx

票数 0
EN

Stack Overflow用户

发布于 2012-10-19 12:51:19

我使用类似于下面的内容来访问Outlook中的不同帐户(2007及更高版本;2007年之前不存在存储,您只需查看文件夹)

代码语言:javascript
复制
Microsoft.Office.Interop.Outlook.Application oApp;
Microsoft.Office.Interop.Outlook.NameSapce oNS = oApp.GetNameSpace(“Mapi”);
foreach(Microsoft.Office.Interop.Outlook.Store oAccounts in oNS.Stores)
{ 
    // get the right account:
    Microsoft.Office.Interop.Outlook.Store oDesiredAccount;
    foreach(Microsoft.Office.Interop.Outlook.Store oAccount in oAccounts)
    {
        if(oAccount.DisplayName.ToLower.Equals(“<<Name of Account>>”)
        {
            oDesiredAccount = oAccount;
        }
    }

    // do stuff with the account
    Microsoft.Office.Interop.Outlook.MAPIFolder root = oAccount.GetRootFolder();
    // ....
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5976604

复制
相关文章

相似问题

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