Zwei Bausteine, die in jedem Kundenprojekt am Formular anfallen — bewusst ohne eigenen Mailversand:
Admin-Mail und Autoresponder kann Statamic 6 im Core (mehrere Mail-Konfigurationen je Formular,
mit to, from, reply_to, subject, eigenem Template und Dateianhängen).
- Empfänger je Auswahlfeld — „Bereich", „Betreff", „Abteilung": Redakteure pflegen die Zuordnung Auswahl → Adresse im Global Set, nicht der Entwickler im Code.
- Newsletter über Brevo mit Double-Opt-in — ein Häkchen im Formular genügt.
Löst das alte
kreatif/statamic-forms(max.^5.0) ab. Der Mailversand dort ist in Statamic 6 Core-Funktion geworden; übrig bleiben die beiden Punkte oben.
composer.json des Projekts:
"repositories": [
{ "type": "path", "url": "addons/kreatif/statamic-forms" }
],
"require": {
"kreatif/statamic-forms": "*"
}Config veröffentlichen (optional, das Addon bringt sinnvolle Vorgaben mit):
php artisan vendor:publish --tag=kreatif-forms-configGlobal Set form_recipients mit einem Grid recipients aus drei Spalten:
| Spalte | Typ | Bedeutung |
|---|---|---|
key |
text, nicht lokalisierbar | Wert im Auswahlfeld des Formulars |
label |
text, lokalisierbar | Beschriftung im Dropdown und im Betreff |
email |
text | Empfängeradresse |
Formular-Blueprint: ein Select mit Handle department (anpassbar über recipients.field),
dessen Optionen dieselben key-Werte tragen.
Mail-Konfiguration im CP: als Empfänger {{ recipient_email }} eintragen. Statamic parst die
Mail-Konfiguration mit Antlers über den Einsendungsdaten; der Listener setzt den Wert vorher auf
FormSubmitted, also noch vor dem Speichern und vor dem Versand.
Zusätzlich steht {{ recipient_email_label }} bereit — praktisch im Betreff: Anfrage {{ recipient_email_label }}.
Formulare ohne den Platzhalter fasst das Addon nicht an; deren fest eingetragene Adresse bleibt stehen.
Greift keine Zeile, gilt FORM_FALLBACK_EMAIL, sonst die erste Zeile des Grids.
Ein Feld newsletter (Toggle) im Formular-Blueprint genügt. Ist es angehakt, legt das Addon den Kontakt
über POST /contacts/doubleOptinConfirmation an: Brevo verschickt die Bestätigungsmail aus der
hinterlegten Vorlage und trägt den Kontakt erst nach dem Klick in die Liste ein. Wir speichern damit
keine unbestätigten Adressen und brauchen keinen eigenen Bestätigungs-Workflow.
BREVO_API_KEY=
BREVO_LIST_ID=
BREVO_DOI_TEMPLATE_ID=
BREVO_DOI_REDIRECT_URL="${APP_URL}/newsletter/bestaetigt"Fehlt eine der drei Pflichtangaben, wird die Anmeldung übersprungen und im Log vermerkt — das Formular funktioniert weiter, die Einsendung geht nicht verloren.
Die Anmeldung läuft über die Queue (ShouldQueue): Der Besucher wartet nicht auf die API, ein Ausfall
bei Brevo hält das Formular nicht auf. Lokal ./peaky.sh queue, auf Ploi der Daemon.
Sprache: Das Addon schickt die Site-Sprache als Attribut SPRACHE mit, damit die Bestätigungsmail in der
richtigen Sprache verschickt wird. Vor- und Nachname landen als VORNAME/NACHNAME — Zuordnung in
config/kreatif-forms.php unter brevo.attributes.
- Keine Mails verschicken. Das macht Statamic Core; Vorlagen liegen im Projekt
(
resources/views/email/), Empfänger, Betreff und Anhänge stehen im CP am Formular. - Keine Feld-Darstellung. Wie ein Formular aussieht, ist Projekt-Design.
- Keine Spam-Abwehr. Honeypot und Precognition kommen aus Peak.