From 7f49312255e6b3dd15984b49f6215b0a3d4ff3d2 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sat, 28 Mar 2020 22:37:00 +0100 Subject: [PATCH] use user preferred sender format --- app/email_utils.py | 12 +++++++++--- email_handler.py | 6 ++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/email_utils.py b/app/email_utils.py index 7f2403e1..aec4de69 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -365,16 +365,22 @@ def get_orig_message_from_bounce(msg: Message) -> Message: return part -def new_addr(old_addr, new_email) -> str: +def new_addr(old_addr, new_email, user: User) -> str: """replace First Last by first@example.com by SimpleLogin `new_email` is a special reply address """ name, old_email = parseaddr(old_addr) - new_name = f"{old_email} via SimpleLogin" - new_addr = formataddr((new_name, new_email)).strip() + if user.use_via_format_for_sender: + new_name = f"{old_email} via SimpleLogin" + else: + name = name or "" + new_name = ( + name + (" - " if name else "") + old_email.replace("@", " at ") + ).strip() + new_addr = formataddr((new_name, new_email)).strip() return new_addr.strip() diff --git a/email_handler.py b/email_handler.py index 0c739661..aa0b3dea 100644 --- a/email_handler.py +++ b/email_handler.py @@ -290,7 +290,9 @@ def replace_header_when_forward(msg: Message, alias: Alias, header: str): ) db.session.commit() - new_addrs.append(new_addr(contact.website_from, contact.reply_email)) + new_addrs.append( + new_addr(contact.website_from, contact.reply_email, alias.user) + ) need_replace = True if need_replace: @@ -438,7 +440,7 @@ def handle_forward(envelope, smtp: SMTP, msg: Message, rcpt_to: str) -> (bool, s # replace the email part in from: header contact_from_header = msg["From"] contact_name, contact_email = parseaddr(contact_from_header) - new_from_header = new_addr(contact_from_header, contact.reply_email) + new_from_header = new_addr(contact_from_header, contact.reply_email, user) add_or_replace_header(msg, "From", new_from_header) LOG.d("new_from_header:%s, old header %s", new_from_header, contact_from_header)