Outlook extraire adresses emails des emails ?

Résolu/Fermé
Charlie - Modifié le 22 mai 2018 à 08:18
 hamza - 18 juin 2019 à 12:59
Bonjour,
comment peut on extraire les adresses emails des emails d'un dossier de Outlook pour en faire un fichier .csv
merci
Charles
A voir également:

53 réponses

INPEC, c'est génial !

Faudrait presque en faire un freeware (bien que ce soit expliqué pas à pas, et que tu ais pris le temps de commenter ton code, certains n'y arrivent toujours pas...).

Tu m'as fais gagné un temps précieux et je te remercie pour le temps que tu as consacré à cette macro.

Compte tenu de la récurrence des demandes, je pense qu'une version 3 serait envisageable avec une fonction supplémentaire : l'idée serait de pouvoir extraire les coordonnées des expéditeurs (présentes dans leur signature généralement, mais de manière non structurée, c'est à dire différente d'un email à un autre).

La tâche est complexe, et mériterait un don ou un micropaiement via un appel à un serveur vocal par exemple.

Si l'idée t'intéresses, les champs qui me seraient utiles d'extraire sont les suivants :
- Nom
- Prénom
- Société
- Fonction
- Téléphone Fixe
- Téléphone Mobile
- Email

Si tu as une vision et le temps de t'y pencher, fais moi signe.

Sinon merci pour le travail accompli et bonne continuation.
0
inpec Messages postés 33 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 31 octobre 2016 6
29 juin 2010 à 06:45
c'est pas simple mais j'ai qq idées
0
pannouf Messages postés 6 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 29 juin 2010
28 juin 2010 à 16:03
Bonjour et merci pour la macro,

Elle fonctionne parfaitement chez moi. Par contre, elle n'extrait pas les e-mails que Outlook appel les "rapports non remis". Il y a t il un moyen (je ne maîtrise pas totalement le VB) d'ajouter cette fonction à la macro ?

En vous remerciant d'avance,
0
inpec Messages postés 33 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 31 octobre 2016 6
29 juin 2010 à 06:43
envoie moi un exemple
0
pannouf Messages postés 6 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 09:37
Voila un exemple du contenu du message :
Certains des destinataires ou tous les destinataires n'ont pas reçu votre message.

Objet : Votre congrès ou séminaire à Rennes
Date : 10/06/2010 10:15

Impossible de contacter le(s) destinataire(s) suivant(s) :

adresse@email.fr le 15/06/2010 12:08
Impossible de remettre le message dans le délai spécifié. Réessayez ou contactez votre administrateur système.


Le message se présente avec cet icône dans ma boîte mail : http://img685.imageshack.us/img685/4647/icooutlook.jpg
0
inpec Messages postés 33 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 31 octobre 2016 6
29 juin 2010 à 11:28
pour moi ça fonctionne
0
pannouf Messages postés 6 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 14:15
Après avoir essayé la V 2.1 cela ne fonctionne toujours pas sur les messages dont je parle plus haut. Je crois qu'ils sont au format rtf contrairement aux autres messages classiques en txt. Est ce que cela peut jouer ?
0
pannouf Messages postés 6 Date d'inscription lundi 28 juin 2010 Statut Membre Dernière intervention 29 juin 2010
29 juin 2010 à 15:22
Finalement, j'ai réussi à exporter tous les "rapports : non remis" en fichier rtf dans un seul fichier texte en sélectionnant tout les mails de mon dossier et en faisant "fichier>enregistrer sous". Ce qui m'a permis de récupérer toutes les infos de chaque mail envoyés et d'exécuter la macro sans souci dans un nouveau brouillon mail.

P.S. : je n'ai pas réussi à faire fonctionner la V2.1 sous Outlook 2003

Merci de ton aide Inpec.
0
Bonjour,

La macro marchait à merveille à l'époque.
Mais là quand je lance la macro dans Outlook, j'ai un message dans Virtual Basic Editor à l'execution qui me dit : " Les macros de ce projet sont désactivées. Référez-vous à l'aide en ligne ou à la documentation ........ "

Je dois récupérer mes adresses pour une campagne d'emailing c'est assez important.

Merci de votre aide et félicitations INPEC!
0
inpec Messages postés 33 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 31 octobre 2016 6
Modifié par inpec le 4/02/2011 à 09:41
Moi aussi j'ai beaucoup de mal à me faire a cette nouvelle interface de 2008/2010
Prend ton courage deux mains :
- Menu Fichier,
- Options,
- Centre de gestion de la confidentialité,
- Paramètre du Centre de gestion de la confidentialité,
- Paramètres des macros.
Et là est enfin le Graal : Activer toutes les macros ...

En prime la dernière version du script est ici http://www.inpec.fr/email.bas
avec une fonction pour supprimer les doublons dans Outlook !
Elle met en non lu les message en double, il n'y a plus qu'a les supprimer dans Dossiers de recherche - Courrier non lu
0
bonjour , malgré tous mes efforts pour comprendre, je ne parviens pas à faire fonctionner ce programme. j ai fait copier/coller du script que vous (Impec) avez donné en lien, je l ai mis dans VBA sous outlook et j essaye de le faire tourner mais je reçois un message d erreur :
erreur d'exécution 75
erreur d'accès chemin/fichier

en fait, ma question est :
faut il créer un autre fichier qq part ? si oui lequel de quel type et où ? pour utiliser votre scipt ? ou peut on l exécuter directement ? la, la réponse est non puisque je reçois le message d erreur cité ci dessus.
que dois je adapter dans ce code?
il faut créer un mail pour l exécuter je n comprends pas .
merci de votre précieuse aide, je suis novice dans tout cela mais suis intéressée d apprendre.
0
waouh ! ça a marché ! il fallait en fait mettre un bon nom où créer le fichier comme vous l avez expliqué précédemment mais je n avais pas saisi..
enfin merci, j espère qu un jour je saisirai cmt fonctionne le programme :)
Merci
0
zotmovie Messages postés 2 Date d'inscription mercredi 30 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013
30 oct. 2013 à 07:24
Bonjour, moi c'est Arno, j'ai Outlook 2007 sur un W 8.1

