adjust mail workflow, execute mail actions only after consumption is successful

This commit is contained in:
Jonas
2023-02-16 22:51:46 +01:00
parent dfd1ea9f86
commit 9112f03fc4
2 changed files with 64 additions and 42 deletions

View File

@@ -1,6 +1,8 @@
import logging
from celery import shared_task
from imap_tools import MailBox
from paperless_mail.mail import BaseMailAction
from paperless_mail.mail import MailAccountHandler
from paperless_mail.mail import MailError
from paperless_mail.models import MailAccount
@@ -8,12 +10,23 @@ from paperless_mail.models import MailAccount
logger = logging.getLogger("paperless.mail.tasks")
@shared_task
def apply_mail_action(
result: str,
M: MailBox,
action: BaseMailAction,
message_uid: str,
parameter: str,
):
action.post_consume(M, message_uid, parameter)
@shared_task
def process_mail_accounts():
total_new_documents = 0
for account in MailAccount.objects.all():
try:
total_new_documents += MailAccountHandler().handle_mail_account(account)
total_new_documents += MailAccountHandler().handl2e_mail_account(account)
except MailError:
logger.exception(f"Error while processing mail account {account}")