从Outlook获取未读邮件

Phi*_*hil 8 .net c# outlook

有没有办法将特定文件夹中的所有邮件发送到我的应用程序?

PRR*_*PRR 14

检查此链接.Outlook编程简介将更清楚地解释事情.

你可以循环浏览邮件.示例代码

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)
                            {
                        }
        }
Run Code Online (Sandbox Code Playgroud)

编辑: 引用其他文件夹

oFolder.Folders["Foldername"]
Run Code Online (Sandbox Code Playgroud)

OutLook代码

常见的Outlook任务


Dmi*_*nko 6

遍历文件夹中的所有项目是一个糟糕的主意,尤其是当您使用在线 Exchange 商店时。Items.Find/FindNext或者Items.Restrict是要走的路。

查找/查找下一个:

OutLook.Items items = oFolder.Items;
OutLook.MailItem mail = items.Find("[Unread] = true");
while (mail != null)
{
  MessageBox.Show(mail.Subject);
  mail = items.FindNext();
}
Run Code Online (Sandbox Code Playgroud)

Items.Restrict:

OutLook.Items items = oFolder.Items.Restict("[Unread] = true")
foreach (OutLook.MailItem mail in items)
{
  MessageBox.Show(mail.Subject);
}
Run Code Online (Sandbox Code Playgroud)