emails: don't alter email if TEMPLATE_VARS are not available (yet) (#51469)

This commit is contained in:
Frédéric Péters 2021-03-29 13:41:32 +02:00
parent 0be901c7a3
commit e4ef124480
1 changed files with 11 additions and 10 deletions

View File

@ -20,18 +20,19 @@ import django.core.mail.backends.smtp
class EmailBackend(django.core.mail.backends.smtp.EmailBackend):
def _send(self, email_message):
for var in ('email_unsubscribe_info_url', 'portal_url'):
if getattr(settings, 'TEMPLATE_VARS', None):
for var in ('email_unsubscribe_info_url', 'portal_url'):
try:
url = settings.TEMPLATE_VARS[var]
if url:
email_message.extra_headers['List-Unsubscribe'] = '<%s>' % url
break
except (KeyError, TypeError):
pass
try:
url = settings.TEMPLATE_VARS[var]
url = settings.TEMPLATE_VARS['email_abuse_report_url']
if url:
email_message.extra_headers['List-Unsubscribe'] = '<%s>' % url
break
email_message.extra_headers['X-Report-Abuse'] = 'Please report abuse for this email here: %s' % url
except (KeyError, TypeError):
pass
try:
url = settings.TEMPLATE_VARS['email_abuse_report_url']
if url:
email_message.extra_headers['X-Report-Abuse'] = 'Please report abuse for this email here: %s' % url
except (KeyError, TypeError):
pass
return super()._send(email_message)