Récupérer des mail dans Outlook: erreur 287
Bonjour tous le monde.
Voila mon problème: je veux récupérer les informations dans des mails de mon compte Outlook.
J'utilise la fonction suivante qui marche très bien sur mon mail perso (mail SMTP), mais ne fonctionne pas pour mon mail pro (mail EX).
Je voudrai récupérer les mêmes informations qu'en SMTP.
Pour information mon Outlook est toujours ouvert derrière, je n'ai pas de code à rentrer appart celui de la session windows, les 3 premières demandes d'information fonctionnent dans les deux cas.
Je peux ouvrir une fenêtre avec le mail consulté dedans, le déplacer dans un autre dossier également dans les deux cas.
Merci pour votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Function ImporterMailWO()
Dim appOl As New Outlook.Application
Dim ns As Namespace
Dim inboxWOimporte As MAPIFolder
Dim inboxWOtraite As MAPIFolder
Dim mail As MailItem
Set appOl = CreateObject("Outlook.Application")
Set ns = appOl.GetNamespace("MAPI")
Set inboxWOimporte = ns.GetDefaultFolder(olFolderInbox).Folders("WO importé")
Set inboxWOtraite = ns.GetDefaultFolder(olFolderInbox).Folders("WO traité")
For Each mail In inboxWOimporte.Items
'si Outlook passe par un exchange
If mail.SenderEmailType = "EX" Then
MsgBox (mail)
MsgBox (mail.ReceivedTime)
MsgBox (mail.Subject)
MsgBox (mail.Sender.GetExchangeUser.PrimarySmtpAddress) -> Erreur d'exécution 287 - Erreur définie par l'application ou par l'objet
MsgBox (mail.SenderEmailAddress) -> Erreur d'exécution 287 - Erreur définie par l'application ou par l'objet
MsgBox (mail.CC) -> Erreur d'exécution 287 - Erreur définie par l'application ou par l'objet
MsgBox (mail.Body) -> Erreur d'exécution 287 - Erreur définie par l'application ou par l'objet
'si Outlook est de type SMTP
Else
MsgBox (mail)
MsgBox (mail.ReceivedTime)
MsgBox (mail.Subject)
MsgBox (mail.SenderEmailAddress)
MsgBox (mail.CC)
MsgBox (mail.Body)
MsgBox (mail.SenderEmailType)
End If
'déplacer le mail dans le fichier inboxWOtraite
mail.Move inboxWOtraite
Next mail
End Function |