mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
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") |