Interception de l'arrivée d'un mail
----------------------------------------------------
Gestion de l'événement d'arrivée d'un mail dans le répertoire Inbox de Outlook
' Import des bibliotheques
Imports Outlook = Microsoft.Office.Interop.Outlook
Imports Redemption
' Voir question "Comment lister les mails presents dans le repertoir "Inbox" d'Outlook"
Dim m_ObjOutlookApp As Outlook.Application = New Outlook.ApplicationClass
Dim n As Outlook.NameSpace = m_ObjOutlookApp.GetNamespace("mapi")
Dim f As Redemption.RDOFolder
Dim rdoSession As Redemption.RDOSessionClass = New Redemption.RDOSessionClass
rdoSession.MAPIOBJECT = n.MAPIOBJECT
f = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox)
' Gestion de l'evenement OnNewMail
rdoSession.OnNewMail += New IRDOSessionEvents_OnNewMailEventHandler(rdoSession_OnNewMail)
' Methode de recuperation de l'evenement d'arrivée du nouveau mail
Private Sub rdoSession_OnNewMail(ByVal EntryID As String)
' A coder
End Sub
Comment lister les mails présents dans le répertoire Inbox d'Outlook
---------------------------------------------------------------------------------------------------
Pour ce faire, nous utiliserons Outlook et la DLL de Outlook Redemption. Cette dernière permet d'enlever la confirmation d'autorisation par un code externe à Outlook. Ce code permet de récupérer uniquement les mails présents dans le répertoire Inbox. L'ajout des références Microsoft Excel 11.0 Object Library ainsi que celle de Outlook Redemption sont nécessaires.
' Import des bibliotheques
Imports Outlook = Microsoft.Office.Interop.Outlook
Imports Redemption
' Creer une instance d'Application Outlook
Dim m_ObjOutlookApp As Outlook.Application = New Outlook.ApplicationClass
' Recuperer le NameSpace
Dim n As Outlook.NameSpace = m_ObjOutlookApp.GetNamespace("mapi")
' Recuperer le Repertoire Rdo (Redemption)
Dim f As Redemption.RDOFolder
Dim rdoSession As Redemption.RDOSessionClass = New Redemption.RDOSessionClass
rdoSession.MAPIOBJECT = n.MAPIOBJECT
' Recuperation du repertoire Inbox (rdoDefaultFolders est un enum, d'autres repertoires sont disponibles)
f = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox)
For Each Item As Object In f.Items
' Creation d'un item RDOMailClass
Dim rdom As RDOMailClass = CType(Item, RDOMailClass)
' rdom est un mail a proprement parler. Les proprietes accessibles sont par exemple : SenderEmailAddress,Body,Subject ...
Next
foreach (Object Item in f.Items)