Je viens de tomber sur ce programme qui se trouve exactement ce que je cherchais donc un GRAND merci.

Toute fois, malgré ma premier fois en VBA, j'ai la même erreur que Camille:
erreur d'exécution 75
erreur d'accès chemin/fichier

Mais je ne trouve pas le post ou vous expliqué comment il faut faire pour résoudre ce soucis. Quel qu'un peut m'aider merci à tous. Ça m'arrangerai vraiment de pouvoir recup les emails de mes mails
0
zotmovie Messages postés 2 Date d'inscription mercredi 30 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013
30 oct. 2013 à 10:54
C gérer, de la bombe, merci encore Inpec !!!!!!
0
Merci c'est sympa ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

J'ai un message d'errur
ReDim Preserve emails(1), noms(1)

Merci
0
Bonjour,
Je n'ai aucune connaissance au VBA, mais j'ai reussi a la faire fonctionner,
Merci A vous
Pouvez vous ajouter le fonction d'extraire les @ email qui sont egalement en copie dans les messages reçus ou expediés.
Merci A toi inpec
0
PS j'ai utiliser un vertion anterieure, ca les dernire j'ai des ereurs
0
vraiment super ce script !!!

Merci INPEC
0
Bonjour,



J'essaye désespérément d'extraire des adresses emails depuis le corps de mails de + de 1600 mails sur OL2010 mais sans succès.
J'avoue n'avoir jamais créé de macro et donc ne pas être sûr de mes manipulations.

J'ai collé ce code :

'Déclaration des tableaux dynamiques globaux contenant la liste des emails
Dim emails(), noms() As String
'Extrait dans Outlook la liste des emails (destinataire, émetteur, corps) 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
'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
For Each myItemRec In myMailItem.Recipients
addMail myItemRec.Name, myItemRec.Address
Next
'Emetteur
addMail myMailItem.SenderName, myMailItem.SenderEmailAddress
'et dans le corp du mail
findMail myMailItem.Body
End If
Next
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
If Mid(Body, f - 1, 1) = "." Then
addMail "body", Mid(Body, d + 1, f - d - 2)
Else
addMail "body", Mid(Body, d + 1, f - d - 1)
End If
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


Ensuite presse le bouton « play » en étant sur le dossier voulu, ça bascule sur OL et il y'a un pop-up qui s'ouvre avec « Userform1 » en titre mais c'est tout. Rien ne se passe. Rien n'est extrait.

Est-il possible de me donner un coup de main ?

