[ Retrouver les coordonnées ]

Trouver l'adresse email professionnelle d'un contact

Une adresse email professionnelle ne se trouve pas dans un registre : elle se déduit, puis se vérifie. La déduction produit un candidat plausible, la vérification dit s'il est délivrable, et aucune des deux ne peut faire apparaître une adresse pour une entreprise qui n'en a pas.

Adresse nominative et adresse générique : deux objets différents

Une adresse nominative désigne une personne : marie.dupont@exemple.fr. Elle arrive dans une boîte relevée par quelqu'un d'identifié, qui peut répondre en son nom. Une adresse générique désigne une fonction ou une boîte partagée : contact@, info@, accueil@, commercial@, compta@. Elle arrive quelque part, sans qu'on sache chez qui.

La distinction fait toute la différence de valeur. Une adresse nominative permet d'écrire à une personne précise et d'obtenir une réponse personnelle. Une adresse générique est relevée de façon irrégulière, parfois par une assistante, parfois par un prestataire, parfois par plus personne depuis deux ans. Elle reste utile pour une demande administrative ou une prise de contact simple, beaucoup moins pour un message qui suppose un interlocuteur.

Il faut dire tout de suite ce qui dérange : sur le tissu français, très majoritairement composé de très petites entreprises, l'adresse générique est souvent la seule qui existe. Un artisan seul, dont le site vitrine a été fait par une agence il y a quatre ans, a une adresse contact@ et rien d'autre. Il n'y a pas d'adresse nominative à trouver, parce qu'il n'y en a pas. Aucun outil ne changera cela.

Les formats d'adresse qui reviennent

La plupart des organisations appliquent une convention unique à tous leurs salariés, décidée une fois pour toutes lors de l'installation de la messagerie et jamais reconsidérée. Connaître la convention d'un domaine vaut donc pour tous les contacts de ce domaine.

FormatPour Marie Dupont sur exemple.frOù on le rencontre
prenom.nom@marie.dupont@exemple.frLe plus répandu, dès quelques salariés
p.nom@m.dupont@exemple.frFréquent dans les PME et les cabinets
prenom@marie@exemple.frTrès petites structures, ambigu dès deux homonymes
nom@dupont@exemple.frPlus rare, souvent historique
prenomnom@mariedupont@exemple.frCourant sur les messageries d'hébergeur
Génériquecontact@exemple.frNe désigne personne en particulier

Les accents et les particules sont la principale source d'erreurs. Une messagerie normalise : les accents tombent, les espaces deviennent des points ou des tirets, les noms composés sont parfois tronqués. « Jean-Pierre de La Fontaine » peut produire jean-pierre.delafontaine@, jp.delafontaine@ ou jeanpierre.lafontaine@. Sur ce genre de nom, la déduction se trompe plus souvent qu'elle ne réussit.

Déduire une adresse à partir du nom de domaine

Tout part du domaine. On le lit sur le site web de l'entreprise, dans ses mentions légales, sur sa fiche d'établissement ou sur sa page LinkedIn. Encore faut-il que ce domaine serve effectivement à la messagerie, ce qui est loin d'être systématique.

Une part importante des très petites entreprises françaises a un site en .fr et reçoit son courrier sur une adresse d'opérateur ou de messagerie gratuite : orange.fr, wanadoo.fr, free.fr, gmail.com. Déduire une adresse sur le domaine du site produit alors une adresse parfaitement plausible et parfaitement inexistante.

La deuxième étape consiste à établir la convention du domaine, en partant d'une ou deux adresses connues et publiées. Sans aucune adresse connue, on en est réduit à tester les formats par ordre de fréquence, ce qui est un pari, pas une méthode.

La déduction seule ne suffit jamais, pour trois raisons distinctes. Le format retenu peut être le mauvais. La personne peut avoir quitté l'entreprise, ce qui arrive à une part significative d'un fichier chaque année. Et deux salariés homonymes obligent l'entreprise à dévier de sa convention pour l'un des deux. Envoyer sans vérifier revient à faire payer ces trois incertitudes à votre réputation d'expéditeur.

Vérifier une adresse, et ce que la vérification ne peut pas faire

