[ Fenster schließen ] - [ Drucken ]

Der berühmte Formmailer in PHP

Hier ist er! Wie versprochen! An dieser Stelle kannst du dir endlich den »berühmten Formmailer« herunterladen, und zwar in der neuesten Version. Es handelt sich um ein Programm, welches deine Formulardaten entgegennimmt und per E-Mail verschickt.

Das Formmail-Programm habe ich in PHP geschrieben. PHP ist eine einfache Skriptsprache, die du direkt im HTML-Quellcode notierst. PHP läuft auf dem Server und wird vom Server ausgeführt. PHP-Dokumente bekommen die Endung php. Achtung! Dein Dienstleister muss PHP-Unterstützung bieten. Puretec bietet das immerhin schon ab seinem Profi-Paket (ca € 12,50 im Monat), Strato leider erst ab dem doppelt so teuren Premium-Paket. Neue Medien Münnich kostet dagegen ab 4,95 im Monat.

Tipp: KnowWare hat auch ein PHP-Heft von mir im Programm, von dem du dir über [ www.knowware.de ] die ersten Seiten herunterladen kannst.

Der Quelltext von unimailer.php im Überblick

Hier das komplette Skript im Überblick, Version 3.2. Ich habe es in ein HTML-Dokument eingebettet. Dieses heißt im Beispiel unimailer.php. Lade es dir per Rechtsklick auf diesen Link und Befehl Ziel speichern unter herunter:

Achtung, nach dem Download musst du die Endung .txt entfernen. Das Dokument heißt nur unimailer.php und nicht unimailer.php.txt. Ich habe diese Endung gewählt, da es sonst Downloadprobleme gibt.

Und so sieht dieses Dokument aus, du kannst es dir auch per Copy & Paste in die Zwischenablage kopieren:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859">
<title>Formularauswertung</title>
</head>
<body>
<?php
/* Universalmailer Version 3.2, Januar 2003, © JCH */
/* DIE NÄCHSTEN WERTE DARFST DU EDITIEREN */
$empfaenger="deine@lexi.de";
$betreff="Betrefftext hier eintragen";
$botschaft="Folgende Daten wurden eingegeben:\n\n";
/* EDITIEREN ENDE */
/* Schleife liest Attribut-Werte-Paare aus: */
foreach($_POST as $name=> $value) {
/* Alle Daten werden in $botschaft gespeichert: */
$botschaft.="$name=$value\n"; // Kurzform für Verkettung
}
/* Versenden! Bitte Mail-Feld im Formular vorsehen! */
if (isset($_POST["Mail"]) && $_POST["Mail"]!="") { // Mail-Feld gesetzt und nicht leer?
/* Dann wird Versenden-Funktion mail() aktiv */
$absender=$_POST["Mail"];
if(mail($empfaenger, $betreff, $botschaft, "From: $absender")) {
/* War mail() erfolgreich? Dann sieht Benutzer folgende Zeilen */
echo "<h1>Danke f&uuml;r das Feedback!</h1>\n";
echo "<p>Die Botschaft wurde weitergeleitet!</p>\n";
}
/* Sonst gibt es eine Fehlermeldung: */
else {
echo "<h1>Leider konnte Ihre Botschaft nicht versandt werden.</h1>\n";
}
} // äußere if-Funktion schließen
/* else-Zweig äußere if bei nicht gesetzter Variable $Mail: */
else {
echo "<h1>Bitte geben Sie Ihre E-Mail-Adresse an!</h1>\n";
}
?>
</body>
</html>

Das Skript ist praktisch selbsterklärend. Lies meine Kommentare (gleiche Kommentar-Syntax wie in JavaScript). Passe die zu editierenden Werte an, also den Betrefftext und deine E-Mail-Adresse.

Eine ausführliche Erläuterung aller hier verwendeten Funktionen bekommst du in meinem Heft PHP für Einsteiger (2. Ausgabe 2003)

Die Teile mit dem $-Zeichen davor sind Variablen. Der Rest des Programms liest alle Attribut-Werte-Paare aus dem Formular heraus und schickt sie dir per E-Mail zu.

Bestätigung der Absendung
Nach dem Abschicken sieht der Benutzer eine Bestätigung!

Wichtig: Sieh in deinem Formular unbedingt ein Feld namens Mail vor, genau wie im Casa-Formular aus dem Heft »Homepages mit HTML und CSS«. Daraus macht der auf dem Server stationierte Mailer automatisch die Absenderadresse. Wenn dieses Feld nicht mit übermittelt wird, erzeugt mein Programm dagegen eine Fehlermeldung.

Keinen Namen doppelt vergeben!

Du möchtest Checkboxen vom Skript versenden lassen? Beispielsweise folgendes »Gebilde«:

<input type="checkbox" name="Medium" value="Zeitung">

Dann achte darauf, dass du jeder Checkbox einen anderen Namen verpasst! Du dürftest jetzt keine zweite Checkbox mit dem Namen Medium einbauen, denn das Skript kann jeweils nur einen Namen ein einziges Mal interpretieren!

FormMailer ohne Installations-Support!

Beachte, dass ich dir dieses FormMailer-Skript ohne Support als freiwilliges Zusatzangebot zur Verfügung stelle. Das Skript funktioniert ab PHP-Version 4.1, bei guten Dienstleistern ist das eine Selbstverständlichkeit. Ich habe es bei mir getestet (Puretec-Server, All-inkl.com) und es läuft. Ich kann dir jedoch nicht helfen, wenn es bei deinem Dienstleister nicht funktioniert.

Für die korrekte Installation dieses Skriptes bist du selber verantwortlich. Stellt dir der Anbieter serverseitiges Mailen zur Verfügung? Erfrage dies von deinem Dienstleister! Wie erwähnt: Mehr Infos zu PHP bekommst du in meinem Heft "PHP für Einsteiger" bzw. in meinem dicken Buch "PHP und MySQL für Kids"!

© Johann-Christian Hanke, 2002. Dieses Dokument ist Bestandteil der Serviceseiten für meine Homepage-Titel, die Adresse lautet [ www.jchanke.de/homepage ].

[ nach oben ] - [ Fenster schließen ] - [ Drucken ]