In diesem Beispiel kann der Besucher ein Formular ausfüllen. Beim Absenden des Formulars wird das Script phpmailer.php aufgerufen und alle Formulardaten übergeben. Das Script überprüft die Daten und zeigt entweder eine Webseite mit einem Fehler an oder sendet das Email und zeigt eine Webseite mit einer Erfolgsmeldung.
Aus Sicherheitsgründen (Spam) darf die Emailadresse des/der Empfänger nicht einfach von einem öffentlichen Web-Formular übernommen werden.
Mögliche Lösungen:
- Die Emailadresse des Empfängers wird im Script-Code fest eingegeben
- Es wird ein guter Spam-Schutz (Captcha) verwendet
Kontrollieren Sie auf jeden Fall die Benutzereingaben, z.B. ob nur eine und eine gültige Emailadresse eingegeben wurde.
Das Formular
<html>
<head>
<title>Mail Beispiel mit PHP</title>
</head>
<body>
<font face="Arial">
<b>Mail Beispiel mit PHP</b>
<form action="phpmailer.php" method="POST">
Name, Vorname: <input type="text" name="name_surname" />
<br />
Absender-Email: <input type="text" name="mailfrom" />
<br />
Betreff: <input type="text" name="subject" />
<br />
Text:<br /><textarea name="text" rows="20" cols="50"></textarea>
<br />
<input type="submit" value="E-Mail senden" />
</form>
</font>
</body>
</html>
Das Script
<?php
echo '<b>Mail Beispiel mit PHP</b>';
//überprüfung der eingabe
//name vorname??
if (empty($_POST['name_surname'])) {
echo 'Geben Sie Ihren Namen und Vornamen an!';
$error = 'on';
}
//absender-email-adresse??
if (empty($_POST['mailfrom'])) {
echo 'Geben Sie Ihre E-Mail-Adresse an!';
$error = 'on';
}
//betreff??
if (empty($_POST['subject'])) {
echo 'Kein Betreff angeben!';
$error = 'on';
}
//email (text)??
if (empty($_POST['email'])) {
echo 'Leere E-Mails werden nicht versendet!';
$error = 'on';
}
//falls die überprüfung in ordnung ist, email senden
if(!isset($error)) {
//vereinfachung der variablen
$name_surname = $_POST['name_surname'];
$mailfrom = $_POST['mailfrom'];
$subject = $_POST['subject'];
$text = $_POST['text'];
//header-definition
$headers .= 'From: '.$name_surname.' <'.$mailfrom.'>'."\n";
$headers .= 'X-Sender: <'.$mailfrom.'>'."\n";
$headers .= "Reply-To: ".$name_surname." <$mailfrom>\r\n";
//anpassung der zeilenumbrüche des textes für email
$text = preg_replace('/<br[ ]?\/?>/', "\n", $text);
//anpassung der umlaute
$text = preg_replace('/ä/', "ä", $text);
$text = preg_replace('/ö/', "ö", $text);
$text = preg_replace('/ü/', "ü", $text);
$text = preg_replace('/Ä/', "Ä", $text);
$text = preg_replace('/Ü/', "Ü", $text);
$text = preg_replace('/Ö/', "Ö", $text);
//emailempfänger definieren
$mailto = "wunschname@wunschname.ch";
//mail senden
mail ($mailto,$subject,$text,$headers);
//bestätigung
echo 'E-Mail wurde erfolgreich versendet!';
}
?>