Process 1 build 0703261729
This commit is contained in:
@@ -1165,6 +1165,38 @@ async def send_templated_email(
|
||||
}
|
||||
|
||||
|
||||
async def send_generic_email(
|
||||
*,
|
||||
recipient_email: str,
|
||||
subject: str,
|
||||
body_text: str,
|
||||
body_html: str = "",
|
||||
) -> Dict[str, str]:
|
||||
ready, detail = smtp_email_config_ready()
|
||||
if not ready:
|
||||
raise RuntimeError(detail)
|
||||
resolved_email = _normalize_email(recipient_email)
|
||||
if not resolved_email:
|
||||
raise RuntimeError("A valid recipient email is required.")
|
||||
receipt = await asyncio.to_thread(
|
||||
_send_email_sync,
|
||||
recipient_email=resolved_email,
|
||||
subject=subject.strip() or f"{env_settings.app_name} notification",
|
||||
body_text=body_text.strip(),
|
||||
body_html=body_html.strip(),
|
||||
)
|
||||
logger.info("Generic email sent recipient=%s subject=%s", resolved_email, subject)
|
||||
return {
|
||||
"recipient_email": resolved_email,
|
||||
"subject": subject.strip() or f"{env_settings.app_name} notification",
|
||||
**{
|
||||
key: value
|
||||
for key, value in receipt.items()
|
||||
if key in {"provider_message_id", "provider_internal_id", "data_response"}
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
async def send_test_email(recipient_email: Optional[str] = None) -> Dict[str, str]:
|
||||
ready, detail = smtp_email_config_ready()
|
||||
if not ready:
|
||||
|
||||
Reference in New Issue
Block a user