Merci d'avance.
0
adavid Messages postés 2 Date d'inscription jeudi 17 octobre 2013 Statut Membre Dernière intervention 20 novembre 2013
17 oct. 2013 à 16:29
Merci à toi inpec pour le script.
Ca marche chez moi sur un dossier de 60 emails de retour erronés.
J'ai suivi la démarche d'intégrer ton script VB (email.bas) qui se trouve sur
http://www.inpec.fr/email.bas
dans Outlook 2010 et ca marche.
Petit bug: le script n'extrait pas les adresses emails courtes, par exemple to@titi.com.
J'ai du modifier la ligne
If d < at - 3 And f > at + 4 Then
en
If d < at - 2 And f > at + 4 Then
et ca marche .

Résumé:
-il faudrait créer le fichier c:\emails.xls au préalable
-activer menu "developeur" et aller sur VisualBasic et importer le fichier email.bas fourni par inpec. (recherche sur google le process activation de macro sur OL2010)
-se positionner dans le dossier qui contient les adresses emails à extraire
-lancer la macro getmail qui se trouve dans le menu "developer" (je suis sur OL2010 anglais)
le résultat dans le fchier email.xls.

ensuite il faut un effort dans excel : filter et effacer les emails de type postmaster@xxx.com,mailer-daemon@xxx.com
merci
0
Bonjour adavid,
Je sais pas si tu a un répertoire ou tu range les message qui n'ont pas pu être distribués (Non remis :). J'ai testé la macro sur ce répertoire et cela ne marche pas. Elee fonctionne bien sur les autres.
Aurais-tu une solution ?
Merci.
0
Les emails de retour ( en general d'origine ***@*** ) arrivaient sur mon folder "in box" . J'ai un filtre OL pour mettre automatiquement dans un folder que j'ai nommé "ToMe" les messages à ma destination, y compris ces messages erreurs J'ai ensuite drag et drop les msg de retour erreur email dans un folder que je nomme "KO email". Apres avoir ouvert ce folder, j'ai lancé la macro fournie . Je ne comprend pas pq ca ne marche pas chez toi.
0
Bonjour,
J'ai fait comme tu l'indique mais cela ne marche pas. Le message m'indique toujours "Pas d'email trouvé...."
Le folder "KO" que tu a créé est dans Outlook ? Si oui pourquoi tu parle d'ouvrir le folder. Il suffit de le sélectionner ? Non ?
Est-ce une question de format de message ?
Merci pour ton aide.
0
adavid Messages postés 2 Date d'inscription jeudi 17 octobre 2013 Statut Membre Dernière intervention 20 novembre 2013
20 nov. 2013 à 03:13
Oui , le folder ( dossier , repertoire) est dans OutLook2010
comme montre sur cette page web
https://www.addictivetips.com/microsoft-office/how-to-create-new-folder-in-outlook-2010/
Je l'ai créé et drag&drop les messages dedans.
Sur mon laptop (win7) , ce folder n'est pas sur le serveur ( par ex "Inbox" ) mais local (fichier archive pst) . Je ne suis pas pro de OL donc difficile a expliquer.
Tu as raison,quand je dis "ouvrir" le folder , en fait j'ai cliqué dessus et dans la fenetre de droite , les messages apparaissent .
Je ne comprend pas pq ca marche chez toi dans un folder, mais pas dans l'autre. Quelles differences entre les deux chez toi? Peut etre un est sur le serveur (sous ton compte exchange comme le folder inbox) et l'autre est local (dans le fichier archive pst) ?

J'espere que ca aide
0
Merci pour tes réponses.
J'ai copié un email normal reçu dans le folder de mes messages non distribué et ça récupère bien les adresses de l'email en question. Il semble qu'il s'agisse de la nature même de l'email de retour non distribué qui pose problème. A tu une idée a ce sujet ? Peut-on recontacter le développeur qui en saura peut être un peu plus ?
0
Bonjour,

j'ai un message d'erreur :

Erreur de compilation :
Attendu : Numéro de ligne ou étiquette ou instruction ou fin d'instruction

J'ai suivi la marche :

Créer fichier : emails.xls
importer le fichier http://www.inpec.fr/email.bas dans Visual Basic
Lancer la Macro sur le dossier sélectionné

Si vous avez une solution..... merci beaucoup

yanic
0
deniz99 Messages postés 8 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 4 avril 2014
4 avril 2014 à 12:13
Si tu peux exporter tes e-mails tu peux essayer un de ces logiciels :

https://www.email-finder.fr/en
https://fr.emailextractorpro.com/
https://captain-extractor.com/
http://www.supernova-soft.com/wpsite/

Voila bonne chance
0