Document compose-safe DEFAULT_FROM_EMAIL quoting.
Deploy Beta / unit-tests (push) Successful in 8s
Deploy Beta / docker (push) Successful in 14s
Deploy Beta / deploy-beta (push) Successful in 1m39s

Docker Compose .env rejects "Name" <addr>; prefer a bare address or one pair of quotes around the whole From value.
This commit is contained in:
2026-08-09 07:23:47 -05:00
parent 5b53ef376d
commit d3db6eed76
3 changed files with 18 additions and 9 deletions
+6 -6
View File
@@ -31,12 +31,12 @@ EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
EMAIL_PORT=2525
EMAIL_USE_TLS=true
# Inbox From header. Bare address → local-part shows as name ("noreply").
# Prefer quoted display name (SITE_NAME is auto-wrapped if you omit it):
# DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
# → "Monica Dhillon" <noreply@mkdrealtor.com>
# Or set explicitly (must be allowed/verified in SMTP2GO):
# DEFAULT_FROM_EMAIL="Monica Dhillon" <notifications-beta@mkdrealtor.com>
# Inbox From header. Docker Compose .env cannot parse: "Name" <addr>
# (the <addr> breaks the parser). Use ONE of:
# DEFAULT_FROM_EMAIL=notifications-beta@mkdrealtor.com
# → app wraps with SITE_NAME → "Monica Dhillon" <notifications-beta@…>
# DEFAULT_FROM_EMAIL="Monica Dhillon <notifications-beta@mkdrealtor.com>"
# → whole value in one pair of quotes (compose-safe)
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
# Console (default in DJANGO_ENV=dev) prints mail to container logs.
# For real SMTP2GO delivery locally, uncomment:
+4 -3
View File
@@ -24,9 +24,10 @@ SITE_UNDER_CONSTRUCTION=true
SITE_NAME=Monica Dhillon
SITE_TAGLINE=MKDRealtor.com · EXIT Realty Redefined
PUBLIC_SITE_URL=https://mkdrealtor.com
# Inbox From (display name auto-added from SITE_NAME if omitted).
# SMTP2GO must allow sending as this address. Example:
# DEFAULT_FROM_EMAIL="Monica Dhillon" <notifications-beta@mkdrealtor.com>
# Inbox From. Docker Compose .env: do NOT use "Name" <addr> (breaks parse).
# Prefer bare address (SITE_NAME auto-wrapped) OR one quoted string:
# DEFAULT_FROM_EMAIL=notifications-beta@mkdrealtor.com
# DEFAULT_FROM_EMAIL="Monica Dhillon <notifications-beta@mkdrealtor.com>"
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
CONTACT_PHONE=
CONTACT_EMAIL=
+8
View File
@@ -221,10 +221,18 @@ def format_from_email(address: str | None, display_name: str | None = None) -> s
Bare ``noreply@…`` shows as "noreply". Prefer
``"Monica Dhillon" <noreply@…>`` (RFC 5322).
Docker Compose ``.env`` cannot parse split quotes like
``"Name" <addr>`` — use a bare address (this helper adds SITE_NAME)
or one pair of quotes around the whole value:
``DEFAULT_FROM_EMAIL="Monica Dhillon <addr@domain>"``.
"""
raw = (address or "").strip()
if not raw:
return ""
# Strip a single layer of wrapping quotes from env/compose.
if len(raw) >= 2 and raw[0] == raw[-1] and raw[0] in {'"', "'"}:
raw = raw[1:-1].strip()
if "<" in raw and ">" in raw:
return raw
name = (display_name or SITE_NAME or "").strip()