import httpx from app.core.config import get_settings class PostalSendError(Exception): pass def send_mail( *, to: str, from_name: str, from_email: str, subject: str, html_body: str, tag: str, ) -> tuple[int, str]: """Sender én e-mail via Postal. Returnerer (postal_message_id, token). Rejser PostalSendError ved fejl.""" settings = get_settings() try: response = httpx.post( f"{settings.postal_base_url}/api/v1/send/message", headers={ "X-Server-API-Key": settings.postal_api_key, "Content-Type": "application/json", }, json={ "to": [to], "from": f"{from_name} <{from_email}>", "sender": from_email, "subject": subject, "html_body": html_body, "tag": tag, }, timeout=10.0, ) data = response.json() except httpx.HTTPError as exc: raise PostalSendError(str(exc)) from exc if data.get("status") != "success": raise PostalSendError(str(data.get("data", data))) message_info = data["data"]["messages"][to] return message_info["id"], message_info["token"]