2010-01-13 12 views

risposta

12

Controllare questo link. Introduction to Outlook Programming spiegherà le cose in modo più chiaro.

È possibile scorrere i mailitems. Codice di esempio

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

Sì questo è quello che voglio! Grazie, ma c'è un modo per ottenere gli Articoli della Posta in arrivo da un'altra Mailbox che si trova in Outlook? – Phil

+0

L'analisi di tutti gli elementi in una cartella è una pessima idea, soprattutto se si sta lavorando contro un negozio di Exchange online. Items.Find/FindNext o Items.Restrict è la strada da percorrere. –

2

Looping attraverso tutti gli elementi in una cartella è una pessima idea, soprattutto se si sta lavorando contro un on-line Negozio di Exchange Items.Find/FindNext o Items.Restrict è la strada da percorrere.

Trova/TrovaSuccessivo:

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

Qual è il filtro per il recupero delle email di ieri? Ho provato questo [SentOn]> '17/05/2017 4:21:33 PM' Ma non sembra funzionare. Restituisce zero record –

+0

O quello o [ReceivedTime]. –

+0

Sì, stavo facendo un piccolo errore nella formattazione della data. Grazie –

Problemi correlati