La vérification standard se fait en quatre étages, du moins coûteux au plus coûteux :

  1. La syntaxe. Gratuite et instantanée, elle élimine les fautes de frappe et les adresses malformées. Elle ne prouve strictement rien sur l'existence de la boîte.
  2. Le domaine et son enregistrement MX. On vérifie que le domaine existe et qu'il déclare un serveur de messagerie. Sans MX, aucune adresse sur ce domaine ne peut recevoir quoi que ce soit : la ligne entière tombe, quel que soit le format.
  3. Le dialogue SMTP. On ouvre une connexion avec le serveur destinataire et on lui demande s'il accepte cette adresse, sans envoyer de message. C'est le seul étage qui teste réellement l'existence de la boîte.
  4. Les listes de rôles et de domaines jetables. Les adresses contact@, info@, noreply@ sont marquées comme génériques et traitées à part, parce qu'elles n'appellent ni la même approche ni la même mesure.

S'y ajoute une zone grise volontaire : certains grands services de messagerie répondent de façon délibérément ambiguë au dialogue SMTP, précisément pour empêcher l'énumération des adresses de leurs clients. Un vérificateur honnête vous rendra donc, sur n'importe quelle liste un peu large, trois catégories et non deux : valide, invalide, et indéterminé. Méfiez-vous de ceux qui n'en rendent que deux.

Les taux de rebond, en pratique

Le rebond dur signale une adresse qui n'existe pas. Le rebond souple signale un empêchement temporaire : boîte pleine, serveur indisponible, message trop lourd. Seul le premier mesure la qualité d'une liste, et c'est le seul qu'il faut suivre.

Taux de rebond durCe que cela signifieCe qu'il faut faire
Moins de 2 %Liste saine et récenteRien
2 à 5 %Liste vieillissante ou mal vérifiéeRevérifier avant le prochain envoi
5 à 10 %Problème de sourceArrêter l'envoi, la délivrabilité se dégrade déjà
Plus de 10 %Liste achetée ou périméeReconstruire, le domaine expéditeur est en danger

Ces seuils sont des ordres de grandeur communément retenus par les plateformes d'envoi, pas une règle de droit. La logique derrière est simple : les fournisseurs de messagerie interprètent un taux de rebond élevé comme la signature d'une liste achetée, et ils dégradent alors la réputation de l'expéditeur, pas seulement de la campagne. Une liste de cinq mille adresses non vérifiées peut coûter plus cher en délivrabilité future qu'elle ne rapportera jamais en réponses.

Enfin, une adresse vérifiée se périme. Elle reste valide tant que la personne est en poste, et le simple renouvellement des effectifs suffit à faire pourrir un fichier en dix-huit mois sans que rien d'autre se passe. Une vérification qui date de plus de quelques mois doit être refaite, et un fournisseur qui ne date pas ses vérifications ne vend pas une donnée vérifiée.

Les entreprises pour lesquelles il n'y a rien à trouver

C'est la limite qu'on énonce rarement : une part considérable des entreprises françaises n'a pas de site web, donc pas de nom de domaine, donc pas d'adresse email professionnelle. Micro-entrepreneurs, artisans, commerces de proximité, professions libérales, sociétés civiles. Aucune méthode, aucun outil et aucune base ne fait apparaître une adresse qui n'a jamais été créée.

Pour ces entreprises, les canaux qui restent sont le téléphone de la fiche d'établissement, le formulaire du site quand il y en a un, la visite et le courrier. Voir comment trouver le téléphone d'une entreprise.

Pour la démarche complète, de la définition de la cible à la constitution de la liste, voir constituer un fichier de prospection.

Sortir les adresses déjà présentes dans la base, sans rien enrichir

Avant de chercher quoi que ce soit, une partie du travail est déjà faite : Basile a relevé sur les sites d'entreprises les adresses qui y étaient publiées, et les rattache par le nom de domaine. Elles sortent à l'export sans un centime d'enrichissement, par la plateforme comme par une clé d'API. La contrepartie est celle du chapitre : ce sont presque toujours des adresses génériques, du contact@, et pas le nominatif d'une personne.

Dans la plateforme, pas à pas

  1. Ouvrez la recherche Entreprises et posez vos critères habituels (activité, code postal, effectif, entreprises actives uniquement).
  2. Dans l'encart « Avec : » du panneau de filtres, activez la bascule « Email ». Elle ne garde que les sociétés dont le domaine porte au moins une adresse relevée.
  3. Regardez le compteur de résultats avant d'aller plus loin. La chute est brutale et c'est normal (voir la note ci-dessous).
  4. Cliquez sur « Exporter », puis dans « Exporter en CSV » choisissez le format : « Par entreprise » pour une ligne par société, « Par point de vente » pour une ligne par établissement Google.
  5. Dans le fichier, lisez la colonne crawled_emails (les adresses relevées, séparées par des points-virgules) et le drapeau has_crawled_email. Le fill_score de la ligne vous dit d'un coup d'œil ce qui est rempli et ce qui ne l'est pas.

