54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
# -*- coding: utf8 -*-
|
|
#
|
|
# Compter les emails BEFORE DATE et les supprimer
|
|
#
|
|
|
|
from pprint import pprint
|
|
import datetime
|
|
import imaplib
|
|
|
|
# connecter au serveur IMAP
|
|
# Gmail avec authentification à deux facteurs (2FA),
|
|
# demander un mot de passe spécifique du compte Gmail
|
|
conn = imaplib.IMAP4_SSL('imap.gmail.com')
|
|
conn.login('ctphuoc@gmail.com', 'ztwciswzhxxogcfv')
|
|
|
|
# lister les dossiers
|
|
typ, data = conn.list()
|
|
print('Liste des dossiers :')
|
|
pprint(data)
|
|
|
|
# supprimer les mails au-dela de 14 ans
|
|
before_date = (datetime.date.today() - datetime.timedelta(365.25 * 13)).strftime("%d-%b-%Y")
|
|
print("Supprimer les emails avant " + before_date)
|
|
|
|
# select ALL
|
|
conn.select('INBOX')
|
|
|
|
rv, data = conn.search(None, '(BEFORE {0})'.format(before_date))
|
|
nb_mails = str(len(data[0]))
|
|
print(nb_mails + " emails trouvés")
|
|
|
|
resp = input ("Entrer 'c' pour continuer, or 'a' to annuler : ")
|
|
if resp=="c":
|
|
print("Déplacer " + nb_mails + " emails à la Corbeille")
|
|
messages = data[0].split(b' ')
|
|
for mail in messages:
|
|
# move to trash
|
|
conn.store(mail, '+X-GM-LABELS', '\\Trash')
|
|
|
|
#This block empties trash, remove if you want to keep, Gmail auto purges trash after 30 days.
|
|
print("Vider la Corbeille & Expurger...")
|
|
conn.select('[Gmail]/Corbeille')
|
|
conn.store("1:*", '+FLAGS', '\\Deleted')
|
|
# supprimer tous les messages selectionnés
|
|
conn.expunge()
|
|
print("Script terminé")
|
|
else:
|
|
print("Script annulé")
|
|
|
|
# deconnexion du serveur
|
|
conn.close()
|
|
conn.logout()
|
|
|