diff --git a/app/email_utils.py b/app/email_utils.py index 91f25399..e40a5e14 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -299,6 +299,7 @@ def send_email( from_name = from_name or NOREPLY from_addr = from_addr or NOREPLY + from_domain = get_email_domain_part(from_addr) if html: msg = MIMEMultipart("alternative") @@ -337,7 +338,7 @@ def send_email( # use a different envelope sender for each transactional email (aka VERP) sl_sendmail( - generate_verp_email(VerpType.transactional, transaction.id), + generate_verp_email(VerpType.transactional, transaction.id, from_domain), to_email, msg, retries=retries, diff --git a/app/jobs/export_user_data_job.py b/app/jobs/export_user_data_job.py index b21928d4..831f840d 100644 --- a/app/jobs/export_user_data_job.py +++ b/app/jobs/export_user_data_job.py @@ -14,7 +14,12 @@ import sqlalchemy from app import config from app.db import Session from app.email import headers -from app.email_utils import generate_verp_email, render, add_dkim_signature +from app.email_utils import ( + generate_verp_email, + render, + add_dkim_signature, + get_email_domain_part, +) from app.mail_sender import sl_sendmail from app.models import ( Alias, @@ -147,7 +152,11 @@ class ExportUserDataJob: transaction = TransactionalEmail.create(email=to_email, commit=True) sl_sendmail( - generate_verp_email(VerpType.transactional, transaction.id), + generate_verp_email( + VerpType.transactional, + transaction.id, + get_email_domain_part(config.NOREPLY), + ), to_email, msg, ignore_smtp_error=False, diff --git a/app/mail_sender.py b/app/mail_sender.py index c861a7d4..faf3e1f9 100644 --- a/app/mail_sender.py +++ b/app/mail_sender.py @@ -6,8 +6,8 @@ import os import time import uuid from concurrent.futures import ThreadPoolExecutor +from email.message import Message from functools import wraps -from mailbox import Message from smtplib import SMTP, SMTPException from typing import Optional, Dict, List, Callable diff --git a/email_handler.py b/email_handler.py index bd1507a7..689dd566 100644 --- a/email_handler.py +++ b/email_handler.py @@ -1315,7 +1315,7 @@ Email sent on behalf of alias {alias.email} using mailbox {mailbox.email}""", # this notif is considered transactional email transaction = TransactionalEmail.create(email=other_mb.email, commit=True) sl_sendmail( - generate_verp_email(VerpType.transactional, transaction.id), + generate_verp_email(VerpType.transactional, transaction.id, alias_domain), other_mb.email, notif, )