""" BAN YARO — Öffentliches Kontaktformular (kein Login erforderlich) Für Impressum-Kontaktpflicht nach § 5 DDG. """ from fastapi import APIRouter, Request from pydantic import BaseModel, EmailStr, Field from typing import Annotated from mailer import send_email, email_html from ratelimit import check as rl_check router = APIRouter() CONTACT_MAIL = "hallo@banyaro.app" class ContactIn(BaseModel): name: Annotated[str, Field(min_length=2, max_length=100)] email: EmailStr subject: Annotated[str, Field(min_length=3, max_length=150)] message: Annotated[str, Field(min_length=10, max_length=3000)] @router.post("") async def submit_contact(payload: ContactIn, request: Request): rl_check(request, max_requests=3, window_seconds=3600, key=f"contact_{payload.email}") body = f"""
Neue Kontaktanfrage über das Impressum-Formular:
| Name | {payload.name} |
| {payload.email} | |
| Betreff | {payload.subject} |