有没有办法让特定文件夹中的所有邮件进入我的应用程序?
答案 0 :(得分:13)
检查link。 Introduction to Outlook Programming会更清楚地解释事情。
你可以循环浏览邮件。示例代码
using System.Runtime.InteropServices;
using OutLook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
OutLook.Application oApp;
OutLook._NameSpace oNS;
OutLook.MAPIFolder oFolder;
OutLook._Explorer oExp;
oApp = new OutLook.Application();
oNS = (OutLook._NameSpace)oApp.GetNamespace("MAPI");
oFolder = oNS.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderInbox);
oExp = oFolder.GetExplorer(false);
oNS.Logon(Missing.Value, Missing.Value, false, true);
OutLook.Items items = oFolder.Items;
foreach (OutLook.MailItem mail in items)
{
if (mail.UnRead == true)
{
}
}
oFolder.Folders["Foldername"]
答案 1 :(得分:4)
循环浏览文件夹中的所有项目是一个糟糕的主意,特别是如果您正在使用在线Exchange商店。 Items.Find/FindNext
或Items.Restrict
是可行的方法。
查找/ FindNext中:
OutLook.Items items = oFolder.Items;
OutLook.MailItem mail = items.Find("[Unread] = true");
while (mail != null)
{
MessageBox.Show(mail.Subject);
mail = items.FindNext();
}
Items.Restrict:
OutLook.Items items = oFolder.Items.Restict("[Unread] = true")
foreach (OutLook.MailItem mail in items)
{
MessageBox.Show(mail.Subject);
}
答案 2 :(得分:2)
有一些访问Outlook文件夹here的示例,其中一个专门处理未读邮件。
编辑:有一篇专门关于从C#,Programming samples that can reference items and folders in Outlook by using Visual C# .NET
访问文件夹的知识库文章要打开其他用户的文件夹,请使用GetSharedDefaultFolder
答案 3 :(得分:0)
./foo.py
我经历过" COM_object"上述解决方案的异常错误,更多信息请参阅here