Trois réserves, qu'il vaut mieux connaître avant de conclure que le filtre est cassé. Le drapeau has_email n'est posé aujourd'hui que sur 180 278 fiches entreprises : la bascule n'ouvre pas un gisement caché, elle isole une petite minorité déjà couverte. C'est un filtre ET appliqué à chacune des trois sources et non un sélecteur de source : combinée à des critères qui ne vivent que dans le registre légal (code postal, code NAF, département, forme juridique), elle rétrécit très vite. Enfin, du côté Personnes, il n'existe pas de bascule équivalente : le panneau de filtres contacts n'a pas de « Avec email ». Vous exportez, puis vous triez sur la colonne.

Par l'API : POST /companies/export

{
  "filters": {
    "with_email": true,
    "company_ceased": false,
    "activity": { "include": ["esn_developpement_logiciel"] },
    "headquarters_postal_code": { "include": ["75008", "75009", "75017"] }
  },
  "mode": "companies"
}

Un flux CSV (text/csv; charset=utf-8), servi en pièce jointe. Les colonnes qui portent l'information cherchée sont crawled_emails et has_crawled_email. Sur la même ligne vous trouverez aussi le contact téléphonique de la société (gmb_phone, crawled_phones), son identité légale (legal_siren, legal_naf, legal_capital, legal_tranche_effectif) et son fill_score. Avec "mode": "locations", la même requête rend une ligne par établissement Google au lieu d'une ligne par société.

Comptez avant d'exporter : le même bloc filters envoyé à POST /companies/find avec "countOnly": true renvoie le total sans débiter de crédit. Lisez ce total comme un majorant, pas comme un décompte à l'unité : la déduplication exacte entre les trois sources n'est calculée qu'en dessous de 2 000 résultats, au-dessus le chiffre est la somme brute et une société vue dans deux sources y compte deux fois (mesuré : 4 335 annoncés pour 3 627 lignes réellement exportées). Attention à la pagination : /find se pilote avec limit (1000 au maximum par page pour des fiches complètes) et page ou paginationToken, pas avec un couple from/to. Deux garde-fous s'appliquent à l'export par clé d'API : au moins un filtre effectif est exigé (un corps sans filtre reçoit un 400 « At least one filter is required »), et le nombre de lignes est plafonné par votre forfait (20 000 par export sur le plan API). Côté personnes, POST /people/export accepte un corps de même forme et porte lui aussi une colonne crawled_emails, mais elle y est très clairsemée : l'adresse relevée vit au niveau du domaine de la société, pas du contact. Et aucun filtre with_email n'existe dans les filtres personnes : le tri se fait sur la colonne, après coup.

Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.

Avec Claude, en langage courant

Combien d'ESN actives dans les 8e, 9e et 17e arrondissements de Paris ont une adresse email relevée sur leur site ? Si c'est moins de cinq cents, sors-moi le CSV.

Claude enchaîne basile_activity_suggest, basile_count puis basile_export.

basile_count ne débite aucun crédit : c'est toujours le premier appel, et c'est lui qui vous évite de payer pour découvrir qu'il n'y a rien. Une réserve à garder en tête sur le chiffre rendu : au-delà de 2 000 résultats, le total entreprises est la somme brute des trois sources, donc un majorant ; côté personnes, une même personne présente au registre et sur LinkedIn est comptée deux fois. C'est un ordre de grandeur haut, pas un décompte à l'unité. basile_export consomme le quota d'export de votre forfait et rend le CSV directement dans la conversation jusqu'à 500 lignes ; au-delà, il produit un fichier à télécharger, comme l'export de la plateforme. basile_activity_suggest sert à trouver l'identifiant de concept d'activité à passer en filtre, plutôt que de le deviner.

Trouver l'adresse nominative d'un contact identifié

C'est la réponse directe à la question du chapitre, et elle remplace la déduction par convention. Vous ne pariez plus sur un format : vous demandez l'adresse, un fournisseur va la chercher puis la teste, et vous ne payez que si elle est trouvée. La recherche se déclenche sur la plateforme, dans l'extension LinkedIn, par l'API ou depuis Claude, et se règle sur votre solde d'enrichissement (5 centimes HT par email trouvé au tarif standard, affiché sur la page du solde).

