add more logging

This commit is contained in:
Son 2022-01-07 14:26:58 +01:00
parent 40b6fde2c3
commit bf75f8e8ab
1 changed files with 9 additions and 6 deletions

View File

@ -2024,7 +2024,7 @@ def should_ignore(mail_from: str, rcpt_tos: List[str]) -> bool:
return False
def handle(envelope: Envelope) -> str:
def handle(envelope: Envelope, msg: Message) -> str:
"""Return SMTP status"""
# sanitize mail_from, rcpt_tos
@ -2033,7 +2033,6 @@ def handle(envelope: Envelope) -> str:
envelope.mail_from = mail_from
envelope.rcpt_tos = rcpt_tos
msg = email.message_from_bytes(envelope.original_content)
postfix_queue_id = get_queue_id(msg)
if postfix_queue_id:
set_message_id(postfix_queue_id)
@ -2347,18 +2346,22 @@ def handle_out_of_office_forward_phase(email_log, envelope, msg, rcpt_tos):
class MailHandler:
async def handle_DATA(self, server, session, envelope: Envelope):
try:
ret = self._handle(envelope)
msg = email.message_from_bytes(envelope.original_content)
ret = self._handle(envelope, msg)
return ret
except Exception:
LOG.e(
"email handling fail %s -> %s",
"email handling fail mail_from:%s, rcpt_tos:%s, header_from:%s, header_to:%s, saved to %s",
envelope.mail_from,
envelope.rcpt_tos,
msg[headers.FROM],
msg[headers.TO],
save_email_for_debugging(msg), # todo: remove
)
return status.E404
@newrelic.agent.background_task()
def _handle(self, envelope: Envelope):
def _handle(self, envelope: Envelope, msg: Message):
start = time.time()
# generate a different message_id to keep track of an email lifecycle
@ -2373,7 +2376,7 @@ class MailHandler:
)
with create_light_app().app_context():
ret = handle(envelope)
ret = handle(envelope, msg)
elapsed = time.time() - start
# use error log if taking more than 1 minute