ich möchte Mails, die bestimmte Kriterien erfüllen, in Gmail in den Papierkorb verschieben, in diesem Fall z. B. die Sicherheitswarnung, die durch das Einloggen in Gmail im Browser kommt.
Ich erhalte allerdings am Ende beim Befehl "copy" den Fehler
Code: Alles auswählen
imaplib.IMAP4.error: UID command error: BAD [b'Could not parse command']
Die gleiche UID erhalte ich, wenn ich wie hier https://stackoverflow.com/questions/352 ... nd-imaplib den Befehl "fetch" verwende, das müsste also passen.
In diesem Fall https://stackoverflow.com/questions/497 ... se-command war z. B. das Problem, dass die UID nicht als string übergeben wurde, das müsste bei mir eigentlich passen, drum weiß ich nicht, an was es liegen könnte.
Hier noch der Code:
Code: Alles auswählen
import imaplib
mailadress = 'beispiel@gmail.com'
pw = 'beispiel'
filter = ['(SUBJECT "Sicherheitswarnung")']
M = imaplib.IMAP4_SSL('imap.gmail.com')
M.login(mailadress, pw)
for obj in M.list()[1]:
folder = obj.decode('utf-8').partition('"/"')[-1].lstrip()
status = M.select(folder)[0]
if status == "OK":
data = []
for rej in filter:
data = M.uid('SEARCH', None, rej)[1]
data = data[0].split()
print(data)
for id in data:
id = id.decode('utf-8')
M.uid('COPY', id, '[Google Mail]/Papierkorb')
else:
continue
M.close()
M.logout()