使用C#读取Outlook邮件

Sop*_*oph 12 c# outlook office-interop

我尝试连接到Outlook邮件时使用以下代码.现在,我必须做错事,因为我试图获取收件箱邮件,我总是得到0邮件(当情况不是这样).这是我的代码

 Microsoft.Office.Interop.Outlook.NameSpace nameSpace = application.GetNamespace("MAPI");
 nameSpace.Logon("", "", Missing.Value, Missing.Value);

 inboxFolder = nameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
 Console.WriteLine("Folders: {0}", inboxFolder.Folders.Count);
Run Code Online (Sandbox Code Playgroud)

我的Outlook个人资料中有几个电子邮件帐户.当我写下面的内容时

Console.WriteLine("Accounts: {0}",nameSpace.Accounts.Count);
Console.WriteLine("Name: {0}", nameSpace.Accounts[1].DisplayName);
Run Code Online (Sandbox Code Playgroud)

帐户总数正确显示,我真正想要访问的帐户的名称也是如此(索引1).现在,问题是我需要访问该帐户中的特定文件夹.我该怎么做呢?

Sop*_*oph 23

我可以解决这个问题!实际上很容易.以下是我可以访问所需文件夹的方法:

// my-account@myserver.com is the name of my account
// Unsent mails is the name of the folder I wanted to access
inboxFolder = nameSpace.Folders["my-account@myserver.com"].Folders["Unsent mails"];

foreach (Microsoft.Office.Interop.Outlook.MailItem mailItem in inboxFolder.Items)
{
    if (mailItem.UnRead) // I only process the mail if unread
    {
        Console.WriteLine("Accounts: {0}", mailItem.Body);
    }    
}
Run Code Online (Sandbox Code Playgroud)