2012-06-07 80 views
7

trong phần bổ sung outlook của tôi, tôi muốn thêm một nút trên ruy-băng để khi người dùng nhấp vào nút này, tôi muốn truy xuất nội dung email đã chọn hiện tại, tôi có mã này nhưng nó chỉ lấy email đầu tiên hộp thư đến vì chỉ mục là 1:Truy xuất nội dung email hiện tại Trong Outlook

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI"); 
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox = mapiNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox); 
String body = ((Microsoft.Office.Interop.Outlook.MailItem)myInbox.Items[1]).Body; 

vậy làm cách nào để truy xuất email mở hiện tại trong triển vọng? , phương pháp này làm việc cho tôi nhưng tôi cần lấy chỉ mục cho email hiện tại.

Cảm ơn.

Trả lời

7

Bạn không nên khởi tạo phiên bản Outlook.Application() mới mỗi lần. Hầu hết các khung công cụ bổ trợ cung cấp cho bạn phiên bản Outlook.Application tương ứng với phiên Outlook hiện tại, thường thông qua một trường hoặc thuộc tính có tên là Application. Bạn dự kiến ​​sẽ sử dụng điều này trong suốt thời gian bổ trợ của bạn.

Để có được item hiện lựa chọn, sử dụng:

Outlook.Explorer explorer = this.Application.ActiveExplorer(); 
Outlook.Selection selection = explorer.Selection; 

if (selection.Count > 0) // Check that selection is not empty. 
{ 
    object selectedItem = selection[1]; // Index is one-based. 
    Outlook.MailItem mailItem = selectedItem as Outlook.MailItem; 

    if (mailItem != null) // Check that selected item is a message. 
    { 
     // Process mail item here. 
    } 
} 

Lưu ý rằng ở trên sẽ cho phép bạn xử lý đầu tiên mục đã chọn. Nếu bạn có nhiều mục được chọn, bạn có thể muốn xử lý chúng trong một vòng lặp.

+0

cảm ơn sự giúp đỡ, nhưng có lỗi trong dòng 2: Thành viên không thể ủy quyền 'Microsoft.Office.Interop.Outlook._Explorer.Selection' không thể được sử dụng như phương thức – Radi

+1

Xin lỗi; Tôi quên rằng 'Lựa chọn' là một tài sản, không phải là một phương pháp. Hãy thử lại với mã đã sửa đổi. – Douglas

+0

Kiểm tra xem các mục đã chọn có phải được thêm vào cũng như người dùng có thể đã chọn liên hệ, cuộc hẹn hoặc một thứ khác. Chỉ cần 2 xu của tôi. –

6

On Top thêm tài liệu tham khảo để

using Outlook = Microsoft.Office.Interop.Outlook; 

Sau đó bên trong một phương pháp;

Outlook._Application oApp = new Outlook.Application(); 
if (oApp.ActiveExplorer().Selection.Count > 0) 
      { 
       Object selObject = oApp.ActiveExplorer().Selection[1]; 

       if (selObject is Outlook.MailItem) 
       { 
        Outlook.MailItem mailItem = (selObject as Outlook.MailItem); 
        String htmlBody = mailItem.HTMLBody; 
        String Body = mailItem.Body; 
       } 
      } 

Bạn cũng có thể thay đổi nội dung hiển thị trước khi xem thư.

Các vấn đề liên quan