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 :

imaplib.error : login FAILED


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut imaplib.error : login FAILED
    Bonjour,


    J'ai un problème lors du lancement de mon script python permettant de se connecter à une adresse mail et récupérer les dernières pièces jointes des mails non-lu.

    J'ai effectuer ma base de test sur des adresses hotmail et outlook et tout fonctionne.

    Seulement, après avoir tester avec une adresse office 365 d'entreprise, j'obtiens l'erreur imaplib.error : login failed.

    PS: J'utilise python 2.7


    Voici mon code :


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #!/usr/bin/python2.7
    import email
    import imaplib
    import os
     
     
    class FetchEmail():
     
        connection = None
        error = None
     
        def __init__(self, mail_server, username, password, path):
            self.connection = imaplib.IMAP4_SSL(mail_server)
            self.connection.login(username, password)
            self.connection.select(readonly=False) # so we can mark mails as read
            msg = self.fetch_unread_messages()
            for element in msg:
                pathFile = self.save_attachment(element, path)
                print pathFile
            self.close_connection()
     
        def close_connection(self):
            """
            Close the connection to the IMAP server
            """
            self.connection.close()
     
        def save_attachment(self, msg, download_folder):
            """
            Given a message, save its attachments to the specified
            download folder (default is /tmp)
     
            return: file path to attachment
            """
            att_path = "No attachment found."
            for part in msg.walk():
                if part.get_content_maintype() == 'multipart':
                    continue
                if part.get('Content-Disposition') is None:
                    continue
     
                filename = part.get_filename()
                att_path = os.path.join(download_folder, filename)
     
                if not os.path.isfile(att_path):
                    fp = open(att_path, 'wb')
                    fp.write(part.get_payload(decode=True))
                    fp.close()
            return att_path
     
        def fetch_unread_messages(self):
            """
            Retrieve unread messages
            """
            emails = []
            (result, messages) = self.connection.search(None, 'UnSeen')
            if result == "OK":
                for message in messages[0].split(' '):
                    try:
                        ret, data = self.connection.fetch(message,'(RFC822)')
                    except:
                        print ("No new emails to read.")
                        self.close_connection()
                        exit()
     
                    msg = email.message_from_string(data[0][1])
                    if isinstance(msg, str) == False:
                        emails.append(msg)
                    #response, data = self.connection.store(message, '+FLAGS','\\Seen')
                print emails
                return emails
     
            self.error = "Failed to retreive emails."
            return emails
     
        def parse_email_address(self, email_address):
            """
            Helper function to parse out the email address from the message
     
            return: tuple (name, address). Eg. ('John Doe', 'jdoe@example.com')
            """
            return email.utils.parseaddr(email_address)
     
    a = FetchEmail('SMTP.office365.com', 'Jean.louis@airbus.fr', 'Tdhxk49', 'C:\\Users\\jean.l\\Documents\\Scan') #On entre nos infos de mails ici
    Avez-vous une idée ?


    Cordialement,

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,

    Citation Envoyé par ElFanTom Voir le message
    Avez-vous une idée ?
    Ca veut juste dire que le mécanisme d'authentification ou les paramètres utilisés pour yahoo n'est pas le même que pour Office 365. Et que vous devez commencer par lire la documentation donnée par Microsoft pour savoir comment faire.
    Ce qui n'a pas beaucoup de rapport avec la programmation Python....

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut
    Merci de votre réponse,

    Seulement les serveurs SMTP et IMAP entre outlook et office365 sont les mêmes(outlook.office365.com et smtp.office365.com).
    Je ne comprend donc pas il n'arrive pas a se logger.
    Mes tests ont été effectués sur des adresses mails outlook.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Citation Envoyé par ElFanTom Voir le message
    Seulement les serveurs SMTP et IMAP entre outlook et office365 sont les mêmes(outlook.office365.com et smtp.office365.com).
    Si vous pensez que ce sont les mêmes et que çà ne fonctionne pas, il faut relire attentivement le mode d'emploi qui a certainement été publié/fourni par Microsoft pour vous assurer que c'est aussi semblable que vous le pensez. Et le cas échéant aller râler à la hotline Microsoft.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/09/2017, 21h28
  2. Réponses: 2
    Dernier message: 26/08/2013, 21h49
  3. Login failed for user 'sa'
    Par tofke dans le forum MS SQL Server
    Réponses: 20
    Dernier message: 19/03/2009, 11h34
  4. [PEAR][DB] Error pear : DB_DataObject Error: Connect failed, turn on debugging to 5 see why
    Par lailalachir dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/07/2007, 14h51
  5. Réponses: 1
    Dernier message: 11/05/2006, 22h05

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