Python | Rufen Sie Ihre Google Mail-E-Mails von einem bestimmten Benutzer ab
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>"
)
(data2[
0
: indexend])
except
UnicodeEncodeError as e:
pass
Ausgabe: