OVH Cloud OVH Cloud

Récupérer date de réception d'un e-mail sous Outlook

2 réponses
Avatar
Florent
Bonjour,

Voil=E0 je souhaiterais r=E9cup=E9rer la date de r=E9ception d'un=20
e-mail sous Outlook, afin de la comparer =E0 la date du jour.
Je m'explique, j'ai utilis=E9 une fonction de sauvegarde des=20
pi=E8ces jointes dans un r=E9pertoire. Voici la fonction :

Function SaveAttachments(strPath As String)

Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem
=20
Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer
=20
Set OlMAPI =3D OlApp.GetNamespace("MAPI")
Set OlItems =3D OlMAPI.PickFolder.Items
=20
=20
'MsgBox "la date de r=E9ception est : " &=20
OlItem.ReceivedTime
=20
'If OlItem.ReceivedTime > "08/10/2003 00:01" Then
For Each OlItem In OlItems
NbAttachments =3D OlItem.Attachments.Count
i =3D 1
=20
Do While i <=3D NbAttachments
strAttachment =3D OlItem.Attachments.Item(i).FileName
OlItem.Attachments.Item(i).SaveAsFile strPath &=20
strAttachment
i =3D i + 1
Loop
Next OlItem
'End If

Set OlItem =3D Nothing
Set OlItems =3D Nothing
Set OlMAPI =3D Nothing
Set OlApp =3D Nothing

End Function

Cette fonctions marchent parfaitement, mais je=20
souhaiterais sauvegarder uniquement les pi=E8ces jointes des=20
mails envoy=E9s le jour m=EAme (=E0 la date du jour =E0 laquelle=20
j'utilise la fonction). Commment faire ?

Merci d'avance

2 réponses

Avatar
Raymond
Bonjour.

tu as inversé les lignes:

'MsgBox "la date de réception est : " & OlItem.ReceivedTime
'If OlItem.ReceivedTime > "08/10/2003 00:01" Then
For Each OlItem In OlItems

il faut mettre:
For Each OlItem In OlItems
MsgBox "la date de réception est : " & OlItem.ReceivedTime
If OlItem.ReceivedTime > "08/10/2003 00:01" Then

selon les structures de date, il vaut mieux procéder avec format pour être
sûr du résultat:
If Format(OlItem.ReceivedTime, "yyyymmdd") > Format(Date -1, "yyyymmdd")
Then
par exemple.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Florent" a écrit dans le message de
news:2708301c38f0c$570c9dd0$
Bonjour,

Voilà je souhaiterais récupérer la date de réception d'un
e-mail sous Outlook, afin de la comparer à la date du jour.
Je m'explique, j'ai utilisé une fonction de sauvegarde des
pièces jointes dans un répertoire. Voici la fonction :

Function SaveAttachments(strPath As String)

Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem

Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer

Set OlMAPI = OlApp.GetNamespace("MAPI")
Set OlItems = OlMAPI.PickFolder.Items


'MsgBox "la date de réception est : " &
OlItem.ReceivedTime

'If OlItem.ReceivedTime > "08/10/2003 00:01" Then
For Each OlItem In OlItems
NbAttachments = OlItem.Attachments.Count
i = 1

Do While i <= NbAttachments
strAttachment = OlItem.Attachments.Item(i).FileName
OlItem.Attachments.Item(i).SaveAsFile strPath &
strAttachment
i = i + 1
Loop
Next OlItem
'End If

Set OlItem = Nothing
Set OlItems = Nothing
Set OlMAPI = Nothing
Set OlApp = Nothing

End Function

Cette fonctions marchent parfaitement, mais je
souhaiterais sauvegarder uniquement les pièces jointes des
mails envoyés le jour même (à la date du jour à laquelle
j'utilise la fonction). Commment faire ?

Merci d'avance
Avatar
Florent
Effectivement

Merci


-----Message d'origine-----
Bonjour.

tu as inversé les lignes:

'MsgBox "la date de réception est : " &
OlItem.ReceivedTime

'If OlItem.ReceivedTime > "08/10/2003 00:01" Then
For Each OlItem In OlItems

il faut mettre:
For Each OlItem In OlItems
MsgBox "la date de réception est : " &
OlItem.ReceivedTime

If OlItem.ReceivedTime > "08/10/2003 00:01" Then

selon les structures de date, il vaut mieux procéder avec
format pour être

sûr du résultat:
If Format(OlItem.ReceivedTime, "yyyymmdd") > Format(Date -
1, "yyyymmdd")

Then
par exemple.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Florent" a écrit dans le message de
news:2708301c38f0c$570c9dd0$
Bonjour,

Voilà je souhaiterais récupérer la date de réception d'un
e-mail sous Outlook, afin de la comparer à la date du
jour.

Je m'explique, j'ai utilisé une fonction de sauvegarde des
pièces jointes dans un répertoire. Voici la fonction :

Function SaveAttachments(strPath As String)

Dim OlApp As New Outlook.Application
Dim OlMAPI As Outlook.NameSpace
Dim OlItems As Outlook.Items
Dim OlItem As Outlook.MailItem

Dim strAttachment As String
Dim NbAttachments As Integer
Dim i As Integer
Dim NbEmails As Integer

Set OlMAPI = OlApp.GetNamespace("MAPI")
Set OlItems = OlMAPI.PickFolder.Items


'MsgBox "la date de réception est : " &
OlItem.ReceivedTime

'If OlItem.ReceivedTime > "08/10/2003 00:01" Then
For Each OlItem In OlItems
NbAttachments = OlItem.Attachments.Count
i = 1

Do While i <= NbAttachments
strAttachment = OlItem.Attachments.Item
(i).FileName

OlItem.Attachments.Item(i).SaveAsFile strPath &
strAttachment
i = i + 1
Loop
Next OlItem
'End If

Set OlItem = Nothing
Set OlItems = Nothing
Set OlMAPI = Nothing
Set OlApp = Nothing

End Function

Cette fonctions marchent parfaitement, mais je
souhaiterais sauvegarder uniquement les pièces jointes des
mails envoyés le jour même (à la date du jour à laquelle
j'utilise la fonction). Commment faire ?

Merci d'avance

.