Files
thrillwiki_django_no_react/backend/config/settings/email.py
pacnpal edcd8f2076 Add secret management guide, client-side performance monitoring, and search accessibility enhancements
- Introduced a comprehensive Secret Management Guide detailing best practices, secret classification, development setup, production management, rotation procedures, and emergency protocols.
- Implemented a client-side performance monitoring script to track various metrics including page load performance, paint metrics, layout shifts, and memory usage.
- Enhanced search accessibility with keyboard navigation support for search results, ensuring compliance with WCAG standards and improving user experience.
2025-12-23 16:41:42 -05:00

75 lines
3.0 KiB
Python

"""
Email configuration for thrillwiki project.
This module configures email backends and settings using python-decouple
for consistent environment variable management across the project.
Why python-decouple?
- Already used in base.py for consistency
- Simpler API than django-environ
- Sufficient for our configuration needs
- Better separation of config from code
"""
from decouple import config
# =============================================================================
# Email Backend Configuration
# =============================================================================
# Choose the appropriate email backend based on your environment:
# - Console: django.core.mail.backends.console.EmailBackend (development)
# - ForwardEmail: django_forwardemail.backends.ForwardEmailBackend (production)
# - SMTP: django.core.mail.backends.smtp.EmailBackend (custom SMTP)
EMAIL_BACKEND = config(
"EMAIL_BACKEND",
default="django_forwardemail.backends.ForwardEmailBackend"
)
# =============================================================================
# ForwardEmail Configuration
# =============================================================================
# ForwardEmail is a privacy-focused email service that supports custom domains
# https://forwardemail.net/
FORWARD_EMAIL_BASE_URL = config(
"FORWARD_EMAIL_BASE_URL",
default="https://api.forwardemail.net"
)
FORWARD_EMAIL_API_KEY = config("FORWARD_EMAIL_API_KEY", default="")
FORWARD_EMAIL_DOMAIN = config("FORWARD_EMAIL_DOMAIN", default="")
# Server email address for sending system emails
SERVER_EMAIL = config("SERVER_EMAIL", default="django_webmaster@thrillwiki.com")
# =============================================================================
# SMTP Configuration
# =============================================================================
# These settings are used when EMAIL_BACKEND is set to SMTP backend
# Configure via individual environment variables or EMAIL_URL
EMAIL_HOST = config("EMAIL_HOST", default="localhost")
EMAIL_PORT = config("EMAIL_PORT", default=587, cast=int)
EMAIL_USE_TLS = config("EMAIL_USE_TLS", default=True, cast=bool)
EMAIL_USE_SSL = config("EMAIL_USE_SSL", default=False, cast=bool)
EMAIL_HOST_USER = config("EMAIL_HOST_USER", default="")
EMAIL_HOST_PASSWORD = config("EMAIL_HOST_PASSWORD", default="")
# =============================================================================
# Email Timeout and Retry Settings
# =============================================================================
# Timeout for email operations in seconds
EMAIL_TIMEOUT = config("EMAIL_TIMEOUT", default=30, cast=int)
# Default from email address
DEFAULT_FROM_EMAIL = config(
"DEFAULT_FROM_EMAIL",
default="ThrillWiki <noreply@thrillwiki.com>"
)
# =============================================================================
# Email Subject Prefix
# =============================================================================
# Prefix added to the subject of emails sent by Django admin
EMAIL_SUBJECT_PREFIX = config("EMAIL_SUBJECT_PREFIX", default="[ThrillWiki] ")