from celery import shared_task from django_mailbox.models import Message, Mailbox from django_celery_beat.models import PeriodicTask import logging logger = logging.getLogger("django_mailbox") @shared_task def run_getmail(): """ Tâche périodique pour lancer l'import IMAP sur toutes les mailboxes actives et traiter les nouveaux messages interceptés selon des critères. """ logger.info("Début import IMAP") for mailbox in Mailbox.objects.filter(active=True): messages = mailbox.get_new_mail() try: for message in messages: logger.info(f"[IMAP] Tentative d'import : {message.subject} de {message.from_address}") # Filtrage sur le sujet et l'émetteur if ( message.subject == "n3wt" and message.from_address == "anthony.casini.30@gmail.com" ): logger.info(f"[IMAP] Message importé : {message.subject} de {message.from_address}") else: # Optionnel : supprimer le message importé qui ne correspond pas message.delete() except Exception as e: logger.error(f"Erreur lors de l'import des messages pour la mailbox {mailbox}: {e}", exc_info=True) logger.info("Fin import IMAP")