Kontaktformular mit Publii

Tailwind CSS Kontaktformular per Ajax mit PHPMailer absenden

Wie in dem Beitrag bereits beschrieben, kann man mit Publii keine Formulare direkt erzeugen bzw. weiterverarbeiten. Wenn der Webserver PHP unterstützt (was sehr oft der Fall ist), können E-Mails aber sehr einfach mit PHPMailer versendet werden.

Wir verwenden PHPMailer anstelle der PHP internen mail() Funktion, weil es einige Vorteile bringt. In dem Beispiel versenden wir die E-Mails per SMTP Server. Für z.B. Google Mail sind Anpassungen vorzunehmen. Beispiele dazu gibt es im PHPMailer Projekt

Formular:

Für das Design unsere Publii Vorlagen verwenden wir in der Regel Tailwind CSS. Für komplexere Formulare bzw. Seiten erstellen wir eine eigene Seitenvorlage und wählen diese in Publii dann aus. Kontaktformulare die z.B. auf allen Seiten im Footer angezeigt werden soll, landen im "partials" Ordner der Vorlage.

Das Formular wird per Ajax / fetch Aufruf die eingegeben Daten an ein PHP Script (z.B. send.php) übergeben. Dort werden die Angaben noch einmal geprüft bzw. die E-Mail versendet.

PHP Script

Wie bereits geschrieben, verwenden wir PHPMailer für das Versenden der E-Mails. Dazu benötigen wir aus dem PHPMailer Projekt im Grunde nur diese zwei Dateien:

require 'PHPMailer.php';
require 'SMTP.php';

Das PHP Script prüft die Eingaben und versendet dann die Daten mit der PHPMailer Klasse. Gemeinsam mit dem Formular brauchen wir also nur 4 Dateien.

Beispielcode

Die Beispieldateien (Formular und PHP Script) stehen auf GitHub zur Verfügung:

https://github.com/whollaus/contact_form/tree/main

Neueste Blog Einträge:

Cronjobs unter MacOS mit BetterTouchTool

Die ultimative Alternative zu Cronjobs auf MacOS: BetterTouchTool zum Automatisieren von Aufgaben!

Backup MacOS

Fotos effizient verkleinern und sicher offline synchronisieren

Wir haben ein Bash Script entwickelt, dass die Größe aller Fotos im angegebenen Verzeichnis inkl. Unterverzeichnisse verkleinert. Die Funktionen sind: Die verkleinerten Fotos können un…
Android Backup Linux MacOS

Cloudpanel Error - /usr/bin/clpctl: 5: printf: %q: invalid directive

Je nach Server OS bzw. Einstellungen kann bei Cloudpanel im CLI Modus diese Fehlermeldung kommen: $ sudo clpctl db:show:master-credentials /usr/bin/clpctl: 5: printf: %q: invalid directive…
CloudPanel

Bereit für Ihr Projekt?