diff --git a/app/modules/core/routes/api/admin_settings.py b/app/modules/core/routes/api/admin_settings.py index 0d7beb2e..0a57e799 100644 --- a/app/modules/core/routes/api/admin_settings.py +++ b/app/modules/core/routes/api/admin_settings.py @@ -656,10 +656,16 @@ def send_test_email( """ Send a test email using the platform email configuration. - This tests the email provider configuration from environment variables. + Reports the *effective* config — DB overrides if any, else .env. The + test email's body must match what actually got used to send it, + otherwise admins can't trust the page they're testing from. """ from app.modules.messaging.services.email_service import EmailService + effective = get_effective_email_config(db) + eff_provider = effective.get("provider", app_settings.email_provider) + eff_from = effective.get("from_email", app_settings.email_from_address) + try: email_service = EmailService(db) @@ -676,13 +682,13 @@ def send_test_email(

If you received this email, your email settings are working correctly!


- Provider: {app_settings.email_provider}
- From: {app_settings.email_from_address} + Provider: {eff_provider}
+ From: {eff_from}

""", - body_text=f"Test email from Orion platform.\n\nProvider: {app_settings.email_provider}\nFrom: {app_settings.email_from_address}", + body_text=f"Test email from Orion platform.\n\nProvider: {eff_provider}\nFrom: {eff_from}", is_platform_email=True, ) @@ -695,7 +701,7 @@ def send_test_email( action="send_test_email", target_type="email", target_id=request.to_email, - details={"provider": app_settings.email_provider}, + details={"provider": eff_provider}, ) db.commit() diff --git a/app/modules/messaging/services/email_service.py b/app/modules/messaging/services/email_service.py index 91f1d586..d4565ffd 100644 --- a/app/modules/messaging/services/email_service.py +++ b/app/modules/messaging/services/email_service.py @@ -1317,16 +1317,18 @@ class EmailService: if not resolved: logger.error(f"Email template not found: {template_code} ({resolved_language})") # Create failed log entry + # Use the *effective* config so the audit row reflects what the + # admin actually configured (DB overrides win over .env). log = EmailLog( template_code=template_code, recipient_email=to_email, recipient_name=to_name, subject=f"[Template not found: {template_code}]", - from_email=settings.email_from_address, - from_name=settings.email_from_name, + from_email=self._platform_config.get("from_email", settings.email_from_address), + from_name=self._platform_config.get("from_name", settings.email_from_name), status=EmailStatus.FAILED.value, error_message=f"Template not found: {template_code} ({resolved_language})", - provider=settings.email_provider, + provider=self._platform_config.get("provider", settings.email_provider), store_id=store_id, user_id=user_id, related_type=related_type,