Add log messages for mail errors (#727)

* adapt to starttls interface change in imap_tools
pin imap-tools version to avoid breaking changes
improve mail log

* fix unittest

* remove uneeded print and fix merge fail

* bump to next version
This commit is contained in:
phail 2022-05-03 00:54:51 +02:00 committed by GitHub
parent ec5d80585d
commit 0d298d743a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 45 deletions

View File

@ -19,7 +19,7 @@ djangorestframework = "~=3.13"
filelock = "*" filelock = "*"
fuzzywuzzy = {extras = ["speedup"], version = "*"} fuzzywuzzy = {extras = ["speedup"], version = "*"}
gunicorn = "*" gunicorn = "*"
imap-tools = "*" imap-tools = "~=0.54.0"
langdetect = "*" langdetect = "*"
pathvalidate = "*" pathvalidate = "*"
pillow = "~=9.1" pillow = "~=9.1"

View File

@ -156,7 +156,7 @@ class MailAccountHandler(LoggingMixin):
self.log("debug", f"Processing mail account {account}") self.log("debug", f"Processing mail account {account}")
total_processed_files = 0 total_processed_files = 0
try:
with get_mailbox( with get_mailbox(
account.imap_server, account.imap_server,
account.imap_port, account.imap_port,
@ -190,13 +190,20 @@ class MailAccountHandler(LoggingMixin):
"Unable to authenticate with mail server using AUTH=PLAIN", "Unable to authenticate with mail server using AUTH=PLAIN",
) )
raise MailError(f"Error while authenticating account {account}") raise MailError(f"Error while authenticating account {account}")
except Exception: except Exception as e:
self.log("error", "Unable to authenticate with mail server") self.log(
raise MailError(f"Error while authenticating account {account}") "error",
f"Error while authenticating account {account}: {e}",
exc_info=False,
)
raise MailError(
f"Error while authenticating account {account}",
) from e
self.log( self.log(
"debug", "debug",
f"Account {account}: Processing " f"{account.rules.count()} rule(s)", f"Account {account}: Processing "
f"{account.rules.count()} rule(s)",
) )
for rule in account.rules.order_by("order"): for rule in account.rules.order_by("order"):
@ -208,6 +215,14 @@ class MailAccountHandler(LoggingMixin):
f"Rule {rule}: Error while processing rule: {e}", f"Rule {rule}: Error while processing rule: {e}",
exc_info=True, exc_info=True,
) )
except MailError:
raise
except Exception as e:
self.log(
"error",
f"Error while retrieving mailbox {account}: {e}",
exc_info=False,
)
return total_processed_files return total_processed_files