Outlook extraire adresses emails des emails ?
Résolu
Charlie
-
hamza -
hamza -
A voir également:
- Récupérer les adresses mails de ces message reçu
- Recuperer message whatsapp supprimé - Guide
- Récupérer au terminal de fret - Forum Consommation & Internet
- Message supprimé whatsapp - Guide
- Impossible de supprimer un message reçu sur instagram ✓ - Forum Instagram
- Message absence thunderbird - Guide
53 réponses
j'ai essayer avec imap, pas de pb
je n'ai pas 2002 peut être ?
si non dans le debugeur clic droit sur myMailItem fait ajouter espion ... puis ok , il doit y avoir un plus regarde si SenderEmailAddress et SenderName existe ?
je n'ai pas 2002 peut être ?
si non dans le debugeur clic droit sur myMailItem fait ajouter espion ... puis ok , il doit y avoir un plus regarde si SenderEmailAddress et SenderName existe ?
Salut Inpec,
J'ai fais comme tu m'as dit....(ajouter un espion sur myMailItem)...
Je trouve bien SenderName, mais pas SenderEmailAddress ....
Si je met un espion sur myMailItem.SenderName, il me trouve bien le "nom" de l'émetteur, mais si je met un espion sur myMailItem.SenderEmailAddress, l'espion me dit : ''Propriété ou méthode non gérér par cet objet".
Voila !
Encore mille merci !
J'ai fais comme tu m'as dit....(ajouter un espion sur myMailItem)...
Je trouve bien SenderName, mais pas SenderEmailAddress ....
Si je met un espion sur myMailItem.SenderName, il me trouve bien le "nom" de l'émetteur, mais si je met un espion sur myMailItem.SenderEmailAddress, l'espion me dit : ''Propriété ou méthode non gérér par cet objet".
Voila !
Encore mille merci !
euh ... (j'insiste ... mais bon ...) pour windows mail ... toujours rien ?
ou si je copie les fichiers *.eml dans un dossier à part, peut-on y arriver ? et comment ?
@+
ou si je copie les fichiers *.eml dans un dossier à part, peut-on y arriver ? et comment ?
@+
Il y a du VBA sous Windows Mail ?
Essaie alt+F11 pour faire apparaitre la fenêtre Microsoft Visual Basic.
Pas de VBA => Il faut passer sous Outlook
Essaie alt+F11 pour faire apparaitre la fenêtre Microsoft Visual Basic.
Pas de VBA => Il faut passer sous Outlook
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je relance ce forum qui m'a bien aidé mais :
J'utilise outlook 2002
Il semble que myMailItem.SenderEmailAddress ne soit pas connu dans la librairie installée
Microsoft Outlook 10.0 Object library.
J'ai besoin de récupérer les adresses mails des expéditeurs des mails reçu dans un dossier donné.
Avez vous des coneils.
Si il faut installé une nouvelle library : help.
En vous remerciant par avance
Je relance ce forum qui m'a bien aidé mais :
J'utilise outlook 2002
Il semble que myMailItem.SenderEmailAddress ne soit pas connu dans la librairie installée
Microsoft Outlook 10.0 Object library.
J'ai besoin de récupérer les adresses mails des expéditeurs des mails reçu dans un dossier donné.
Avez vous des coneils.
Si il faut installé une nouvelle library : help.
En vous remerciant par avance
Tu semblerais avoir le même problème que ioton12 qui nous donne sa solution message 42 :
j'en ai déduis que SenderName devait contenir l'e-mail de l'expéditeur sous 2002 ...
sinon ajoute un espion sur myMailItem (clic droit sur myMailItem, Ajouter un espion...), tu devrais trouver la propriété qui le fait bien
sinon je t'ai déposé Microsoft Outlook 11.0 Object library ici : http://www.inpec.fr/MSOUTL.OLB en espérant qu'il se suffit à lui même !
Pour l'installer Menu outils dans VBA(alt+f11) ,Références,parcourir choisi le fichier téléchargé msoutl.olb
j'ai enfin trouvé, j'ai remplacer "myMailItem.SenderName", myMailItem.SenderEmailAddress par "findMail myMailItem.SenderName".(...)
j'en ai déduis que SenderName devait contenir l'e-mail de l'expéditeur sous 2002 ...
sinon ajoute un espion sur myMailItem (clic droit sur myMailItem, Ajouter un espion...), tu devrais trouver la propriété qui le fait bien
sinon je t'ai déposé Microsoft Outlook 11.0 Object library ici : http://www.inpec.fr/MSOUTL.OLB en espérant qu'il se suffit à lui même !
Pour l'installer Menu outils dans VBA(alt+f11) ,Références,parcourir choisi le fichier téléchargé msoutl.olb
Bonjour,
Merci Inpec pour les informations.
Pour la ref : elle ne peut pas se mettre sur outlook2002
Pour myMailItem.SenderName , il ne renvoit que le titre de la personne soit robert dupont
et non l'adresse e-mail.
En vous remerciant par avance pour vos autres lumières
Merci Inpec pour les informations.
Pour la ref : elle ne peut pas se mettre sur outlook2002
Pour myMailItem.SenderName , il ne renvoit que le titre de la personne soit robert dupont
et non l'adresse e-mail.
En vous remerciant par avance pour vos autres lumières
Alysse, normalement c'est que font les lignes :
'Destinataires For Each myItemRec In myMailItem.Recipients addMail myItemRec.name, myItemRec.Address Next
merci pour la reponse,
j ai bien reussi à utiliser le code pour la creation d'un nouveau email mais les derniers codes avec lien avec excel ne marchent pas.
j ai un probleme sur la ligne : Open NomFichier For Output As #1
je suis sous outlook 3
je suis nulle en informatique (d'ailleurs ce n est pas mon metier), c est juste qu'une erreur a été faite en effaçant une liste de contacts sous outlook, j ai jsute un email avec les mails en cci, je n arrive pas à les recuperer, il me sembalit que ce code pouvait convenir, mais je n ai pas forcement besoin d'un tableau excel
voila, je suis un peu paumee....
alysse
j ai bien reussi à utiliser le code pour la creation d'un nouveau email mais les derniers codes avec lien avec excel ne marchent pas.
j ai un probleme sur la ligne : Open NomFichier For Output As #1
je suis sous outlook 3
je suis nulle en informatique (d'ailleurs ce n est pas mon metier), c est juste qu'une erreur a été faite en effaçant une liste de contacts sous outlook, j ai jsute un email avec les mails en cci, je n arrive pas à les recuperer, il me sembalit que ce code pouvait convenir, mais je n ai pas forcement besoin d'un tableau excel
voila, je suis un peu paumee....
alysse
C'est bon j'ai trouvé ma solution
grâce à https://support.microsoft.com/fr-fr/help/324530
bonne continuaation à tous
'Déclaration des tableaux dynamiques globaaux contenant la liste des emails
Dim emails(), noms() As String
'Extrait dans Outlook la liste des emails (destinataire, émetteur, corp) du dossier sélectionné
'et crée un mail avec la liste des emails
Sub GetEmail()
Dim myOlApp As New Outlook.Application
Set rep = myOlApp.ActiveExplorer.CurrentFolder
' initialisation du tableau
ReDim Preserve emails(1), noms(1)
emails(1) = ""
noms(1) = ""
'On stocke les emails dans le tableau
GetEmailFromFolder rep
If emails(1) <> "" Then
NomFichier = "email-" & rep & ".xls"
Close #1
Open NomFichier For Output As #1
For i = 1 To UBound(emails)
Print #1, AfficheEmail(noms(i), emails(i))
Next
Close #1
Call Shell("excel.exe " & """" & NomFichier & """")
'Conversion du tableau en chaine
MsgBox UBound(emails) & " emails trouvés dans " & rep, vbInformation, "Done"
Else
MsgBox "Pas d'email trouvé dans " & rep, vbInformation, "Done"
End If
End Sub
Function AfficheEmail(Nom, Email)
If Nom = "" Then
'Si pas de nom on utilise la partie gauche de l'email
Nom = Mid(Email, 1, InStr(Email, "@") - 1)
End If
'Mise en forme du nom pour être bien reconnue par Outlook si on copie colle la liste dans le champs [À...]
Nom = Replace(Nom, ",", " ")
Nom = Replace(Nom, "@", "-")
Nom = Replace(Nom, ";", " ")
Nom = Replace(Nom, "'", "")
Nom = Replace(Nom, "[", "")
Nom = Replace(Nom, "]", "")
Nom = Replace(Nom, "(", "")
Nom = Replace(Nom, ")", "")
'AfficheEmail = """" & Nom & """[" + Email + "]"
'AfficheEmail = "<A href=""mailto:" & Email & """>" & Nom & "</A>"
'AfficheEmail = """" & Nom & """<" + Email + ">"
AfficheEmail = Nom + vbTab + Email + vcrlf
End Function
'Explore les dossiers (fonction réentrante)
Sub GetEmailFromFolder(MyFolder)
Dim myItemRec, myItem As Object
Dim myMailItem As Outlook.MailItem
Dim objItem As MailItem
Dim objReply As MailItem
Dim objRecips As Outlook.Recipients
Dim objRecip As Outlook.Recipient
'Tous les dossiers
For Each myItem In MyFolder.Folders
GetEmailFromFolder myItem
Next
'Tous les mails
On Error Resume Next
For Each myItem In MyFolder.Items
If TypeName(myItem) = "MailItem" Then
Set myMailItem = myItem
'Destinataire
'Emetteur
Set objItem = myItem
Set objReply = objItem.Reply
Set objRecips = objReply.Recipients
For Each objRecip In objRecips
addMail myMailItem.SenderName, objRecip.Address
Next
Set objItem = Nothing
Set objReply = Nothing
Set objRecip = Nothing
'et dans le corp du mail
findMail myMailItem.Body
End If
Next
Set objItem = Application.ActiveInspector.CurrentItem
Set objReply = objItem.Reply
Set objRecips = objReply.Recipients
For Each objRecip In objRecips
Debug.Print objRecip.Address
Next
Set objItem = Nothing
Set objReply = Nothing
Set objRecip = Nothing
End Sub
'Rajoute une entrée au tableau emails() si l'email n'existe pas déjà
Sub addMail(Nom, Email)
Email = Trim(LCase(Email))
Nom = Trim(Nom)
If Email <> "" And InStr(Email, "@") > 0 And InStr(Email, ".") > 0 Then
'Vérification de l'unicité
Find = UBound(Filter(emails, Email, True, vbTextCompare))
If emails(1) = "" Then
emails(1) = Email
noms(1) = Nom
ElseIf Find = -1 Then
'On augmente la taille du tableau et on ajoute
ReDim Preserve emails(UBound(emails) + 1)
ReDim Preserve noms(UBound(noms) + 1)
emails(UBound(emails)) = Email
noms(UBound(noms)) = Nom
Else
'On préfère le plus grand si c'est pas une email
If Len(Nom) > Len(noms(Find)) And InStr(Nom, "@") = 0 Then
noms(Find) = Nom
End If
End If
End If
End Sub
Sub findMail(Body)
at = InStr(Body, "@")
Do While at > 0
d = at - 1
Do While carOk(Mid(Body, d, 1))
d = d - 1
If d = 0 Then
Exit Do
End If
Loop
f = at + 1
Do While carOk(Mid(Body, f, 1))
f = f + 1
If f = Len(Body) Then
Exit Do
End If
Loop
If d < at - 3 And f > at + 4 Then
addMail "body", Mid(Body, d + 1, f - d - 1)
End If
at = InStr(at + 1, Body, "@")
Loop
End Sub
Function carOk(c)
If c = "." Or c = "-" Or c = "_" Or (c >= "0" And c <= "9") Or (c >= "A" And c <= "Z") Or (c >= "a" And c <= "z") Then
carOk = True
Else
carOk = False
End If
End Function
grâce à https://support.microsoft.com/fr-fr/help/324530
bonne continuaation à tous
'Déclaration des tableaux dynamiques globaaux contenant la liste des emails
Dim emails(), noms() As String
'Extrait dans Outlook la liste des emails (destinataire, émetteur, corp) du dossier sélectionné
'et crée un mail avec la liste des emails
Sub GetEmail()
Dim myOlApp As New Outlook.Application
Set rep = myOlApp.ActiveExplorer.CurrentFolder
' initialisation du tableau
ReDim Preserve emails(1), noms(1)
emails(1) = ""
noms(1) = ""
'On stocke les emails dans le tableau
GetEmailFromFolder rep
If emails(1) <> "" Then
NomFichier = "email-" & rep & ".xls"
Close #1
Open NomFichier For Output As #1
For i = 1 To UBound(emails)
Print #1, AfficheEmail(noms(i), emails(i))
Next
Close #1
Call Shell("excel.exe " & """" & NomFichier & """")
'Conversion du tableau en chaine
MsgBox UBound(emails) & " emails trouvés dans " & rep, vbInformation, "Done"
Else
MsgBox "Pas d'email trouvé dans " & rep, vbInformation, "Done"
End If
End Sub
Function AfficheEmail(Nom, Email)
If Nom = "" Then
'Si pas de nom on utilise la partie gauche de l'email
Nom = Mid(Email, 1, InStr(Email, "@") - 1)
End If
'Mise en forme du nom pour être bien reconnue par Outlook si on copie colle la liste dans le champs [À...]
Nom = Replace(Nom, ",", " ")
Nom = Replace(Nom, "@", "-")
Nom = Replace(Nom, ";", " ")
Nom = Replace(Nom, "'", "")
Nom = Replace(Nom, "[", "")
Nom = Replace(Nom, "]", "")
Nom = Replace(Nom, "(", "")
Nom = Replace(Nom, ")", "")
'AfficheEmail = """" & Nom & """[" + Email + "]"
'AfficheEmail = "<A href=""mailto:" & Email & """>" & Nom & "</A>"
'AfficheEmail = """" & Nom & """<" + Email + ">"
AfficheEmail = Nom + vbTab + Email + vcrlf
End Function
'Explore les dossiers (fonction réentrante)
Sub GetEmailFromFolder(MyFolder)
Dim myItemRec, myItem As Object
Dim myMailItem As Outlook.MailItem
Dim objItem As MailItem
Dim objReply As MailItem
Dim objRecips As Outlook.Recipients
Dim objRecip As Outlook.Recipient
'Tous les dossiers
For Each myItem In MyFolder.Folders
GetEmailFromFolder myItem
Next
'Tous les mails
On Error Resume Next
For Each myItem In MyFolder.Items
If TypeName(myItem) = "MailItem" Then
Set myMailItem = myItem
'Destinataire
'Emetteur
Set objItem = myItem
Set objReply = objItem.Reply
Set objRecips = objReply.Recipients
For Each objRecip In objRecips
addMail myMailItem.SenderName, objRecip.Address
Next
Set objItem = Nothing
Set objReply = Nothing
Set objRecip = Nothing
'et dans le corp du mail
findMail myMailItem.Body
End If
Next
Set objItem = Application.ActiveInspector.CurrentItem
Set objReply = objItem.Reply
Set objRecips = objReply.Recipients
For Each objRecip In objRecips
Debug.Print objRecip.Address
Next
Set objItem = Nothing
Set objReply = Nothing
Set objRecip = Nothing
End Sub
'Rajoute une entrée au tableau emails() si l'email n'existe pas déjà
Sub addMail(Nom, Email)
Email = Trim(LCase(Email))
Nom = Trim(Nom)
If Email <> "" And InStr(Email, "@") > 0 And InStr(Email, ".") > 0 Then
'Vérification de l'unicité
Find = UBound(Filter(emails, Email, True, vbTextCompare))
If emails(1) = "" Then
emails(1) = Email
noms(1) = Nom
ElseIf Find = -1 Then
'On augmente la taille du tableau et on ajoute
ReDim Preserve emails(UBound(emails) + 1)
ReDim Preserve noms(UBound(noms) + 1)
emails(UBound(emails)) = Email
noms(UBound(noms)) = Nom
Else
'On préfère le plus grand si c'est pas une email
If Len(Nom) > Len(noms(Find)) And InStr(Nom, "@") = 0 Then
noms(Find) = Nom
End If
End If
End If
End Sub
Sub findMail(Body)
at = InStr(Body, "@")
Do While at > 0
d = at - 1
Do While carOk(Mid(Body, d, 1))
d = d - 1
If d = 0 Then
Exit Do
End If
Loop
f = at + 1
Do While carOk(Mid(Body, f, 1))
f = f + 1
If f = Len(Body) Then
Exit Do
End If
Loop
If d < at - 3 And f > at + 4 Then
addMail "body", Mid(Body, d + 1, f - d - 1)
End If
at = InStr(at + 1, Body, "@")
Loop
End Sub
Function carOk(c)
If c = "." Or c = "-" Or c = "_" Or (c >= "0" And c <= "9") Or (c >= "A" And c <= "Z") Or (c >= "a" And c <= "z") Then
carOk = True
Else
carOk = False
End If
End Function
pour le problème avec le fichier xls, c'est peut être qu'il est déjà ouvert ?
sinon sur le fond
as-tu regardé dans tes éléments supprimés ?
si c'est toi qui a envoyé le mail tu en as une copie dans les éléments envoyés et retrouvera là, la liste des destinataires cci.
si tu as reçu ce mail uniquement ( tu étais donc un destinataire cci de ce mail) il est IMPOSSIBLE de connaitre les autres destinataires de ce mail, c'est le principe.
sinon sur le fond
as-tu regardé dans tes éléments supprimés ?
si c'est toi qui a envoyé le mail tu en as une copie dans les éléments envoyés et retrouvera là, la liste des destinataires cci.
si tu as reçu ce mail uniquement ( tu étais donc un destinataire cci de ce mail) il est IMPOSSIBLE de connaitre les autres destinataires de ce mail, c'est le principe.
merci pour la réponse
pour le fichier xls, il n etait pas ouvert( j ai du oublier qq chose dans le code qui doit etre evident, je n ai fais qu'un copie/coller)
sinon, ce n est pas moi qui est envoye le mail, c est sur un autre ordinateur, comme autre solution je cherche juste à exporter le mail avec les destinataires en cci pour que je puisse recreer la liste de distribution de mon ordi, mais si je transfere le mail je ne recois pas les cci si on fait un copie coller de l autre ordi, on ne copie que les noms des destinataires (sans les mails), il y a peut etre une astuce toute bete, je ne l ai pas trouvé...
pour le fichier xls, il n etait pas ouvert( j ai du oublier qq chose dans le code qui doit etre evident, je n ai fais qu'un copie/coller)
sinon, ce n est pas moi qui est envoye le mail, c est sur un autre ordinateur, comme autre solution je cherche juste à exporter le mail avec les destinataires en cci pour que je puisse recreer la liste de distribution de mon ordi, mais si je transfere le mail je ne recois pas les cci si on fait un copie coller de l autre ordi, on ne copie que les noms des destinataires (sans les mails), il y a peut etre une astuce toute bete, je ne l ai pas trouvé...
Bonjour,
J'ai un soucis avec la macro, ca doit être une bétise, mais il m'indique quand je la lance , erreur d'execution 75 - erreur d'accès chemin fichier. c'est au niveau de la ligne nomfichier, je pense que c'est la ligne qui crée le XLS, mais je ne vois pas ce qu'il faut modifier.
Faut il créer au paravant ce fichier?
Merci pour votre réponse.
A bientôt.
Nico
J'ai un soucis avec la macro, ca doit être une bétise, mais il m'indique quand je la lance , erreur d'execution 75 - erreur d'accès chemin fichier. c'est au niveau de la ligne nomfichier, je pense que c'est la ligne qui crée le XLS, mais je ne vois pas ce qu'il faut modifier.
Faut il créer au paravant ce fichier?
Merci pour votre réponse.
A bientôt.
Nico
Non il ne faut pas créer le fichier
Votre fichier doit déjà être ouvert par Excel , au pire relacez votre machine.
ou remplacez la ligne
NomFichier = "email-" & rep & ".xls"
par
NomFichier = "c:\le chemin ou j'ai le droit de créer un fichier sur ma machine\email-" & rep & ".xls"
ou bien
NomFichier = "c:\email-" & rep & ".xls"
Votre fichier doit déjà être ouvert par Excel , au pire relacez votre machine.
ou remplacez la ligne
NomFichier = "email-" & rep & ".xls"
par
NomFichier = "c:\le chemin ou j'ai le droit de créer un fichier sur ma machine\email-" & rep & ".xls"
ou bien
NomFichier = "c:\email-" & rep & ".xls"
Houlala, je ne pige rien aux solutions et pourtant, j'ai un dossier nommé "prespection-envoyés"dans outlook 2003 et j'aimerais bien me faire un fichier avec tous les mails à qui j'ai envoyé un truc. Mais ils sont tellement nombreux que ça me donne le vertige de le faire manuellement.
Quelqu'un peut me donner une solution adaptée à mon cas ?
Merci 1000 fois par avance !
Francois
Quelqu'un peut me donner une solution adaptée à mon cas ?
Merci 1000 fois par avance !
Francois
Bonjour,
Inpec tu es un dieu, ta solution marche nickel chrome :) et après pas mal de recherche sur le web je n'en ai pas trouvé de mieux.
Bravo!
Inpec tu es un dieu, ta solution marche nickel chrome :) et après pas mal de recherche sur le web je n'en ai pas trouvé de mieux.
Bravo!
Bonjour !
Désolé, je vais vous paraitre stupide mais je n'y arrive pas, je reçois le message "Erreur de compilation" END SUB ATTENDU.
J'ai outlook 2003 et je veux récupérer les mails d'un dossier appelé "DIR COM".
Merci d'avance pour vos réponses !
Fenlabiz
Désolé, je vais vous paraitre stupide mais je n'y arrive pas, je reçois le message "Erreur de compilation" END SUB ATTENDU.
J'ai outlook 2003 et je veux récupérer les mails d'un dossier appelé "DIR COM".
Merci d'avance pour vos réponses !
Fenlabiz