IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Module validate_email problème lors de l'exécution


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Par défaut Module validate_email problème lors de l'exécution
    Bonjour à tous,
    J'espère que tout le monde va bien.

    Aujourd'hui j'utilise le module évoqué dans le titre :"validate_email" pour vérifier qu'une adresse mail soit bien existante, c'est-à-dire que l'on ai un utilisateur derrière.

    Je travaille sur python 2.7, j'ai installé validate_email et pyDNS.
    Ensuite j'exécute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    from validate_email import validate_email
    is_valid = validate_email('gabriel@example.fr',check_mx=True)
    print is_valid
    mais je reçois cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    C:\Users\gabriel\PycharmProjects\valider_mails\v\Scripts\python.exe C:/Users/gabriel/PycharmProjects/valider_mails/email.py
    Traceback (most recent call last):
      File "C:/Users/gabriel/PycharmProjects/valider_mails/email.py", line 1, in <module>
        from validate_email import validate_email
      File "C:\Python27\lib\site-packages\validate_email.py", line 21, in <module>
        import smtplib
      File "C:\Python27\Lib\smtplib.py", line 46, in <module>
        import email.utils
      File "C:\Users\gabriel\PycharmProjects\valider_mails\email.py", line 1, in <module>
        from validate_email import validate_email
    ImportError: cannot import name validate_email
    Process finished with exit code 1

    Seriez-vous capable de m'aider,

    Merci bien, Gabriel

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Peut-être as-tu installé ce module dans une installation python autre que celle de Pycharm.

    Ce qui est très classique comme erreur.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Renommez votre script email.py en toto_email.py et ré-essayez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    C'est bien de vérifier que l'adresse email satisfait bien à la syntaxe normalisée (test par expressions régulières).

    Mais, à ma connaissance, plus aucun serveur ne répond pour dire si l'adresse email existe ou pas chez lui. Ceci à cause du spam. J'avais essayé il y a 4 ou 5 ans avec de nombreux serveurs email dans le monde (j'avais le problème pour 40 pays). C'est dommage, parce qu'en cas d'erreur d'adresse (syntaxiquement correcte), il faut attendre de recevoir par email l'erreur du serveur pour savoir que l'envoi n'a pas réussi, et c'est plus long à gérer en temps (la réponse peut nécessiter plusieurs jours) et en charge de travail (il faut alors chercher la bonne adresse).

    Mais peut-être cela a-t-il évolué depuis?

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    Mais, à ma connaissance, plus aucun serveur ne répond pour dire si l'adresse email existe ou pas chez lui. Ceci à cause du spam.
    Un des moyens qu'utilisent les serveurs SMTP contre les spams est déjà de vérifier que l'expéditeur est valide.

    Citation Envoyé par tyrtamos Voir le message
    Mais peut-être cela a-t-il évolué depuis?
    Il suffit de tester... et comme gmail fonctionne, c'est suffisant pour invalider l'affirmation "plus aucun serveur ne répond pour dire..."

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    @ wiztricks

    C'est un des (rares) cas où j'aimerais bien avoir tort, mais je ne crois pas.

    Le fait de demander à un serveur mail si une adresse existe a été prévu depuis le début dans le protocole SMTP par le code "VRFY".

    Dans le module smtplib de Python, on utilise pour cela la méthode "verify":

    extrait de la doc:

    SMTP.verify(address)
    Check the validity of an address on this server using SMTP VRFY. Returns a tuple consisting of code 250 and a full RFC 822 address (including human name) if the user address is valid. Otherwise returns an SMTP error code of 400 or greater and an error string.

    Note:
    Many sites disable SMTP VRFY in order to foil spammers.
    Il suffit d'essayer pour vérifier. C'est ce que j'avais fait, et ça ne marchait nulle part. Compte tenu du développement du spam, ça m'étonnerait que ça marche maintenant.

    Mais peut-être y a-t-il un autre moyen (Telnet, ...)? Ce serait très intéressant qu'il y en ait un!

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Renommez votre script email.py en toto_email.py et ré-essayez.

    - W
    Extraordinaire, j'ai cru à la blague (désolé ).
    Il n'y a plus d'erreur mais le print renvoie "None", est-ce normal ?
    Pourtant j'ai rentré mon adresse mail.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Il n'y a plus d'erreur mais le print renvoie "None", est-ce normal ?
    Pourtant j'ai rentré mon adresse mail.
    Lorsqu'il renvoie None, c'est que l'adresse est invalide ou qu'il plante pour une raison x, y... Et le seul moyen de savoir est de configurer le module logging
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import logging
    import sys
    logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
    puis de relancer la commande avec l'option debug=True et regarder ce qui s'affiche.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Lorsqu'il renvoie None, c'est que l'adresse est invalide ou qu'il plante pour une raison x, y... Et le seul moyen de savoir est de configurer le module logging
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import logging
    import sys
    logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
    puis de relancer la commande avec l'option debug=True et regarder ce qui s'affiche.

    - W
    Alors j'ai ajouté les quelques lignes de codes.
    L'erreur est :
    DEBUG:validate_email:ServerError or socket.error exception raised (timed out).

    J'ai trouvé pourquoi : le réseau professionnel sur lequel je suis connecté ne semble pas marcher.
    Par contre, mon partage de réseau via mon téléphone marche.

    Cela affiche désormais True pour mes tests.

    Maintenant si j'affiche :
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    is_valid = validate_email('example@hotmail.fr',verify=True)

    Hotmail n'affiche que False même pour des adresses que je sais correcte. Est-ce normal ?

    Gabriel

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2019
    Messages : 9
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Peut-être as-tu installé ce module dans une installation python autre que celle de Pycharm.

    Ce qui est très classique comme erreur.
    Alors j'utilise JetBrains Pycharm CE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lors de l'exécution du code
    Par souminet dans le forum Bases de données
    Réponses: 7
    Dernier message: 11/12/2007, 22h15
  2. Réponses: 10
    Dernier message: 30/01/2007, 09h29
  3. [Procédure] problème lors de l'exécution
    Par pinocchio dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 31/10/2006, 14h23
  4. Problème lors de l'exécution d'un trigger
    Par Madoka dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 30/06/2006, 08h33
  5. Problème lors de l'exécution de mes programmes
    Par darkmalak01 dans le forum Langage
    Réponses: 7
    Dernier message: 27/09/2005, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo