我使用下面的代码来检查Outlook中的未读邮件 并且所有内容都适用于默认的收件箱文件夹
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();
}
}
但是我想检查另一个文件夹[我创建了[Name =“Inbox_Personal”]]。我怎么能这样做?
修改1
对本教程的任何建议或参考将不胜感激。
答案 0 :(得分:3)
我使用类似以下内容来访问Outlook中的不同帐户(2007及更高版本; 2007年之前的商店不存在,您只需要查看文件夹)
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();
// ....
}
答案 1 :(得分:0)
var fld = (Outlook.Folder)app.Session.GetFolderFromID("Inbox_Personal", storeID);
我不记得从哪里获取商店ID,但应该存储在你的会话对象或默认文件夹对象中。
修改强> 我现在查看了一个项目:GetFolderFromID中的StoreID是可选的(Type.Missing)。
默认商店ID可在此处找到:
app.Session.DefaultStore.StoreID