2011-12-03 1 views
10

Outlook 메일에 연결하려고 할 때 다음 코드를 사용하고 있습니다. 이제는받은 편지함 메일을 가져 오려고하고 항상 0 개의 메일을 받게되므로 잘못된 작업을 수행해야합니다 (이 경우는 아님). 내 코드입니다C#으로 Outlook 메일 읽기

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)의 이름이 다음 쓸 때. 이제 문제는 해당 계정 내의 특정 폴더에 액세스해야한다는 것입니다. 어떻게해야합니까?

답변

16

나는 이것을 풀 수 있었다! 그것은 실제로 아주 쉬웠다. 다음은 원하는 폴더에 액세스하는 방법입니다.

// [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); 
    }  
}