""" reset_folders.py — Utility: rimanda in Inbox le email da [Frank_Interni] e [Frank_Esterni] Usa dopo un test errato per ripristinare lo stato originale. Lancio: python\python.exe modules\outlook\reset_folders.py """ import sys import os sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) from modules.outlook.outlook_connector import OutlookConnector SEP = "-" * 60 def move_all_to_inbox(connector, folder_name): """Sposta tutte le email da folder_name → Inbox.""" inbox = connector.namespace.GetDefaultFolder(6) # Cerca la cartella target = None for f in inbox.Folders: if f.Name == folder_name: target = f break if target is None: print(f" Cartella '{folder_name}' non trovata — skip") return 0 count = target.Items.Count if count == 0: print(f" '{folder_name}' è già vuota") return 0 moved = 0 # Iteriamo a ritroso perché Move() modifica la collection items = list(target.Items) for item in items: try: item.Move(inbox) moved += 1 except Exception as e: print(f" ⚠️ Errore spostando item: {e}") return moved def main(): print(SEP) print(" Frank - Reset cartelle Outlook") print(SEP) connector = OutlookConnector() if not connector.connect(): print("✗ Connessione fallita.") sys.exit(1) print("OK Connesso") folders = ['[Frank_Interni]', '[Frank_Esterni]'] total = 0 for folder in folders: n = move_all_to_inbox(connector, folder) if n > 0: print(f" OK {n} email da '{folder}' -> Inbox") total += n print() print(f" Reset completato - {total} email rimesse in Inbox") print(SEP) if __name__ == '__main__': main()