From 2f2f7c74c5165eba51642ecf3c2e1959dd35a7e3 Mon Sep 17 00:00:00 2001 From: idrainformatica Date: Fri, 20 Mar 2026 09:42:37 +0100 Subject: [PATCH] v1 --- worker/app/imap/connection.py | 5 +++-- worker/app/imap/sync.py | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/worker/app/imap/connection.py b/worker/app/imap/connection.py index 6720ee9..b167d70 100644 --- a/worker/app/imap/connection.py +++ b/worker/app/imap/connection.py @@ -263,7 +263,8 @@ class IMAPConnection: server_push = [] # Termina IDLE - await client.idle_done() + # Nota: in aioimaplib >= 2.0.0 idle_done() e' sincrona (non coroutine) + client.idle_done() # Controlla se ci sono nuovi messaggi (EXISTS) has_new = any( @@ -300,7 +301,7 @@ class IMAPConnection: except asyncio.CancelledError: try: - await client.idle_done() + client.idle_done() except Exception: pass return diff --git a/worker/app/imap/sync.py b/worker/app/imap/sync.py index 0ad9b8b..ca21e12 100644 --- a/worker/app/imap/sync.py +++ b/worker/app/imap/sync.py @@ -44,14 +44,18 @@ logger = logging.getLogger(__name__) settings = get_settings() # Nomi comuni della cartella Sent nei provider PEC italiani (in ordine di priorità) +# Aruba PEC usa INBOX.Inviata (\Sent), altri provider usano varianti diverse SENT_FOLDER_CANDIDATES = [ + "INBOX.Inviata", # Aruba PEC (verificato via LIST) + "INBOX.Sent", # Variante comune + "INBOX.Inviati", # Variante italiana + "INBOX.Sent Items", "Sent", "Sent Items", "Sent Messages", "Inviati", - "INBOX.Sent", - "INBOX.Inviati", - "INBOX.Sent Items", + "Posta inviata", + "INBOX.Posta inviata", ] @@ -200,8 +204,8 @@ async def sync_new_messages( return 0 seq_numbers = seq_numbers[: settings.imap_max_fetch_per_cycle] - logger.info( - f"[{mailbox.email_address}] Trovati {len(seq_numbers)} messaggi nuovi in INBOX" + logger.debug( + f"[{mailbox.email_address}] Candidati INBOX da verificare: {len(seq_numbers)} seq" ) synced_count = 0 @@ -229,6 +233,11 @@ async def sync_new_messages( exc_info=True, ) + if synced_count > 0: + logger.info( + f"[{mailbox.email_address}] Trovati {synced_count} messaggi nuovi in INBOX" + ) + # Aggiorna last_sync_uid e last_sync_at if max_uid_synced > last_uid: mailbox.last_sync_uid = max_uid_synced