mirror of
https://github.com/simple-login/app.git
synced 2024-09-27 20:31:30 +02:00
try to fix Message.as_bytes() by trying different policies
This commit is contained in:
parent
01afb7557c
commit
dc8c2f403e
@ -528,3 +528,16 @@ def parseaddr_unicode(addr) -> (str, str):
|
|||||||
def copy(msg: Message) -> Message:
|
def copy(msg: Message) -> Message:
|
||||||
"""return a copy of message"""
|
"""return a copy of message"""
|
||||||
return email.message_from_bytes(msg.as_bytes())
|
return email.message_from_bytes(msg.as_bytes())
|
||||||
|
|
||||||
|
|
||||||
|
def to_bytes(msg: Message):
|
||||||
|
"""replace Message.as_bytes() method by trying different policies"""
|
||||||
|
try:
|
||||||
|
return msg.as_bytes()
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
LOG.warning("as_bytes fails with default policy, try SMTP policy")
|
||||||
|
try:
|
||||||
|
return msg.as_bytes(policy=email.policy.SMTP)
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
LOG.warning("as_bytes fails with SMTP policy, try SMTPUTF8 policy")
|
||||||
|
return msg.as_bytes(policy=email.policy.SMTPUTF8)
|
||||||
|
@ -88,7 +88,7 @@ from app.email_utils import (
|
|||||||
parseaddr_unicode,
|
parseaddr_unicode,
|
||||||
send_email_with_rate_control,
|
send_email_with_rate_control,
|
||||||
get_email_domain_part,
|
get_email_domain_part,
|
||||||
copy,
|
copy, to_bytes,
|
||||||
)
|
)
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
from app.greylisting import greylisting_needed
|
from app.greylisting import greylisting_needed
|
||||||
@ -1244,7 +1244,7 @@ async def handle(envelope: Envelope, smtp: SMTP) -> str:
|
|||||||
|
|
||||||
|
|
||||||
async def get_spam_score(message: Message) -> float:
|
async def get_spam_score(message: Message) -> float:
|
||||||
sa_input = message.as_bytes()
|
sa_input = to_bytes(message)
|
||||||
|
|
||||||
# Spamassassin requires to have an ending linebreak
|
# Spamassassin requires to have an ending linebreak
|
||||||
if not sa_input.endswith(b"\n"):
|
if not sa_input.endswith(b"\n"):
|
||||||
|
Loading…
Reference in New Issue
Block a user