mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
chore: Synchronisation IMAP
This commit is contained in:
33
Back-End/N3wtSchool/tasks.py
Normal file
33
Back-End/N3wtSchool/tasks.py
Normal file
@ -0,0 +1,33 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user