Hallo zusammen,
ich habe im Internet folgendes Python Script gefunden: https://www.thepythoncode.com/article/deleting-emails-in-python
Das Funktioniert auch gebe ich in Zeile 36, z.B. 25-FEB_2021 werden alle alten E-Mails gelöscht, welche älter sind als dieses Datum
1 | status, messages = imap.search(None, 'BEFORE "25-FEB-2021"') |
nun würde ich das ganze gerne via Cronjob laufen lassen, daher müsste ich jetzt das Datum durch eine Variable ersetzten. Da stelle ich mich aber gerade etwas dämlich an, denke ich.
1 2 3 4 5 6 7 8 9 10 11 | from datetime import datetime, timedelta N_DAYS_AGO = 7 today = datetime.now() n_days_ago = today - timedelta(days=N_DAYS_AGO) n_days_ago = n_days_ago.strftime('%d-%b-%Y') n_days_ago = n_days_ago.upper() n_days_ago = str(n_days_ago) print(today.strftime('%d-%b-%Y'), n_days_ago) print(n_days_ago) |
Gibt mir schon mal
28-Feb-2021 21-FEB-2021 21-FEB-2021
zurück.
Wenn ich dies nun aber in die Zeile 36 packe:
1 | status, messages = imap.search(None, 'BEFORE "{n_days_ago}"') |
Bricht er mit der Fehlermeldung:
SEARCH command error: BAD [b'Error in IMAP command SEARCH: Invalid search date parameter (0.001 + 0.000 secs).']
ab.
Ok, er erkennt nicht was ich von ihm will, aber wie muss ich die Variable dort einfügen? Ich stehe glaube ich gerade auf dem Schlauch, kann mir jemand helfen?
Danke