diff --git a/backend-compliance/compliance/api/agent_compliance_check_routes.py b/backend-compliance/compliance/api/agent_compliance_check_routes.py index 3976b46d..8efdf3d6 100644 --- a/backend-compliance/compliance/api/agent_compliance_check_routes.py +++ b/backend-compliance/compliance/api/agent_compliance_check_routes.py @@ -325,11 +325,16 @@ async def _run_compliance_check(check_id: str, req: ComplianceCheckRequest): profile_html = _build_profile_html(profile) full_html = summary_html + profile_html + report_html - # Step 6: Send email + # Step 6: Send email — include website/company name in subject doc_count = len([r for r in results if not r.error]) + site_name = ( + extracted_profile.get("company_profile", {}).get("companyName") + or _extract_domain(doc_entries) + or "Unbekannt" + ) email_result = send_email( recipient=req.recipient, - subject=f"[COMPLIANCE-CHECK] {doc_count} Dokumente geprueft", + subject=f"[COMPLIANCE-CHECK] {site_name} — {doc_count} Dokumente geprueft", body_html=full_html, ) @@ -457,6 +462,17 @@ async def _check_single( ) +def _extract_domain(doc_entries: list[dict]) -> str | None: + """Extract domain name from first URL for email subject.""" + for entry in doc_entries: + url = entry.get("url", "") + if url and "://" in url: + from urllib.parse import urlparse + host = urlparse(url).netloc + return host.replace("www.", "") if host else None + return None + + def _get_skip_types(profile) -> dict[str, str]: """Doc_types to skip entirely. Currently empty — we check everything and flag irrelevant items as INFO instead of skipping."""