Problem:
Ich möchte ein Formular per E-Mail verschicken.
Lösung:
Legen Sie 2 Dateien an (datei1.htm und datei2.php) und kopieren jeweils den hier angezeigten Code hinein:
Datei datei1.htm
<html>
<body>
<!-- Formular an datei2.php schicken -->
<form method="post" action="datei2.php">
<!-- Formulareingaben -->
Absender E-Mail: <input type="text" name="absender_email" style="width: 300px;"><br>
Absender-Name: <input type="text" name="absender_name" style="width: 300px;"><br>
Dein Kommentar:<br>
<textarea name="kommentar" style="width: 300px; height: 60px;"></textarea><p>
<!-- Button "Abschicken" anzeigen -->
<input type="submit" value="Abschicken">
</form>
</body>
</html>
Datei datei2.php
<html>
<body>
<?php
// Empfänger der E-Mail:
define(EMPFAENGER_EMAIL,"empfaenger@domain.de");
/**
* @desc Funktion zum Schutz gegen Spamming
* @author Ingo Fritz
* @copyright ECS-Webhosting, Ingo Fritz
* @param sWert(String): Zu ueberpruefender Eingabetext
* @param lMaxLength(Long): Optional, maximale Laenge von sWert: Ggf. abschneiden. Default: 0 = unbegrenzte Laenge
* @param bEMail(Boolean): Optional, ist sWert eine E-Mail? Werte: [true|false] Default: false
* @return (String): korrigierter sWert Text
*/
function MailSetSecure($sWert,$lMaxLength = 0,$bEMail = false)
{
// Eingabe auf lMaxLength Zeichen kuerzen:
if ($lMaxLength > 0) {$sWert = substr($sWert,0,$lMaxLength-1);}
if ($bEMail === true)
{
// Nur bestimmte Zeichen fuer E-Mail Adresse zulassen:
$sWert = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $sWert);
}
// Befehle fuer weitere E-Mail Empfaenger entfernen:
$sWert = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $sWert);
return ($sWert);
}
// ----------------------------------------------------
$errortext = "";
if ($absender_email == "") {$errortext .= "Sie haben keine E-Mail angegeben!<br>";}
if ($absender_name == "") {$errortext .= "Sie haben keinen Absender-Namen angegeben!<br>";}
if ($kommentar == "") {$errortext .= "Sie haben keine Nachricht angegeben!<br>";}
// Formularfelder gegen Spamming absichern:
$absender_email = MailSetSecure($absender_email,100,true);
$absender_name = MailSetSecure($absender_name,50);
$kommentar = MailSetSecure($kommentar,255);
// E-Mail Betreff
$sSubject = "Anfrage " . $absender_name;
// E-Mail Text
$sMessage =
"
Ansprechpartner: $absender_name
E-Mail: $absender_email
---------------------------------------------------
Kommentar:
$kommentar
";
// Prüfung auf URLs, Links etc.:
if (ereg("http:",$sMessage) || ereg("www.",$sMessage) || ereg("a href",$sMessage))
{
$errortext .= "Die Nachricht enthält verbotene Zeichen! Zustellung verweigert.<br>";
}
if ($errortext != "")
{
// Es traten Fehler auf, Nachricht NICHT verschicken:
print "
<h2>Fehler beim E-Mail Versand</h2>
<span style=\"color: #FF0000; font-weight: bold;\">$errortext</span>
<p>
";
} else
{
// Nachricht verschicken:
$bSend = mail(EMPFAENGER_EMAIL,$sSubject,$sMessage,"From: $absender_email\nReply-to: $absender_email\n");
if ($bSend == 1)
{
// E-Mail OK
print "
<h2>Vielen Dank!</h2>
Die Nachricht wurde erfolgreich verschickt. Wir werden uns so bald wie möglich bei Ihnen melden.
<p>
";
} else
{
// Ein Fehler ist aufgetreten
print "
<h2>Fehler beim E-Mail Versand</h2>
<span style=\"color: #FF0000; font-weight: bold;\">Es trat ein Fehler beim Versand der E-Mail auf. Bitte erneut versuchen!</span>
<p>
";
}
}
?>
</body>
</html>