Show SITE_NAME as the email From display name.
Bare DEFAULT_FROM_EMAIL addresses were rendering as "noreply" in inboxes; wrap them as "Monica Dhillon" <address>.
This commit is contained in:
@@ -26,10 +26,17 @@ RECAPTCHA_PRIVATE_KEY=
|
|||||||
# SMTP2GO — fill in `.env` (not this file). Dev defaults to console backend
|
# SMTP2GO — fill in `.env` (not this file). Dev defaults to console backend
|
||||||
# until you set EMAIL_BACKEND to the SMTP backend below.
|
# until you set EMAIL_BACKEND to the SMTP backend below.
|
||||||
EMAIL_HOST=mail.smtp2go.com
|
EMAIL_HOST=mail.smtp2go.com
|
||||||
|
# SMTP login (not shown to recipients)
|
||||||
EMAIL_HOST_USER=
|
EMAIL_HOST_USER=
|
||||||
EMAIL_HOST_PASSWORD=
|
EMAIL_HOST_PASSWORD=
|
||||||
EMAIL_PORT=2525
|
EMAIL_PORT=2525
|
||||||
EMAIL_USE_TLS=true
|
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>
|
||||||
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
|
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
|
||||||
# Console (default in DJANGO_ENV=dev) prints mail to container logs.
|
# Console (default in DJANGO_ENV=dev) prints mail to container logs.
|
||||||
# For real SMTP2GO delivery locally, uncomment:
|
# For real SMTP2GO delivery locally, uncomment:
|
||||||
|
|||||||
+4
-1
@@ -24,6 +24,9 @@ SITE_UNDER_CONSTRUCTION=true
|
|||||||
SITE_NAME=Monica Dhillon
|
SITE_NAME=Monica Dhillon
|
||||||
SITE_TAGLINE=MKDRealtor.com · EXIT Realty Redefined
|
SITE_TAGLINE=MKDRealtor.com · EXIT Realty Redefined
|
||||||
PUBLIC_SITE_URL=https://mkdrealtor.com
|
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>
|
||||||
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
|
DEFAULT_FROM_EMAIL=noreply@mkdrealtor.com
|
||||||
CONTACT_PHONE=
|
CONTACT_PHONE=
|
||||||
CONTACT_EMAIL=
|
CONTACT_EMAIL=
|
||||||
@@ -41,7 +44,7 @@ WEB_PORT=8004
|
|||||||
RECAPTCHA_PUBLIC_KEY=replace-me
|
RECAPTCHA_PUBLIC_KEY=replace-me
|
||||||
RECAPTCHA_PRIVATE_KEY=replace-me
|
RECAPTCHA_PRIVATE_KEY=replace-me
|
||||||
|
|
||||||
# SMTP2GO email
|
# SMTP2GO email — HOST_USER is SMTP auth only; From uses DEFAULT_FROM_EMAIL
|
||||||
EMAIL_HOST=mail.smtp2go.com
|
EMAIL_HOST=mail.smtp2go.com
|
||||||
EMAIL_HOST_USER=replace-me
|
EMAIL_HOST_USER=replace-me
|
||||||
EMAIL_HOST_PASSWORD=replace-me
|
EMAIL_HOST_PASSWORD=replace-me
|
||||||
|
|||||||
@@ -208,13 +208,37 @@ SITE_UNDER_CONSTRUCTION = env_bool("SITE_UNDER_CONSTRUCTION", False)
|
|||||||
SITE_NAME = env("SITE_NAME", "Monica Dhillon")
|
SITE_NAME = env("SITE_NAME", "Monica Dhillon")
|
||||||
SITE_TAGLINE = env("SITE_TAGLINE", "MKDRealtor.com · EXIT Realty Redefined")
|
SITE_TAGLINE = env("SITE_TAGLINE", "MKDRealtor.com · EXIT Realty Redefined")
|
||||||
PUBLIC_SITE_URL = env("PUBLIC_SITE_URL", "")
|
PUBLIC_SITE_URL = env("PUBLIC_SITE_URL", "")
|
||||||
DEFAULT_FROM_EMAIL = env("DEFAULT_FROM_EMAIL", "noreply@mkdrealtor.com")
|
|
||||||
CONTACT_PHONE = env("CONTACT_PHONE", "(555) 123-4567")
|
CONTACT_PHONE = env("CONTACT_PHONE", "(555) 123-4567")
|
||||||
CONTACT_EMAIL = env("CONTACT_EMAIL", "monica@example.com")
|
CONTACT_EMAIL = env("CONTACT_EMAIL", "monica@example.com")
|
||||||
CONTACT_SERVICE_AREA = env("CONTACT_SERVICE_AREA", "Serving Greater Metro Area")
|
CONTACT_SERVICE_AREA = env("CONTACT_SERVICE_AREA", "Serving Greater Metro Area")
|
||||||
CREDIT_NAME = env("CREDIT_NAME", "AI ML Operations, LLC")
|
CREDIT_NAME = env("CREDIT_NAME", "AI ML Operations, LLC")
|
||||||
CREDIT_URL = env("CREDIT_URL", "https://aimloperations.com")
|
CREDIT_URL = env("CREDIT_URL", "https://aimloperations.com")
|
||||||
|
|
||||||
|
|
||||||
|
def format_from_email(address: str | None, display_name: str | None = None) -> str:
|
||||||
|
"""
|
||||||
|
Ensure From header includes a display name for inbox UIs.
|
||||||
|
|
||||||
|
Bare ``noreply@…`` shows as "noreply". Prefer
|
||||||
|
``"Monica Dhillon" <noreply@…>`` (RFC 5322).
|
||||||
|
"""
|
||||||
|
raw = (address or "").strip()
|
||||||
|
if not raw:
|
||||||
|
return ""
|
||||||
|
if "<" in raw and ">" in raw:
|
||||||
|
return raw
|
||||||
|
name = (display_name or SITE_NAME or "").strip()
|
||||||
|
if not name:
|
||||||
|
return raw
|
||||||
|
safe = name.replace("\\", "\\\\").replace('"', '\\"')
|
||||||
|
return f'"{safe}" <{raw}>'
|
||||||
|
|
||||||
|
|
||||||
|
# Inbox "From" — not the same as EMAIL_HOST_USER (SMTP login).
|
||||||
|
DEFAULT_FROM_EMAIL = format_from_email(
|
||||||
|
env("DEFAULT_FROM_EMAIL", "noreply@mkdrealtor.com")
|
||||||
|
)
|
||||||
|
|
||||||
# --- reCAPTCHA v3 ---
|
# --- reCAPTCHA v3 ---
|
||||||
RECAPTCHA_PUBLIC_KEY = env("RECAPTCHA_PUBLIC_KEY", "")
|
RECAPTCHA_PUBLIC_KEY = env("RECAPTCHA_PUBLIC_KEY", "")
|
||||||
RECAPTCHA_PRIVATE_KEY = env("RECAPTCHA_PRIVATE_KEY", "")
|
RECAPTCHA_PRIVATE_KEY = env("RECAPTCHA_PRIVATE_KEY", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user