Dans la plateforme, pas à pas

  1. Ouvrez la recherche Personnes et retrouvez le contact (nom, employeur, intitulé de poste).
  2. Vérifiez que la fiche porte un nom complet et au moins un identifiant d'employeur : nom de domaine, nom commercial, raison sociale ou dénomination légale. C'est ce couple que le fournisseur reçoit, et il les essaie en cascade. Une fiche sans aucun employeur identifiable est écartée sans être facturée.
  3. Sur la fiche, cliquez sur « Trouver l'e-mail ».
  4. Si vous aviez déjà trouvé cette adresse par le passé, elle réapparaît aussitôt et gratuitement : une coordonnée déjà payée n'est jamais rachetée.
  5. Sinon, l'écran de confirmation affiche le montant réservé sur votre solde avant tout débit. Confirmez, puis laissez le fournisseur répondre.
  6. L'adresse trouvée s'affiche sur la fiche et rejoint la colonne person_email de vos exports.

Le même geste existe dans l'extension LinkedIn, sur le profil que vous êtes en train de consulter : bouton « Trouver l'email » du panneau latéral. Le solde y sert aussi pour une personne absente de la base, le cas le plus fréquent sur LinkedIn : l'extension envoie alors le nom et la société du profil. Si vous avez des crédits Emelia, elle vous laisse choisir de payer avec votre clé Emelia à la place. Deux issues sont normales et ne sont pas des pannes : « Introuvable », auquel cas rien n'est débité, et le statut indéterminé que produit un domaine en catch-all, décrit plus haut. Le solde n'exige aucun abonnement : un compte gratuit peut payer cinq centimes pour une adresse.

Par l'API : POST /enrichment/find

{
  "full_name": "Marie Durand",
  "domain": "carrefour.fr",
  "company_name": "Carrefour",
  "find": "email",
  "request_id": "crm-contact-4812"
}

Un 202 avec un id : la recherche part dans une file, et le résultat se lit sur GET /enrichment/find/{id}, toutes les trois secondes tant que status vaut pending. À la fin, status passe à completed et le canal email porte son verdict : found, avec l'adresse dans value et le drapeau verified, ou bien not_found, failed, skipped, insufficient_balance. Rien n'est débité hors found ; charged_cents et balance_cents disent ce que la demande a coûté et ce qui reste. Avec "wait": true, le serveur attend le verdict jusqu'à environ 25 secondes avant de répondre.

La clé se passe dans l'en-tête Authorization, sans préfixe Bearer. L'e-mail exige domain ou company_name ; avec les deux, le domaine est essayé d'abord, puis la société, dans la même recherche et pour un seul prix. Une adresse que votre compte a déjà trouvée est resservie gratuitement, et un même request_id rejoué ne relance ni ne refacture rien. Avec person_id, l'_id d'une personne de /people/find, l'adresse trouvée est rangée sur la fiche, comme depuis la plateforme, et rejoint la colonne person_email de vos exports. Le paiement se fait sur le solde d'enrichissement (GET /enrichment/wallet rend le solde, les prix et le lien de recharge), jamais sur les crédits de recherche ni sur le quota d'export, et ces appels n'entrent dans aucune limite de requêtes de votre offre. Un compte qui a du solde sans offre API peut créer une clé réservée à l'enrichissement : elle ouvre /enrichment et rien d'autre.

Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.

Avec Claude, en langage courant

Trouve l'adresse email professionnelle de Marie Durand, directrice marketing chez Carrefour. Dis-moi d'abord ce qu'il me reste sur mon solde.

Claude enchaîne basile_enrichment_balance, basile_enrich_person puis basile_enrichment_status.

basile_enrich_person prend le nom complet et la société ou son domaine, et cherche l'adresse, que la personne soit dans Basile ou non. Il se paie sur votre solde d'enrichissement, pas sur vos crédits : 0,05 € HT par email trouvé, rien si rien n'est trouvé, et une adresse que votre compte a déjà trouvée est resservie gratuitement. basile_enrichment_balance, gratuit, donne le solde, les prix et le lien de recharge ; basile_enrichment_status relit une recherche encore en cours sans la relancer ni la refacturer. L'outil d'enrichissement est déclaré comme un outil qui consomme : votre client peut vous demander de confirmer avant l'appel. Cette voie ne demande pas l'offre API : un compte qui n'a qu'un solde d'enrichissement peut enrichir par le MCP, pas y chercher.

Enrichir toute une recherche d'un coup, plutôt que contact par contact

Passé quelques lignes, la fiche par fiche ne tient plus. L'enrichissement en masse prend la sélection entière, affiche un devis chiffré avant de lancer quoi que ce soit, puis tourne côté serveur : vous pouvez rafraîchir la page ou fermer l'onglet. Ce devis à l'écran est propre à la plateforme ; l'API a son envoi groupé, par cent personnes à la fois, et Claude enchaîne les contacts un par un.

