ich hab mir als kleines Helferlein ein Programm geschrieben das meine Gmail Mailbox aufräumen soll.
Grds. funktioniert das auch ganz o.k. ich habe nur ein Problem, dass ich nicht alle Mails selektiert bekomme und keine bestimmten Ordner/Labels in gmail auswählen kann.
Ich kann aber absolut nicht nachvollziehen warum nicht alle Mails selektiert werden oder muss ich weitere Ordner (außer Inbox) ansprechen.
Code: Alles auswählen
#Werbung auslesen
import imaplib
import pprint
import imapclient
import pyzmail
from email.header import decode_header
import smtplib,email,email.encoders,email.mime.text,email.mime.base
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
imaplib._MAXLINE = 10000000
#------------------------------------------------------------#
#Datum feslegen von wann bis wann gelsöcht wird 300/1
import datetime
from datetime import date
aktuellesDatum = date.today()
dat_since = aktuellesDatum - datetime.timedelta(days = 300)
dat_till = aktuellesDatum - datetime.timedelta(days = 1)
#------------------------------------------------------------#
#------------------------------------------------------------#
#Mailbox anmelden
imapObj = imapclient.IMAPClient('imap.gmail.com', ssl=True)
imapObj.login('meine@mail.com', 'Kennwort')
#Verzeichniss
Folder = imapObj.select_folder('Inbox', readonly=True)
print(Folder)
#Mails selektieren
Mailadresse = ['no-reply@nebenan.de', 'news@biker-boarder.de', 'hallo@my.zalando-lounge.de', "\
"'noreply@email.ticketmaster.de', 'otto-newsletter@newsletter.otto.de', "\
"'noreply@news.eu.dcshoes.com', 'info.eu@stance.com', 'DeineMeinung@feedback.saturn.eu', "\
"'notification@komoot.de']
UIDS =()
Counter = 0
Mails_DEL_STAT = 0
#Loop um jede angegebene Mailadresse zu selektieren
for i in Mailadresse:
imapObj.select_folder('INBOX', readonly=False)
UIDS= imapObj.search(['SINCE', (dat_since), 'BEFORE', (dat_till), 'FROM', (Mailadresse[Counter])])
Counter = Counter + 1
print(UIDS)
count = 0
for i in UIDS:
#rawMessages = imapObj.fetch(UIDS,['BODY[]', 'FLAGS'])
#message = pyzmail.PyzMessage.factory(rawMessages[UIDS[count]][b'BODY[]'])
UID_DEL = str(UIDS[count])
count = count + 1
Mails_DEL_STAT = Mails_DEL_STAT + 1
#ab hier wird gelöscht
imapObj.delete_messages(UID_DEL)
imapObj.expunge()
Ich habe z.B. 5 Mails von notification@komoot.de vom 16.02. und diese würden ja in den Zeitraum Heute - 1 bis heute - 300 hinein fallen.
Diese werden aber nicht selektiert und habe keine Erklärung warum ...
Vielleicht kann jemand helfen.
VG
Tobi