Formular per E-Mail senden

Es gibt verschiedene Wege, wie du auf deiner Website ein Formular per E-Mail senden kannst. Dabei kannst du rein auf HTML und dem mailto: Befehl setzen. Du kannst ebenso einen Formmailer einsetzen.

Ich beschreibe beide Methoden in diesem Artikel und zeige dir dabei auch mögliche Vor- und Nachteile der jeweiligen Methode.

Formulare per E-Mail verschicken

In HTML kannst du auf verschiedene Art und Weise Formulare erstellen. Der modernste Weg ist derzeit, ein Formular mit HTML5 zu erstellen. Aber das beste Formular bringt nur dann etwas, wenn der Nutzer es auch absenden kann. Das kann auf divers Art und Weise erfolgen.

In diesem Artikel bringe ich dir daher zwei Methoden näher, mit denen du ein Formular absenden kannst. Möglichkeit 1 ist dabei ein simpler mailto: -Befehl, Möglichkeit 2 ein PHP Formmailer.

Formular absenden mit HTML

Der einfachste Weg ein Formular abzusenden ist mit dem HTML Befehl mailto: . Hierfür brauchst du kein Script und kein PHP. Allerdings hat diese Methode auch einen entscheidenden Nachteil. Damit es ohne jegliches Script funktioniert, muss der Anwender auf seinem Gerät ein E-Mail Programm installiert haben. Dies funktioniert nicht auf Smartphones oder Tablets, da die Apps hier in der Regel das mailto: -Protokoll nicht unterstützen.

Da immer mehr Menschen vieles direkt auf dem Smartphone oder Tablet erledigen, kann ich daher nicht zum Einsatz dieser Methode raten. Hast du aber keine andere Möglichkeit, könnte ein einfaches Formular wie folgt aussehen.

Beispiel:

<form action="mailto:deine@e-mail.de" method="post">
Name:<input type="text" name="vorname" value="" size="30" maxlength="50"><br />
Frage:<textarea name="Frage" rows="7" cols="30">Schreibe hier deine Frage hinein.</textarea><br />
<input type="submit" name="absenden" value="Absenden">
</form>

Hinweis:

Damit diese Methode funktioniert, benötigt der Nutzer ein installiertes E-Mail Programm. Diese Methode funktioniert anders als ein Formmailer. Das Formular überträgt hierbei alle Eingaben in das E-Mail Programm des Nutzers. Dieser muss danach die Mail noch händisch absenden. Eine automatische Übertragung der Eingaben findet hier nicht statt.


Anzeige:



Formular absenden mit einem PHP Formmailer

Mit PHP kommen wir nun zu der Möglichkeit, die ein direktes Versenden des Formulars erlaubt. Hierzu musst du lediglich auf deiner Website PHP Scripte ausführen können. Der Nutzer benötigt kein E-Mail Programm. Diese Methode funktioniert dabei auch auf mobilen Geräten wie Smartphones oder Tablets.

Alles, was du dazu brauchst, ist ein PHP Formmailer. Ein Beispiel für einen recht einfachen Formmailer findest du nachstehend. Gefunden habe ich dieses Beispiel im Webkompetenz-Blog.

Beispiel:

<?php
 
// ======= Konfiguration:
 
$mailTo = 'IhrName@provider.xy';
$mailFrom = '"FormMailer" <info@provider.xy>';
$mailSubject    = 'Feedback';
$returnPage = 'http://deine-website.de/formular-versendet.htm';
$returnErrorPage = 'http://deine-website.de/formular-fehler.htm';
$mailText = "";
 
// ======= Text der Mail aus den Formularfeldern erstellen:
 
// Wenn Daten mit method="post" versendet wurden:
if(isset($_POST)) { 
   // alle Formularfelder der Reihe nach durchgehen:
   foreach($_POST as $name => $value) {
      // Wenn der Feldwert aus mehreren Werten besteht:
      // (z.B. <select multiple>)
      if(is_array($value)) {
          // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ":\n";
          // alle Werte des Feldes abarbeiten
          foreach($valueArray as $entry) {
             // Einrückungsleerzeichen, Wert und Zeilenumbruch 
             // dem Mailtext hinzufügen
             $mailText .= "   " . $value . "\n";
          } // ENDE: foreach
      } // ENDE: if  
      // Wenn der Feldwert ein einzelner Feldwert ist:
      else {
          // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ": " . $value . "\n";
      } // ENDE: else
   } // ENDE: foreach
} // if
 
// ======= Korrekturen vor dem Mailversand 
 
// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:
 if(get_magic_quotes_gpc()) {
     // eventuell eingefügte Backslashes entfernen
     $mailtext = stripslashes($mailtext);
 }
 
// ======= Mailversand
 
// Mail versenden und Versanderfolg merken
$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom);
 
// ======= Return-Seite an den Browser senden
 
// Wenn der Mailversand erfolgreich war:
if($mailSent == TRUE) {
   // Seite "Formular verarbeitet" senden:
   header("Location: " . $returnPage);
}
// Wenn die Mail nicht versendet werden konnte:
else {
   // Seite "Fehler aufgetreten" senden:
   header("Location: " . $returnErrorPage);
}
 
// ======= Ende
 
exit();
 
?>

Hinweis:

Bitte passe vor dem Einsatz dieses Formmailers die Daten unter dem Punkt „Konfiguration“ an.

Damit der Formmailer funktioniert, benötigst du außerdem zwei weitere Seiten. Wenn alles in Ordnung ist, leitet das Script auf eine Seite mit einer Erfolgsmeldung um. Tritt bei der Übertragung ein Fehler auf, leitet das Script entsprechend auf eine Fehlerseite um. Diese beiden Seiten musst du noch einrichten.

Danach kannst du den Formmailer ganz einfach in deinem Formular einfügen.

Beispiel:

<form action="formmailer.php" method="post">
Name:<input type="text" name="vorname" value="" size="30" maxlength="50"><br />
Frage:<textarea name="Frage" rows="7" cols="30">Schreibe hier deine Frage hinein.</textarea><br />
<input type="submit" name="absenden" value="Absenden">
</form>

Erklärung:

Wie du sehen kannst, unterscheidet sich das Formular lediglich in der action-Methode vom vorigen Formular. In diesem Fall weist du das Formular an, die Datei formmailer.php auszuführen. Wie bereits erwähnt, braucht der Nutzer für diese Methode kein zusätzliches Programm. Auf Tablets und Smartphones funktioniert das Script ebenso.

Weitere Lesetipps

Zu Anfang des Artikels habe ich bereits den Artikel „Formulare erstellen mit HTML 5“ verlinkt. Dieser Artikel vermittelt dir einen guten Einstieg zum Erstellen von Formularen. Es gibt aber auch noch weitere Themen zu entdecken. So kannst du dir bspw. 9 Tipps zur Optimierung von Formularen ansehen.

Ebenso interessant dürfte auch der Artikel Formulare für Smartphones und Tablets optimieren sein. In diesem Beitrag zeige ich dir einige Methoden, wie du Formulare für Mobilgeräte optimieren kannst.

3 Gedanken zu “Formular per E-Mail senden”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.