2010-01-13 6 views

Répondre

12

Cocher cette link. Introduction to Outlook Programming va expliquer les choses plus clairement.

Vous pouvez parcourir les adresses mail. Exemple de code

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

Ouais c'est ce que je veux! Merci, mais est-il un moyen d'obtenir les éléments de la boîte de réception d'une autre boîte aux lettres qui est dans Outlook? – Phil

+0

Faire une boucle sur tous les éléments d'un dossier est une mauvaise idée, surtout si vous utilisez un magasin en ligne Exchange. Items.Find/FindNext ou Items.Restrict est le chemin à parcourir. –

2

Looping à travers tous les éléments d'un dossier est une très mauvaise idée, surtout si vous travaillez contre une ligne Exchange magasin. Items.Find/FindNext ou Items.Restrict est le chemin à parcourir.

Recherche/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

Quel est le filtre pour récupérer des emails d'hier? J'ai essayé cela [SentOn]> '17/05/2017 16:21:33' Mais cela ne semble pas fonctionner. Il retourne zéro enregistrements –

+0

Soit cela ou [ReceivedTime]. –

+0

Oui, j'ai fait une petite erreur en formatant la date. Merci –

Questions connexes