Partage
  • Partager sur Facebook
  • Partager sur Twitter

Alerte quand on recit un mail

    25 décembre 2016 à 18:19:12

    Bonjour ! J'aimerais savoir comment on peut faire une alerte quand on recoit un mail dans un script python. Par exemple écrire "tu a recu un nouveau mail". Vous avez des idée ??
    • Partager sur Facebook
    • Partager sur Twitter
      25 décembre 2016 à 18:28:38

      Bonjour, je t'invite à regarder ce code (ce n'est pas moi qui l'ai fait)

      import imaplib
      mail = imaplib.IMAP4_SSL('imap.gmail.com')
      mail.login('XXXXX@gmail.com', 'XXXXX')
      mail.list()
      
      mail.select("inbox")
      result, data = mail.search(None, "ALL")
      
      ids = data[0]
      id_list = ids.split()
      latest_email_id = id_list[-1]
      result, data = mail.fetch(latest_email_id, "(RFC822)") 
      raw_email = data[0][1]
      print(raw_email)
      

      Le contenu de raw_email te donnera plein d'infos sur le dernier mail que tu as reçu.

      Pour savoir si tu viens d'en recevoir un nouveau, vérifie juste si le contenu de raw-email a changé.

      • Partager sur Facebook
      • Partager sur Twitter
        25 décembre 2016 à 18:33:29

        Leyme a écrit:

        Bonjour, je t'invite à regarder ce code (ce n'est pas moi qui l'ai fait)

        import imaplib
        mail = imaplib.IMAP4_SSL('imap.gmail.com')
        mail.login('XXXXX@gmail.com', 'XXXXX')
        mail.list()
        
        mail.select("inbox")
        result, data = mail.search(None, "ALL")
        
        ids = data[0]
        id_list = ids.split()
        latest_email_id = id_list[-1]
        result, data = mail.fetch(latest_email_id, "(RFC822)") 
        raw_email = data[0][1]
        print(raw_email)
        

        Le contenu de raw_email te donnera plein d'infos sur le dernier mail que tu as reçu.

        Pour savoir si tu viens d'en recevoir un nouveau, vérifie juste si le contenu de raw-email a changé.

        Et comment je le verifie



        • Partager sur Facebook
        • Partager sur Twitter
          25 décembre 2016 à 19:50:30

          Quand tu lances ton programme stocke le contenu de raw_email dans une autre variable, tout bêtement :

          dernierMail=raw_email

          Ensuite à chaque fois que tu vérifies si tu as reçu un mail il te suffit de vérifier si raw_email a changé.

          if raw_email != dernierMail :
              print("Vous avez reçu un mail")
              dernierMail=raw_email
          else :
              print("Toujours rien...")



          -
          Edité par Leyme 25 décembre 2016 à 19:50:58

          • Partager sur Facebook
          • Partager sur Twitter
            25 décembre 2016 à 20:22:35

            Leyme a écrit:

            Quand tu lances ton programme stocke le contenu de raw_email dans une autre variable, tout bêtement :

            dernierMail=raw_email

            Ensuite à chaque fois que tu vérifies si tu as reçu un mail il te suffit de vérifier si raw_email a changé.

            if raw_email != dernierMail :
                print("Vous avez reçu un mail")
                dernierMail=raw_email
            else :
                print("Toujours rien...")

            je suis désolé de te déranger, tu va te dire que je suis nul, mais pourquoi ce code ne marche pas stp :$

            import time
            import os
            import imaplib
            mail = imaplib.IMAP4_SSL('imap.gmail.com')
            mail.login('email', 'MDP')
            mail.list()
             
            mail.select("inbox")
            result, data = mail.search(None, "ALL")
             
            ids = data[0]
            id_list = ids.split()
            latest_email_id = id_list[-1]
            result, data = mail.fetch(latest_email_id, "(RFC822)")

            raw_email = data[0][1]
            dernierMail=raw_email

            a = 0

            while a == 0:
             dernierMail=raw_email
             if raw_email != dernierMail :
                print("Vous avez reçu un mail")
                dernierMail=raw_email

               



            -
            Edité par Leyme il 


               



            -
            Edité par VanWard 26 décembre 2016 à 9:14:27

            • Partager sur Facebook
            • Partager sur Twitter
              26 décembre 2016 à 8:55:23

              Bonjour,

              Avant toute chose je t'invite à corriger ton précédent message dans lequel tu écris 3 fois la même chose.

              Ton programme ne fonctionne pas car tu rafraîchis ta boîte mail qu'une seule fois. Il faut la rafraîchir à chaque fois que tu veux vérifier si le dernier mail reçu a changé.

              J'ai fait le code en gardant ton while a==0 : mais peut-être serait-il plus judicieux de trouver un autre procédé.

              Sur ce, mon code :

              import imaplib
              
              def rafraichir():
                  mail = imaplib.IMAP4_SSL('imap.gmail.com')
                  mail.login('E-Mail', 'MDP')
                  mail.list()
                  mail.select("inbox")
                  result, data = mail.search(None, "ALL")
                  ids = data[0]
                  id_list = ids.split()
                  latest_email_id = id_list[-1]
                  result, data = mail.fetch(latest_email_id, "(RFC822)")
                  raw_email = data[0][1]
                  return raw_email
              
              
              dernierMail=rafraichir()
              a=0
              while a==0 :
                  mailApresRafraichissement=rafraichir()
                  if dernierMail != mailApresRafraichissement :
                      print("Vous avez reçu un mail")
                      dernierMail=mailApresRafraichissement
              
              
              
              
              

              Aussi si ton adresse mail n'est pas XXX@gmail.com il faut faire une modification au niveau de la ligne

              mail = imaplib.IMAP4_SSL('imap.gmail.com')

              Tu trouveras une liste ici.

              -
              Edité par Leyme 26 décembre 2016 à 8:55:57

              • Partager sur Facebook
              • Partager sur Twitter
                26 décembre 2016 à 9:21:35



                Leyme a écrit:

                Bonjour,

                Avant toute chose je t'invite à corriger ton précédent message dans lequel tu écris 3 fois la même chose.

                Ton programme ne fonctionne pas car tu rafraîchis ta boîte mail qu'une seule fois. Il faut la rafraîchir à chaque fois que tu veux vérifier si le dernier mail reçu a changé.

                J'ai fait le code en gardant ton while a==0 : mais peut-être serait-il plus judicieux de trouver un autre procédé.

                Sur ce, mon code :

                import imaplib
                
                def rafraichir():
                    mail = imaplib.IMAP4_SSL('imap.gmail.com')
                    mail.login('E-Mail', 'MDP')
                    mail.list()
                    mail.select("inbox")
                    result, data = mail.search(None, "ALL")
                    ids = data[0]
                    id_list = ids.split()
                    latest_email_id = id_list[-1]
                    result, data = mail.fetch(latest_email_id, "(RFC822)")
                    raw_email = data[0][1]
                    return raw_email
                
                
                dernierMail=rafraichir()
                a=0
                while a==0 :
                    mailApresRafraichissement=rafraichir()
                    if dernierMail != mailApresRafraichissement :
                        print("Vous avez reçu un mail")
                        dernierMail=mailApresRafraichissement
                
                

                Ausi si ton adresse mail n'est pas XXX@gmail.com il faut faire une modification au niveau de la ligne

                mail = imaplib.IMAP4_SSL('imap.gmail.com')

                Tu trouveras une liste ici.

                -
                Edité par Leyme il y a 21 minutes

                Merci !!!



                • Partager sur Facebook
                • Partager sur Twitter

                Alerte quand on recit un mail

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown