PHP Formular erstellen/E-Mail-Formular mit PHP

Das PHP-E-Mail-Formular dient dazu, Daten, die in ein Formular eingegeben werden, via E-Mail an eine bestimmte Adresse zu senden. Diese Seite erklärt, wie dieses Programm benutzt wird.

Wir empfehlen dabei PHP statt CGI einzusetzen. Ein CGI Skript kann von potentiellen Spammern missbraucht werden. Passiert dies von Ihrer Domain aus, kann dies dazu führen, dass Ihre E-Mail Adresse in eine Blacklist eingetragen wird und Ihre E-Mail Nachrichten somit nicht mehr zugestellt werden. Aus diesem Grund sollten Sie alle Formulare auf Ihrer Webseite mit PHP versenden und dabei die Empfängeradresse fix im Skript definieren.

Hinweis: Die nachfolgende Anleitung gilt für Webseiten, welche auf einem Server von sesamnet gehostet werden. Sollten Sie das Skript auf einem anderen Server einsetzen, müssen Sie eventuell Anpassungen vornehmen. Hierfür bieten wir Ihnen keinen Support an. Bei Fragen wenden Sie sich bitte Ihren jeweiligen Hosting-Provider.

PHP-E-Mail-Formulare:
Wie kann ein Mailformular in eine Seite eingebunden werden? 
Um den Besuchern Ihrer Website zu ermöglichen, Ihnen über ein Formular Informationen zukommen zu lassen, gehen Sie wie folgt vor:

Laden Sie die Datei formmail.php herunter und speichern Sie diese Datei im gleichen Verzeichnis ab, in welchem sich Ihr Formular befindet. Die Datei soll unter dem Namen formmail.php gespeichert werden (ohne die Endung .txt!).

Erstellen Sie die Webseite mit Ihrem Formular. Achten Sie darauf, dass die Endung Ihrer Webseite auf .php lautet (z.B. kontakt.php). Verwenden Sie im Action Feld ein Fragezeichen, im Method Feld die Bezeichnung POST. Beispiel:

<form action="?" method="POST" name="Beispielformular">

Fügen Sie ganz zu Beginn Ihrer Webseite (noch vor dem HTML Tag!) den folgenden Text ein. Ersetzen Sie die angegebenen E-Mail Adressen und Texte in den Anführungszeichen nach Belieben. Beachten Sie dabei folgendes:

  • entfernen Sie keine Klammer, kein Komma, Strichpunkt oder Anführungszeichen
  • Text hinter // ist ein Kommentar und dient nur zu Ihrer Information

<?php
require("formmail.php");

formmail( // Absender Adresse
"formular@firma.ch",

// Empfänger Adresse
"info@firma.ch",

// Betreff der E-Mail Nachricht
"Infos vom Web-Formular",

// Einleitung der E-Mail Nachricht
"Ein Besucher hat das Formular ausgefüllt und abgeschickt:",

// Namen der Felder, welche verlangt sind und nicht leer
// sein dürfen. Dies ist eine durch Kommata getrennte Liste.
"",

// Webseite, auf welche nach dem Absenden verwiesen wird (ganze URL)
"http://www.ihre-eigene-domain.ch/danke.html",

// Webseite, auf die bei Fehlern verwiesen wird (ganze URL).
// Fehler treten beispielsweise auf, wenn ein
// verlangtes Feld nicht ausgefüllt worden ist.
"http://www.ihre-eigene-domain/fehler.html");
?>

Möchten Sie mit diesem Formular auch Dateien versenden können, muss im Formular das Feld enctype auf multipart/form-data gesetzt werden. Für Text-Eingabefelder ist dies nicht zwingend nötig. Ein fertiges Formular könnte wie folgt aussehen:

Beispiel (Quelltext)

<?php
require("formmail.php");
formmail("formular@ihreadresse.ch",
"info@ihreadresse.ch",
"Infos vom Web-Formular",
"Ein Besucher hat das Formular ausgefüllt
und abgeschickt:",
"email,kommentar",
"/danke.html",
"/fehler.html");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
  <h1>Kontaktformular</h1>
    <form action="?" method="POST" enctype="multipart/form-data">
    Ihre E-Mail Adresse: <input type="text" name="email" size="20">
    <br>
    Ihre Kommentar: <textarea name="kommentar" rows="10" cols="40"></textarea>
    <br>
  <input type="submit" value="Absenden">
 </form>
</body>
</html>