Подтвердить что ты не робот

Чтение почты Outlook с помощью С#

Я использую следующий код, когда пытаюсь подключиться к почте Outlook. Теперь я должен делать что-то неправильно, потому что я пытаюсь получить почту Inbox, и я всегда получаю 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);

У меня есть несколько учетных записей электронной почты в моем профиле Outlook. Когда я пишу следующие

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

Общее количество учетных записей отображается правильно, и поэтому имя учетной записи, на которую я действительно хочу получить доступ (индекс 1). Теперь проблема в том, что мне нужно получить доступ к определенной папке внутри этой учетной записи. Как это сделать?

4b9b3361

Ответ 1

Я мог бы решить это! На самом деле это было довольно просто. Вот как я мог получить доступ к желаемой папке:

// [email protected] is the name of my account
// Unsent mails is the name of the folder I wanted to access
inboxFolder = nameSpace.Folders["[email protected]"].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);
    }    
}