Wenn Sie jemals neugierig sind, wie wir Google Mail-E-Mails mit Python abrufen können, ist dieser Artikel genau das Richtige für Sie.

Wie wir wissen, ist Python eine Multi-Utility-Sprache, mit der eine Vielzahl von Aufgaben ausgeführt werden können. Das Abrufen von Google Mail-E-Mails ist zwar eine mühsame Aufgabe, aber mit Python können viele Dinge getan werden, wenn Sie mit der Verwendung vertraut sind. Google Mail bietet IMAP-Zugriff für Clients, die auf Google Mail zugreifen möchten, ohne sich manuell im Browser anzumelden.

Aktivieren Sie dies auf der Einstellungsseite, bevor Sie das Skript ausführen.

Implementierung:
Die in dieser Implementierung verwendeten Bibliotheken umfassen imaplib , email . Sie müssen den IMAP-Zugriff manuell aktivieren, indem Sie die Einstellungen Ihres Google Mail-Kontos aufrufen . Danach konnten nur Sie auf Ihr Google Mail-Konto zugreifen, ohne sich im Browser anzumelden.

  • In der Implementierung sind drei Funktionen definiert, mit denen der E-Mail-Text abgerufen, nach E-Mails eines bestimmten Benutzers gesucht und alle E-Mails unter einem Label abgerufen werden.
  • Um Ergebnisse anzuzeigen, habe ich von meinem anderen Google Mail-Konto aus eine E-Mail an meine ID gesendet. Jetzt rufe ich E-Mails von meinem Google Mail-Konto ab, die von meinem anderen Google Mail-Konto empfangen werden.
  • Der Prozess beginnt mit dem Herstellen einer Google Mail-Verbindung mithilfe der imaplib-Bibliothek und dem Nachweis unserer Google Mail-Anmeldeinformationen.
  • Nach der Protokollierung wählen wir E-Mails unter der Bezeichnung "Posteingang" aus. Dies ist ein standardmäßig beschrifteter Abschnitt für alle Benutzer. Sie können jedoch auch eigene Beschriftungen erstellen.
  • Dann rufen wir die Funktion "E-Mails abrufen" auf und geben den Parameter aus dem Ergebnis der Suchfunktion an, dh "vom Benutzer".
  • In der Funktion zum Abrufen von E-Mails fügen wir alle E-Mails in ein Array mit dem Namen "msgs" ein.
  • Drucken Sie nun, um das msgs-Array anzuzeigen
  • Jetzt können wir dieses Array leicht durchlaufen. Wir wiederholen es in der Reihenfolge, in der die E-Mails angekommen sind. Dann suchen wir nach dem Index, von dem aus unser Inhalt beginnt. Dieser Indizierungsteil ist für verschiedene E-Mails / Benutzer unterschiedlich, und der Benutzer kann die Indizes manuell ändern, um nur den Teil zu drucken, den er benötigt.
  • Wir haben unsere Ergebnisse ausgedruckt.

Unten ist die Python-Implementierung -



import imaplib, email 
  
user = 'USER_EMAIL_ADDRESS'
password = 'USER_PASSWORD'
imap_url = 'imap.gmail.com'
  
def get_body(msg): 
    if msg.is_multipart(): 
        return get_body(msg.get_payload(0)) 
    else: 
        return msg.get_payload(None, True) 
  
def search(key, value, con):  
    result, data = con.search(None, key, '"{}"'.format(value)) 
    return data 
  
def get_emails(result_bytes): 
    msgs = [] 
    for num in result_bytes[0].split(): 
        typ, data = con.fetch(num, '(RFC822)') 
        msgs.append(data) 
  
    return msgs 
  
con = imaplib.IMAP4_SSL(imap_url)  
  
con.login(user, password)  
  
con.select('Inbox'
  
 
msgs = get_emails(search('FROM', 'MY_ANOTHER_GMAIL_ADDRESS', con)) 
  
  
  
  
for msg in msgs[::-1]:  
    for sent in msg: 
        if type(sent) is tuple
  
            
            content = str(sent[1], 'utf-8'
            data = str(content) 
  
            
            try
                indexstart = data.find("ltr") 
                data2 = data[indexstart + 5: len(data)] 
                indexend = data2.find("</div>") 
  
                
                
                print(data2[0: indexend]) 
  
            except UnicodeEncodeError as e: 
                pass

Ausgabe: