handle case when non reverse-alias is present in the reply phase

This commit is contained in:
Son 2022-01-07 17:53:06 +01:00
parent d4e31257fa
commit d8627fea97
2 changed files with 34 additions and 4 deletions

View File

@ -394,7 +394,7 @@ def replace_header_when_reply(msg: Message, alias: Alias, header: str):
header,
headers,
)
raise NonReverseAliasInReplyPhase
raise NonReverseAliasInReplyPhase(reply_email)
# still keep this email in header
# new_addrs.append(reply_email)
else:
@ -582,7 +582,7 @@ def handle_forward(envelope, msg: Message, rcpt_to: str) -> List[Tuple[bool, str
reply_to_contact = None
if msg[headers.REPLY_TO]:
reply_to = get_header_unicode(msg[headers.REPLY_TO])
LOG.d("Create or get contact for from_header:%s", reply_to)
LOG.d("Create or get contact for reply_to_header:%s", reply_to)
# ignore when reply-to = alias
if reply_to == alias.email:
LOG.i("Reply-to same as alias %s", alias)
@ -1078,8 +1078,23 @@ def handle_reply(envelope, msg: Message, rcpt_to: str) -> (bool, str):
LOG.d("From header is %s", from_header)
add_or_replace_header(msg, headers.FROM, from_header)
replace_header_when_reply(msg, alias, headers.TO)
replace_header_when_reply(msg, alias, headers.CC)
try:
replace_header_when_reply(msg, alias, headers.TO)
replace_header_when_reply(msg, alias, headers.CC)
except NonReverseAliasInReplyPhase as e:
LOG.w("non reverse-alias in reply %s %s %s", e, contact, alias)
send_email(
mailbox.email,
f"Email sent to {contact.email} contains non reverse-alias addresses",
render(
"transactional/non-reverse-alias-reply-phase.txt.jinja2",
destination=contact.email,
alias=alias.email,
subject=msg[headers.SUBJECT],
),
)
# user is informed and will retry
return True, status.E200
replace_original_message_id(alias, email_log, msg)

View File

@ -0,0 +1,15 @@
Hi
Your email sent to {{ destination }} from {{ alias }} ({{ subject }}) contains an address which isn't a reverse-alias in the To: or Cc: field.
This will reveal your real mailbox address.
Please create a reverse alias for each recipient to make sure your mailbox stays hidden.
More info about reverse-alias can be found on https://simplelogin.io/docs/getting-started/reverse-alias/
and how to send an email from your alias on https://simplelogin.io/docs/getting-started/send-email/
Please let us know if you have any question.
Best,
SimpleLogin team.