[Tipp 26]
Mailversand mit Formular und PHP

Auch zu diesem Thema tauchen immer wieder Fragen auf und viele User haben scheinbar Probleme mit dem Formmailer. Aus diesem Grunde habe ich diese kurze Anleitung mit dem Schwerpunkt auf PHP für den Versand von Kontaktmails erstellt. Diese Anleitung ist natürlich nur für die Leute gedacht, die auch über die Möglichkeit von PHP auf Ihrem Server verfügen.

1. Zuerst wird auf einer leeren oder einer schon bestehenden Seite das Formular aufgebaut:
Ich verwende dazu jeweils ein Feld für den Namen, den Vornamen, die Straße, den Wohnort, die Email-Adresse, einen Betreff und ein Feld für den Text. Die Felder Name, Email-Adresse und der Betreff sollen unbedingt ausgefüllt werden. Sogenannte Pflichtfelder für den Kontaktsuchenden.
Die Arbeitsschritte im einzelnen:
Ein Formularobjekt (das Ding mit dem kleinen F oben links) aus der Objekte-Palette auf die Seite ziehen (Abb. 1), dann am besten zur guten Aufteilung der kommenden Felder eine Tabelle plazieren. Diese so einrichten wie es gewünscht wird. Jetzt können die Felder (hier habe ich einfach die Textfelder aus der Formular-Palette genommen) und Texte dazu in die Tabelle eingebaut werden und nicht vergessen den Button (die Abschicken-Schaltfläche aus der Formular-Palette) für das Abschicken einzubauen (Abb. 2).

Kontakt01

Abbildung 1

Kontakt02

Abbildung 2

2. Jetzt muß natürlich noch die Funktionalität zugewiesen werden, sprich dieses Formular wird mit dem PHP-Skript verbunden (Abb. 3):

Kontakt03

Abbildung 3

Wer möchte kann sich über den Punkt Bestand den Inhalt des Formulars anzeigen lassen und auch von dort aus z.B. für eine weitere Verwendung exporterien (Abb. 4).

Kontakt04

Abbildung 4

3. Jetzt kommen wir zum PHP-Skript für dieses Formular. Wer es in GoLive machen möchte kann das Skript dort direkt drinnen öffnen und bearbeiten, ich empfehle dafür aber einen externen Editor, z.B. BBEdit für den Mac etc. Achtung! Bei der Bearbeitung des Skriptes in GoLive darauf achten, das für die Skript-Seite der Zeilenumbruch (Menü Datei --> Zeilenumbruch oder über die Webeinstellungen) auf Windows (CR/LF) eingestellt ist. Wenn man das nicht macht, läuft das Skript nicht...

So hier jetzt das Skript als Screenshot:

Das Skript

Abbildung 5

In der Zeile mit dem Argument if am Anfang werden die Felder festgelegt, die nicht leer sein dürfen, also die Pflichtfelder. Hier können nach dem Muster natürlich weitere hinzugefügt werden.

Unter $more sind die Mailadressen drinnen und der Typ der Mail (text), unter body werden die Felder angegeben, die mit der Mail übertragen werden sollen, vorne mit dem beschreibenden Text und dahinter die Feldzuweisung.

Unter Mail, wohin es gehen soll und was der Inhalt sein soll, also hier subject, body und more.

Wenn das erfolgreich war bekommt der Benutzer einen Seite mit einer Dankesformulierung zu sehen (danke.html), wenn es nicht funktioniert hat, also Pflichtfelder nicht ausgefüllt waren kommt eine Seite mit einer hoffentlich sinnreichen Meldung für den Benutzer (fehler.html).

Wichtig! Bitte die eigenen Schreibweisen genau prüfen, hier treten die häufigsten Fehler auf und natürlich auch die Pfade genauestens überprüfen.

Das Skript kann man je nach Hoster an unterschiedlichen Orten speichern. Einige erlauben so ein Skript in jedem Verzeichnis, andere wiederum nur in einem bestimmten Verzeichnis.

Hier kann man das Musterskript downloaden.

Ich übernehme natürlich keine Gewähr und keinen Support für das Skript und es gibt sicher noch viele andere Lösungen dafür.

Diese Seiten wurden zuletzt aktualisiert am Mittwoch, 20. August 2003