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

Réseau/Web Python Discussion :

Récéption de mails avec python [Python 3.X]


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    avril 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : avril 2022
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Récéption de mails avec python
    Bonjour,
    Je cherche à lire des mails avec python.
    Voilà le code que j'ai déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import poplib
     
    def Lecture(login,code):
     
        poplib.POP3_SSL('pop.gmail.com')
        M = poplib.POP3('')
     
        #Login to mail server
        mServer.user(login)
        mServer.pass_(code)
     
        #Get the number of mail messages
        numMessages = len(mServer.list()[1])
        print("You have % messages." % (numMessages))
        print("Message List:")
     
        #List the subject line of each message
        for mList in range(numMessages) :
            for msg in mServer.retr(mList+1)[1]:
                if msg.startswith('Subject'):
                    print('\t' + msg)
                    break
     
        mServer.quit()
    et voilà l'erreur renvoyée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Traceback (most recent call last):
      File "<pyshell>", line 1, in <module>
      File "E:\NSI 1°\Codes séparés\Lecture des mails.py", line 9, in Lecture
        M = poplib.POP3('')
      File "C:\Program Files\Python310\lib\poplib.py", line 104, in __init__
        self.sock = self._create_socket(timeout)
      File "C:\Program Files\Python310\lib\poplib.py", line 112, in _create_socket
        return socket.create_connection((self.host, self.port), timeout)
      File "C:\Program Files\Python310\lib\socket.py", line 845, in create_connection
        raise err
      File "C:\Program Files\Python310\lib\socket.py", line 833, in create_connection
        sock.connect(sa)
    ConnectionRefusedError: [WinError 10061] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    juillet 2006
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Alimentation

    Informations forums :
    Inscription : juillet 2006
    Messages : 3 224
    Points : 5 894
    Points
    5 894
    Par défaut
    Bonjour,

    As-tu possibilité de configuré le compte Gmail ?

    Si non ça risque d'être compliqué, il faut que le serveur Gmail puisse accepter la connexion depuis des application tierces.

    https://support.google.com/accounts/..._topic=7188673
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    19 584
    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 : 19 584
    Points : 33 835
    Points
    33 835
    Par défaut
    Salut,

    L'erreur est explicite: ConnectionRefusedError et l'instruction qui l'a provoquée aussi M = poplib.POP3('').

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

  4. #4
    Membre émérite Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2013
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2013
    Messages : 1 376
    Points : 2 891
    Points
    2 891
    Par défaut
    bonjour

    ps: j'espère que tu as écrit ici des fausses données login/pass

    gmail par défaut, par sécurité, n'est pas accessible par un client mail, il faut déactiver une option dans sa config
    EDIT: grillé
    $moi= ( !== ) ? : ;

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    avril 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : avril 2022
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'ai déjà modifié tous les paramètres de la boite gmail.
    je connais l'erreur mais je ne sais pas comment la résoudre.


    Ne vous inquiétez pas je n'ai pas mis les vrais identifiants et mot de passe!!!

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    19 584
    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 : 19 584
    Points : 33 835
    Points
    33 835
    Par défaut
    Citation Envoyé par Rafi1 Voir le message
    J'ai déjà modifié tous les paramètres de la boite gmail.
    je connais l'erreur mais je ne sais pas comment la résoudre.
    M = poplib.POP3('') essaie d'ouvrir une connexion vers le serveur POP3 du host ''.
    A priori c'est votre propre machine, où il n'y a pas de serveur POP3 démarré.
    Et donc aucune connexion ne peut être établie.

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

  7. #7
    Membre émérite Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2013
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2013
    Messages : 1 376
    Points : 2 891
    Points
    2 891
    Par défaut
    oops, ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    poplib.POP3_SSL('pop.gmail.com')
    M = poplib.POP3('')
    mServer.user(login)
    se connecter à 2 serveurs différents et changer les noms de variables en cours n'est pas top

    Plus logique cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mServer = poplib.POP3_SSL('pop.gmail.com')
    mServer.user(login)
    $moi= ( !== ) ? : ;

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    19 584
    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 : 19 584
    Points : 33 835
    Points
    33 835
    Par défaut
    Citation Envoyé par papajoker Voir le message
    se connecter à 2 serveurs différents et changer les noms de variables en cours n'est pas top
    C'est ce qui arrive lorsqu'on recopie des bouts de code sans trop comprendre...

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

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    avril 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : avril 2022
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci papajoker!
    En effet ca marche mieux.
    Mais maintenant le problème est ligne 20
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: startswith first arg must be bytes or a tuple of bytes, not str
    et je ne sais pas comment le résoudre.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    19 584
    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 : 19 584
    Points : 33 835
    Points
    33 835
    Par défaut
    Citation Envoyé par Rafi1 Voir le message
    je ne sais pas comment le résoudre.
    Et si vous appreniez à programmer avant de vouloir faire de petits projets?

    Dans les tutos, sont proposés des exercices (souvent corrigés) qui permettent de s' entraîner à comprendre les messages d'erreurs et à construire des stratégies pour les résoudre (pour autant qu'on essaie de faire l'exercice et non juste survoler la solution).

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

  11. #11
    Membre expérimenté
    Inscrit en
    février 2003
    Messages
    1 391
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 1 391
    Points : 1 512
    Points
    1 512
    Par défaut
    Citation Envoyé par Rafi1 Voir le message
    Merci papajoker!
    En effet ca marche mieux.
    Mais maintenant le problème est ligne 20
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: startswith first arg must be bytes or a tuple of bytes, not str
    et je ne sais pas comment le résoudre.
    En copiant/collant tel quel le message d'erreur dans google, le premier lien retourné explique le pourquoi du comment.

    Avez-vous cherché, a minima ?

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    avril 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : avril 2022
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Voila mon code corrigé et ca marche!!!
    Merci tout le monde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def Lecture(login,code):
     
        #Connexion au mail
        mServer = poplib.POP3_SSL('pop.gmail.com')
        mServer.user(login)
        mServer.pass_(code)
     
        #Renvoie le nombre de messages non-lus dans la boîte mail
        numMessages = len(mServer.list()[1])
        print("You have ",numMessages," messages.")
     
        if numMessages != 0:
            print("Message List:")
     
            #Renvoie une liste des objets de chaque message
            for mList in range(numMessages) :
                for msg in mServer.retr(mList+1)[1]:
                    if msg.startswith(bytes("subject","utf-8")):
                        msg = str(msg)
                        print('\t' + msg[1:])
                        break

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

Discussions similaires

  1. Envoyer un mail avec texte accentué via python
    Par xunil2003 dans le forum Tkinter
    Réponses: 1
    Dernier message: 15/03/2016, 19h05
  2. Generation de mail avec python
    Par bigburgr dans le forum Général Python
    Réponses: 13
    Dernier message: 26/06/2012, 18h30
  3. comment créer un mail avec Zope / Python ?
    Par malmzi2007 dans le forum Zope
    Réponses: 3
    Dernier message: 12/07/2006, 19h19
  4. [TIdSMTP] Envoi d'un mail avec authentification ?
    Par BACUS dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2004, 16h18
  5. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22

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