cs_mcoppa
Messages postés40Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention25 juillet 2014
-
11 janv. 2008 à 18:34
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
14 janv. 2008 à 00:18
Bonjour à tous,
Je cherche un source permettant de retrouver un message dans Outlook Express contenant une pièce jointe nommée.
Actuellement on peut rechercher un destinataire, un expéditeur, un objet, ou tout ou partie d'un message.
Par contre, si on a enregistré une pièce jointe, et qu'on veut à partir du nom de celle-ci retrouver le message original, il n'y a pas de fonction (ou bien je ne l'ai pas trouvée). Quelqu'un a-t-il la solution ? (de préférence en VBA ou VB6).
cs_mcoppa
Messages postés40Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention25 juillet 2014 13 janv. 2008 à 12:17
Il s'agit bien d'Outlook Express.
Je n'ai pas de code actuellement, mais je ne sais pas si je me suis bien expliqué.
En fait, lorsque je reçois un mail avec une pièce jointe intéressante, je l'enregistre dans un dossier. Parfois, quand je consulte cette pièce à partir du dossier plusieurs mois plus tard, je voudrais retrouver le mail initial et l'expéditeur. Or il n'y a pas dans Outlook Express de fonction de recherche à partir du nom des pièces jointes.
Je ne sais pas si ça existe sous Outlook, mais je ne l'utilise pas, car j'ai souvent besoin de recevoir des .EXE, des .BAT ou d'autrse extensions qui sont éliminées automatiquement.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 13 janv. 2008 à 14:59
Quand tu dis que tu enregistres dans un dossier, c'est un dossier d'Outlook Express ou un répertoire de ton disque dur ? La pièce jointe est un fichier ou un autre mail incorporé ?
Si Outlook élimine les fichiers à risque (exe, bat, com,...), c'est probablement une configuration de sécurité élevée qui en est la cause. Tu pourrais (à tes risques) modifier cette configuration, je pense.
Comme je n'utilise plus Outlook Express depuis plusieurs années et que tu n'as pas de code, ça va être difficile pour moi de t'aider, mais je vais voir ce que je peux faire... sans grande conviction...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_mcoppa
Messages postés40Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention25 juillet 2014 13 janv. 2008 à 18:10
C'est un répertoire.
Pour ce qui concerne la sécurité d'Outlook, je pense (ou j'espère que Norton fait son boulot, à priori, il le fait correctement sous Express). Pour les sécutités sous Office, je dois malheureusement les supprimer toutes. J'ai pas mal de programmes en VBA, et je ne sais pas pourquoi, mais d'un ordinateur à un autre, les signatures ne fonctionnent pas toujours.
Enfin, si tu as une solution sous Oulook, je peux toujours récupérer tous mes mails depuis Outlook Express.
Merci, en tous cas de tes réponses.
mcoppa
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 13 janv. 2008 à 19:21
J'ai fait des recherches sous Outlook Express et rien de concluant. Il y a des méthodes pour lire les fichiers DBX et les transposer en fichier texte, mais rien sur les fichiers joints.
Sous Outlook, tu peux utiliser un objet MailItem pour lire les messages.
À partir de ce MailItem, tu peux utiliser Attachments(Index) pour lire le ou les fichiers attachés selon leur index ou utiliser For Each pour les lire tous.
exemple vite fait:
Option Explicit
Private objOutlook As Outlook.Application ' Object
Sub SubOutlook()
Dim I As Integer
Dim MyNameSpace As NameSpace, MyFolder, Folder, MyItem As MailItem
Dim nbMessages As Long, Fichier As Attachment
Set objOutlook = New Outlook.Application
' CreateObject("Outlook.Application") ' pour utiliser sans référence directe
Set MyNameSpace = objOutlook.GetNamespace("MAPI")
Set MyFolder = MyNameSpace.Folders("Dossiers Personnels")
Set Folder = MyFolder.Folders(" Nom du répertoire que tu veux lire ")
nbMessages = Folder.Items.Count
For I = nbMessages To 1 Step -1
Set MyItem = Folder.Items(I)
For Each Fichier In MyItem.Attachments
MsgBox "Sujet: " & MyItem.Subject & vbCrLf & _
"À: " & MyItem.To & vbCrLf & _
"De: " & MyItem.SenderName & vbCrLf & _
"Fichier attaché: " & Fichier.Filename
Next
Next
End Sub
Si tu crées une référence à Outlook dans ton projet, utilise le code tel quel.
Si tu ne veux pas créer de référence (portabilité), utilise CreateObject et déclare les différentes variables As Object
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_mcoppa
Messages postés40Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention25 juillet 2014 13 janv. 2008 à 23:16
Merci, je vais essayer en rapatriant les mails sous Outlook. Je te tiens au courant, mais laisse-moi quelques jours car j'ai pas mal de boulot en attendant.