2011-12-03 49 views
10

Tôi đang sử dụng mã sau đây khi tôi cố gắng kết nối với thư Outlook của mình. Bây giờ, tôi phải làm một cái gì đó sai vì tôi cố gắng để có được hộp thư đến và tôi luôn nhận được 0 thư (khi điều này không phải là trường hợp). Đây là mã của tôiĐọc thư Outlook với C#

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); 

Tôi có một vài tài khoản email trong hồ sơ Outlook của mình. Khi tôi viết sau đây

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

Tổng số tài khoản được hiển thị chính xác và tên tài khoản tôi thực sự muốn truy cập (chỉ mục 1). Bây giờ, vấn đề là tôi cần truy cập vào một thư mục cụ thể trong tài khoản đó. Làm thế nào để tôi làm điều này?

Trả lời

16

Tôi có thể giải quyết vấn đề này! Nó thực sự khá dễ dàng. Dưới đây là cách tôi có thể truy cập thư mục mong muốn:

// [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); 
    }  
} 
Các vấn đề liên quan