da mir das händische Erstellen aller möglichen Formulare irgendwann zuviel wurde und mir der - an sich aussichtsreiche aber in punkto Versandmethode, Mailformat und Gestaltbarkeit noch nicht wirklich gute - PIFA auch nicht die "Erlösung" brachte, habe ich einen eigenen Formulareditor entwickelt.
Wichtig: Alle "Jobs" der Folgepostings sind in den in diesem Eröffnungspost verlinkten Quelltexten bereits berücksichtigt!
Features:
# Versand an mehrere eMail-Adressen möglich
# Editierbarer Betreff inklusive möglicher Übernahme von Datenvariablen aus dem Kontaktformular
# Spamschutz
# Festlegung der Formularfelder über den Artikelreiter Konfiguration, das sind bisher folgende Typen:
- Text
- Textarea
- eMail (inkl. Prüfung auf korrekte Mailadresse)
- Passwort (inkl. Prüfung auf bestimmte Konventionen. Da Passwortkonventionen immer recht individuell sind, ist hier z.Zt. lediglich eine Mindestanzahl Zeichen vorgegeben. Lässt sich aber ohne weiteres per reg-ex anpassen)
- Datum (inkl. Prüfung auf Datumseingabe)
- Zahl (inkl. Prüfung auf numerische Eingabe), Wertebereich definierbar
- Radio
- Checkbox
- Select single
- Select Multi
- File
- Range
- Trenner
# Dateianhang in Größe und Dateityp beschränkbar, derzeit auf einen Anhang beschränkt.
# Erläuterungstexte zu den Formularfeldern können normales html-markup enthalten (z. B. um Links zur Datenschutzerklärung einbinden zu können)
# komplett individualisierbar
# responsive
# Fehlerhinweise mit Markierung im Formular
# Einseitige und mehrseitige Formulare möglich
# HTML5-Funktionen (Validierung, Fehlermeldung, Datepicker, …) aktivierbar
# Versand als HTML und plain text über die "normale" php-Mailfunktion, per smtp kann in Modulausgabe festgelegt werden.
# Zusammenfassung der eingetragenen Daten nach Versand oder einfache Versandbestätigung
Installation
# Normales Anlegen eines neuen Moduls mit den weiter unten stehenden Inhalten
# Hinterlegen der - noch selbst zu erstellenden - drei Spamschutzsymbolen
# ggf. Anpassen der Modulausgabe am Anfang im Bereich ***** settings *****
# ggf. Umstellung von mail() auf smtp im Bereich ***** sending mail and displaying mailed data begin ***** der Modul-Ausgabe
Definition von Formularfeldern:
Gut, es gibt kein "schickes Drag'n'drop" - die Formularfelder werden pragmatisch zeilenweise im Reiter Konfiguration in einer Textarea festgelegt und an die Modul-Ausgabe übermittelt. Dort wird der Inhalt in Arrays gesplittet, die dann für den Aufbau des Formulars, der Fehlerprüfung, Bestätigungsseite und den Mailbody genutzt werden. Eine Erläuterung ist in der Modul-Eingabe vorhanden, ebenso ein fertiges Beispiel. Mag am Anfang etwas nach "Hä?!" aussehen, ist aber letztlich simpel.

SOURCEN
Da das Modul mittlerweile ordentlich umfangreich geworden ist, habe ich die einzelnen Bestandteile in eigene Posts ausgelagert:
Modul-Eingabe: viewtopic.php?f=99&t=35231&p=179486#p179485
Modul-Ausgabe: viewtopic.php?f=99&t=35231&p=179486#p179486
CSS, JavaScript und Sprache: viewtopic.php?f=99&t=35231&p=179486#p179487
CHANGELOG
13.04.2020: Für den Versand der E-Mail kann jetzt auch die seitens des Nutzers im Formular angegebene Mailadresse und der Name verwendet werden. Die per $send_from_name und $send_from_email gesetzte Konfiguration in der Modulausgabe wird überschrieben, wenn im Artikelreiter "Konfiguration" für den Namen und die Mailadresse statt des Variablennamens name und email der Variablenname send_from_name bzw. send_from_email verwendet wird.
EDIT 26.02.2019: Die Versandbestätigung im Frontend nach dem Absenden kann jetzt wahlweise ohne oder mit Darstellung der versendeten Daten erfolgen.
EDIT 21.02.2019: Es können jetzt nicht mehr nur einseitige sondern auch mehrseitige Formulare umgesetzt werden.
EDIT 19.02.2019: Input-Felder sind jetzt mit mit einem <label> versehen und HTML5-Funktionen (Validierung, Fehlermeldung, Datepicker, …) aktivierbar. Der Eingabetyp "range" ist hinzugekommen.
EDIT 23.10.2018: Support von zusätzlichen CSS-Klassen für den Typ separator hinzugefügt. So lassen sich z. B. Hintergrundbilder usw. umsetzen. Des weiteren sind jetzt bei den types text und number leere fieldnames erlaubt.
EDIT 31.05.2018: Unterstützung des Versands von SMTP hinzugefügt, dabei wird auf den in CONTENIDO integrierten Swiftmailer bzw. die cMailer()-Klasse zurückgegriffen. Wichtig: README in der Modulausgabe beachten!
EDIT 15.05.2018: Unterstützung von html-Tags in den Beschreibungen der Formularfelder hinzugefügt
EDIT 02.03.2017: Umstellung der Formulardarstellung und Zusammenfassung nach dem Absenden von einer Tabelle auf ein DIV-Konstrukt, was zu einer erheblich besseren Responsivität führt. Anpassungen hierzu sind in der Modul-Ausgabe und der CSS-Datei erfolgt.
EDIT 01.03.2017: Probleme beim Versand von Mais mit Dateianhang per mail() behoben, indem der Aufbau der Mail-Header neu strukturiert und Buffering genutzt wurde. Zusätzlich wird jetzt auch eine reine plain-text Version der Mail erzeugt.
EDIT 01.02.2017: Einige Hoster erlauben den Versand von Mails nur dann, wenn die Absenderadresse auf dem gleichen Server gehostet wird. Sollte beim Versenden von Mails die Info "Keine Verbindung zum Mailserver" erscheinen, kann es hieran liegen. In diesem Fall im Output unter "settings" die entsprechenden Angaben machen, damit die ggf. per Formular vom Seitenbesucher angegebene Mailadresse und der Name ersetzt werden.
EDIT 25.07.2016: Es können jetzt Inhalte von Formularfeldern auch im Betreff eingebunden werden.
EDIT 04.03.2016: Es können jetzt Separatoren bzw. Zwischenüberschriften verwendet werden um das Formular zu unterteilen.
Screenshots aktualisiert am 21.02.2019: