Beispiel PHP: Wie kann ich ein Email senden?

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('/&auml;/', "ä", $text);
    $text = preg_replace('/&ouml;/', "ö", $text);
    $text = preg_replace('/&uuml;/', "ü", $text);
    $text = preg_replace('/&Auml;/', "Ä", $text);
    $text = preg_replace('/&Uuml;/', "Ü", $text);
    $text = preg_replace('/&Ouml;/', "Ö", $text);
    //emailempfänger definieren
    $mailto = "wunschname@wunschname.ch";
    //mail senden
    mail ($mailto,$subject,$text,$headers);
    //bestätigung
    echo 'E-Mail wurde erfolgreich versendet!';
}
?>
  • PHP, Mail
  • 0 Utenti hanno trovato utile questa risposta
Hai trovato utile questa risposta?

Articoli Correlati

Beispiel PHP: Wie erstelle ich ein Upload-Formular?

In diesem Beispiel kann der Benutzer mittels eines Formulares eine Datei auf seinem Computer...

Wie benutze ich PHP in Kombination mit MySQL?

PHP in Kombination mit MySQL erlaubt das Erstellen von dynamischen Webseiten. Im Internet finden...

Was ist PHP?

PHP ist eine Scriptsprache mit der dynamische Webseiten erstellt werden können. Auf allen unseren...

PHP Versionen

Es stehen immer alle aktuellen PHP Versionen zur Auswahl und auch ältere Versionen zur Auswahl....