Dans la plateforme, pas à pas

  1. Posez votre recherche Personnes jusqu'à ce que le résultat soit exactement celui que vous acceptez de payer. Le devis porte sur la sélection, pas sur ce qui aboutira : on affine avant, pas après.
  2. Cochez « Sélectionner tous les résultats ». La sélection est plafonnée à 20 000 contacts par lancement ; au-delà, découpez avec « Sélectionner une tranche… ».
  3. Cliquez sur « Trouver l'e-mail ». L'écran « Enrichissement sur votre solde » s'ouvre.
  4. Lisez les quatre lignes du devis avant de valider : « À rechercher » (le seul poste facturable), « Déjà trouvés (resservis gratuitement) », « Sans données suffisantes (ignorés) », et « Votre solde ». Les fiches sans employeur identifiable (ni domaine, ni nom commercial, ni raison sociale, ni dénomination légale) tombent d'office dans la troisième ligne.
  5. Validez avec « Lancer (réserver X) ». Le montant est réservé, pas débité : seules les adresses effectivement trouvées sont facturées, le reste revient sur votre solde à la fin du traitement.
  6. Laissez tourner. Un seul enrichissement à la fois par compte (une seconde tentative reçoit un refus « enrichissement déjà en cours »), et la progression se retrouve après un rafraîchissement ou dans un autre onglet.
  7. Une fois terminé, exportez en réglant « Contacts à inclure » sur « Avec email » : le CSV ne garde alors que les lignes dont vous possédez l'adresse nominative. L'option reste grisée tant qu'aucun email n'a été trouvé dans cette recherche.

Si vous avez enregistré votre propre clé Emelia dans les réglages, l'enrichissement passe par elle et consomme vos crédits Emelia : le tunnel est le même, sans l'écran de devis sur solde. Une remarque de méthode, qui vaut plus que le mode d'emploi : un enrichissement de masse lancé sur une recherche mal cadrée coûte le prix de la recherche mal cadrée. Le devis est le dernier endroit où cela se rattrape, et les trois premières lignes qu'il affiche sont là pour ça.

Par l'API : POST /enrichment/find/batch

{
  "find": "email",
  "request_id": "campagne-octobre-lot-1",
  "people": [
    { "ref": "crm-4812", "full_name": "Marie Durand", "domain": "carrefour.fr" },
    { "ref": "crm-4813", "full_name": "Paul Martin", "company_name": "Decathlon" }
  ]
}

Un 202 avec un batch_id. GET /enrichment/find/batch/{batchId}, à relire toutes les cinq secondes tant que status vaut pending, rend un résultat par personne dans items, dans l'ordre envoyé et avec votre ref, plus counts (les canaux par statut) et charged_cents, le total débité. Chaque personne est traitée comme une demande de POST /enrichment/find : mêmes champs, même prix, mêmes règles.

Cent personnes au plus par lot : au-delà, enchaînez les lots. Il n'y a ni limite par minute ni limite par jour, et ces appels n'entrent pas dans les plafonds de votre offre : une file fait patienter les recherches, et seul un plafond de sécurité très haut répond 429. Rejouer un lot avec le même request_id ne refacture rien et ne lance que les personnes restées not_started. Il n'y a pas d'écran de devis : un solde insuffisant répond 402 wallet_insufficient, avec le montant manquant et le lien de recharge. Chiffrez donc avant d'envoyer : à 0,05 € HT l'adresse trouvée, un lot de cent personnes coûte au plus 5 € HT, et seules les adresses trouvées sont débitées.

Le détail des champs, des filtres et des codes de réponse est dans la documentation de l'API.

Avec Claude, en langage courant

Voici trente dirigeants avec leur société. Trouve leur email professionnel, mais annonce-moi d'abord le coût maximal et attends mon accord.

Claude enchaîne basile_enrichment_balance, basile_enrich_person puis basile_enrichment_status.

Claude appelle basile_enrich_person une fois par contact. La consigne de l'outil lui demande, avant d'enrichir plusieurs personnes, d'annoncer le coût maximal et d'attendre votre accord : ici trente fois 0,05 € HT, soit 1,50 € HT au plus, seules les adresses trouvées étant débitées sur votre solde d'enrichissement. Pour une recherche entière de plusieurs milliers de contacts, l'écran de la plateforme reste le plus commode, avec son devis et sa reprise après rafraîchissement. Claude y est utile en amont : il cadre la cible avec basile_count, qui ne débite rien, en gardant en tête que ce compte de personnes est un majorant, une même personne présente au registre et sur LinkedIn y figurant deux fois.

À lire ensuite