2010-01-13 2 views

ответ

12

Проверьте это link. Introduction to Outlook Programming объяснит все более четко.

Вы можете прокручивать почту. Пример кода

using System.Runtime.InteropServices; 
using OutLook = Microsoft.Office.Interop.Outlook; 
using Office = Microsoft.Office.Core; 

    OutLook.Application oApp; 
      OutLook._NameSpace oNS; 
      OutLook.MAPIFolder oFolder; 
      OutLook._Explorer oExp; 

      oApp = new OutLook.Application(); 
      oNS = (OutLook._NameSpace)oApp.GetNamespace("MAPI"); 
      oFolder = oNS.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderInbox); 
      oExp = oFolder.GetExplorer(false); 
      oNS.Logon(Missing.Value, Missing.Value, false, true); 

     OutLook.Items items = oFolder.Items; 
     foreach (OutLook.MailItem mail in items) 
         { 

          if (mail.UnRead == true) 
          { 
         } 
     } 

Edit: Reference other folders

oFolder.Folders["Foldername"] 

Common Outlook tasks

+0

Да, вот что я хочу! Спасибо, но есть ли способ получить элементы «Входящие» из другого почтового ящика, который находится в Outlook? – Phil

+0

Цитирование всех элементов в папке - ужасная идея, особенно если вы работаете с интернет-магазином Exchange. Items.Find/FindNext или Items.Restrict - путь. –

2

Есть несколько примеров доступа к папкам Outlook here, один из которых касается только непрочитанной почты.

Edit: Там KB статья конкретно о доступе к папкам из C#, Programming samples that can reference items and folders in Outlook by using Visual C# .NET

Чтобы открыть папку другого пользователя, используйте GetSharedDefaultFolder

+0

но мне нужно C#:/ – Phil

2

Перебор всех элементов в папке ужасная идея, особенно если вы работаете против онлайн Обменный магазин. Items.Find/FindNext или Items.Restrict - путь.

Найти/FindNext:

OutLook.Items items = oFolder.Items; 
OutLook.MailItem mail = items.Find("[Unread] = true"); 
while (mail != null) 
{ 
    MessageBox.Show(mail.Subject); 
    mail = items.FindNext(); 
} 

Items.Restrict:

OutLook.Items items = oFolder.Items.Restict("[Unread] = true") 
foreach (OutLook.MailItem mail in items) 
{ 
    MessageBox.Show(mail.Subject); 
} 
+0

Что такое фильтр для получения писем вчера? Я пробовал это [SentOn]> '17.05.2010 4:21:33 PM «Но это не работает. Он возвращает нулевые записи –

+0

Либо это, либо [Время приема]. –

+0

Да, я делал небольшую ошибку при форматировании даты. благодаря –

Смежные вопросы