make sure reply-email only uses ascii-encoded char

This commit is contained in:
Son NK 2020-11-18 15:36:39 +01:00
parent ed22701cbe
commit 75c3fa1c11
2 changed files with 9 additions and 1 deletions

View File

@ -39,7 +39,7 @@ from app.dns_utils import get_mx_domains
from app.extensions import db
from app.log import LOG
from app.models import Mailbox, User, SentAlert, CustomDomain, SLDomain, Contact
from app.utils import random_string
from app.utils import random_string, convert_to_id
def render(template_name, **kwargs) -> str:
@ -739,6 +739,11 @@ def generate_reply_email(contact_email: str) -> str:
# control char: 4 chars (ra+, +)
# random suffix: max 10 chars
# maximum: 64
# make sure contact_email can be ascii-encoded
contact_email = convert_to_id(contact_email)
# remove potential space
contact_email = contact_email.replace(" ", "")
contact_email = contact_email[:45]
contact_email = contact_email.replace("@", ".at.")

View File

@ -403,6 +403,9 @@ def test_generate_reply_email(flask_client):
assert reply_email.startswith("ra+")
assert reply_email.endswith(EMAIL_DOMAIN)
reply_email = generate_reply_email("👌汉字@example.org")
assert reply_email.startswith("ra+YiZi.at.example.org+")
def test_get_addrs_from_header():
msg = email.message_from_string("""To: abcd@test.org""")