2012-06-22 14 views
6

Xin chào Tôi tự hỏi liệu có thể gửi truy vấn tìm kiếm đến Outlook 2010 từ ứng dụng WinForms của tôi hay không. Tức là, không tìm kiếm tệp .PST như tôi đã tìm kiếm và tìm kiếm, tôi đang cố hiển thị danh sách kết quả trong Outlook như thể tôi đã nhập vào hộp tìm kiếm.Thực hiện truy vấn tìm kiếm trong Outlook

Nếu có thể, mọi mã mẫu sẽ hữu ích. Ngoài ra, có thể trực tiếp thực hiện tìm kiếm trong Tất cả các mục thư so với thông thường, khi bạn thực hiện tìm kiếm, nó sẽ kết hợp thư mục hiện tại. Cảm ơn.

Trả lời

8

Nếu bạn muốn truy cập dữ liệu Outlook (ví dụ thư), bạn phải thêm tham chiếu COM vào thư viện đối tượng Microsoft Outlook X.X.

Đối với Outlook, bạn có thể sử dụng COM interop. Mở hộp thoại Add Reference và chọn tab .NET, sau đó thêm một tham chiếu đến Microsoft.Office.Interop.Outlook assembly.

enter image description here

Sau đó đừng quên để thêm không gian tên "Microsoft.Office.Interop.Outlook" để sử dụng khoản của bạn.

Bây giờ bạn có thể tạo một thể hiện của đối tượng ứng dụng Outlook:

Microsoft.Office.Interop.Outlook.Application outlook; 
outlook = new Microsoft.Office.Interop.Outlook.Application(); 

Hãy thực hiện một truy vấn trên hộp thư của bạn:

MAPIFolder folder = 
    outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox); 
    IEnumerable<MailItem> mail = 
     folder.Items.OfType<MailItem>().Where(m => m.Subject == "Test").Select(m => m); 

Bạn chỉ rõ thư mục mà bạn muốn tìm kiếm như một tham số cho phương thức GetDefaultFolder (...). Bạn có thể chỉ định thư mục khác ngoài hộp thư đến.

  • olFolderSentMail
  • olFolderOutbox
  • olFolderJunk
  • ...

Check-out mỗi giá trị có thể có trên MSDN:

OlDefaultFolders Enumeration

Stefan Cruysbergs tạo OutlookProvider component hoạt động như một trình bao bọc cho đối tượng ứng dụng Outlook. Bạn có thể sử dụng LINQ để truy vấn nhà cung cấp này và truy xuất dữ liệu như danh bạ, thư ... vv .. Chỉ cần download mã của anh ấy và kiểm tra. Điều này là đủ để bạn bắt đầu.

+1

hmm đây không phải là điều tôi mong đợi. Tôi quen thuộc với việc tạo một thể hiện của Outlook, điều này dường như quay trở lại ứng dụng các kết quả của truy vấn. Thay vào đó, tôi muốn chỉ cần mở Outlook, cung cấp truy vấn tìm kiếm từ ứng dụng của tôi và trong cá thể đang mở (hoặc nếu không mở, bắt đầu Outlook) sẽ hiển thị kết quả tìm kiếm từ truy vấn được cung cấp. – ikathegreat