Il faut impérativement avoir installer OUTLOOK (et pas le Express!)
Récupere dans une collection d'élément "Mails" les mails rangé dans la boite aux lettres X en filtrant sur la date de réception et/ou de création et/ou le sujet et/ou l'expéditeur :
GetAllMailInBox(ByVal MailBoxPath As String, _
Optional ByVal MailBoxFrom As OlDefaultFolders, _
Optional ByVal FilterMail As Collection)
'--- MailBoxPath = Nom de la boite au lettre
'--- MailBoxFrom = 6 'C'est ce qu'il y a de mieux
'--- FilterMail = Collection de type simple ex :
FilterMail.ADD "21/11/2003", "RECEIVEDTIME"
ex :
Dim MailReceived as New Collection
Dim FilterMail as New Collection
FilterMail.ADD "CodeS-SourceS du","SUBJECT"
Set MailReceived = GetAllMailInBox("Code source",olFolderInbox,FilterMail)
Source / Exemple :
Option Explicit
Dim MSOE_App As New Outlook.Application
Dim MSOE_NameSpace As NameSpace
Dim MSOE_Folder As MAPIFolder
Dim MSOE_Mail As MailItem
Public Function GetAllMailInBox(ByVal MailBoxPath As String, _
Optional ByVal MailBoxFrom As OlDefaultFolders, _
Optional ByVal FilterMail As Collection) As Collection
Dim ReturnValue As New Collection
Dim SubFolder As Variant
Dim Ok As Integer
On Error GoTo GetAllMailInBox_Fail
Set MSOE_NameSpace = MSOE_App.GetNamespace("MAPI")
Set MSOE_Folder = MSOE_NameSpace.GetDefaultFolder(MailBoxFrom)
For Each SubFolder In Split(MailBoxPath, "\")
If SubFolder <> "" Then Set MSOE_Folder = MSOE_Folder.Folders(SubFolder)
Next SubFolder
On Error Resume Next
For Each MSOE_Mail In MSOE_Folder.Items
If TypeOf MSOE_Mail Is MailItem Then
With FilterMail
Ok = 0
Ok = Ok - (UCase(Left(MSOE_Mail.Subject, Len(.Item("SUBJECT")))) = UCase(.Item("SUBJECT")))
Ok = Ok - (Format(MSOE_Mail.CreationTime, "dd/mm/yyyy") = Format(CDate(.Item("CREATIONTIME")), "dd/mm/yyyy"))
Ok = Ok - (Format(MSOE_Mail.ReceivedTime, "dd/mm/yyyy") = Format(CDate(.Item("RECEIVEDTIME")), "dd/mm/yyyy"))
Ok = Ok - (UCase(Left(MSOE_Mail.ReceivedByName, Len(.Item("SENDERNAME")))) = UCase(.Item("SENDERNAME")))
End With
If Ok = FilterMail.Count Then ReturnValue.Add MSOE_Mail
End If
Next MSOE_Mail
GetAllMailInBox_Fail:
Set GetAllMailInBox = ReturnValue
End Function
Conclusion :
Pas trop top si l'on veux filtrer sur d'autres propriétés !!! (on ouvre le code et on code...)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.