adjust mail workflow, execute mail actions only after consumption is successful
This commit is contained in:
@@ -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}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user