susehome: Einfacher Formmailer

Beitrag lesen

Hallo zusammen,

ich habe den hier zu findenden PHP Formailer Link zu Formmailer heute mal ausprobieren wollen.

Mein bisheriger wurde als Spamschleuder missbraucht.

Es habe ein Problem bei dem hoffentlich jemand Rat weiß. Aber erstmal der Reihe nach:

Ich habe das Script Original 1:1 übernommen und nur mit den nötigen Variablen wie zieladresse, absenderadresse und urlDankeSeite gefüttert. Ich wollte also erstmal auf Funktion testen und später den restlichen HTML-Code auf meine Bedürfnisse anpassen.

So, also hochgeladen die Seite kann aufgerufen und ausgefüllt werden. Klicke ich auf senden ... passiert nix bzw. er müsste ja auf danke.html wechseln. Stattdessen folgt "Die Website kann diese Seite nicht anzeigen".

Weiterhin kommt die Mail nicht an der gewünschten Zieladresse an.

Wo liegt hier das Problem?

Wie gesagt. PHP läuft auf dem Server und mit dem alten Mailformular hats auch funktioniert.

Die Variablen habe ich korrekt ausgefüllt und die Adressen sind auch tatsächlich vorhanden (E-Mail Adressen existieren).

Hier mein geringfügig geänderter Code (nicht mit Originaldomainname):

<?php  
  
/**  
 * Konfiguration  
 *  
 * Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!  
 *  
 * Das Skript bitte in UTF-8 abspeichern (ohne BOM).  
 */  
  
// An welche Adresse sollen die Mails gesendet werden?  
$zieladresse = 'info@meinedomain.de';  
  
// Welche Adresse soll als Absender angegeben werden?  
// (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)  
$absenderadresse = 'info@meinedomain.de';  
  
// Welcher Absendername soll verwendet werden?  
$absendername = 'Formmailer';  
  
// Welchen Betreff sollen die Mails erhalten?  
$betreff = 'Feedback';  
  
// Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?  
// Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!  
$urlDankeSeite = 'http://www.meinedomain.de/danke.html';  
  
// Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?  
$trenner = ":\t"; // Doppelpunkt + Tabulator  
  
/**  
 * Ende Konfiguration  
 */  
  
if ($_SERVER['REQUEST_METHOD'] === "POST") {  
  
	$header = array();  
	$header[] = "From: ".mb_encode_mimeheader($absendername, "utf-8", "Q")." <".$absenderadresse.">";  
	$header[] = "MIME-Version: 1.0";  
	$header[] = "Content-type: text/plain; charset=utf-8";  
	$header[] = "Content-transfer-encoding: 8bit";  
	  
    $mailtext = "";  
  
    foreach ($_POST as $name => $wert) {  
        if (is_array($wert)) {  
		    foreach ($wert as $einzelwert) {  
			    $mailtext .= $name.$trenner.$einzelwert."\n";  
            }  
        } else {  
            $mailtext .= $name.$trenner.$wert."\n";  
        }  
    }  
  
    mail(  
    	$zieladresse,  
    	mb_encode_mimeheader($betreff, "utf-8", "Q"),  
    	$mailtext,  
    	implode("\n", $header)  
    ) or die("Die Mail konnte nicht versendet werden.");  
    header("Location: $urlDankeSeite");  
    exit;  
}  
  
header("Content-type: text/html; charset=utf-8");  
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">  
    <head>  
        <title>Einfacher PHP-Formmailer</title>  
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    </head>  
    <body>  
    <h1>Beispielformular</h1>  
        <form action="" method="post">  
            <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->  
            <dl>  
                <dt>Ihr Name:</dt>  
                <dd><input type="text" name="Versender" /></dd>  
                <dt>Ihre E-Mail:</dt>  
                <dd><input type="text" name="E-Mail" /></dd>  
                <dt>Sie können:</dt>  
                <dd><input type="checkbox" name="kannwas[]" value="HTML" />HTML <input type="checkbox" name="kannwas[]" value="PHP" />PHP</dd>  
                <dt>Sie sind:</dt>  
                <dd><input type="radio" name="sexus" value="M" />Mann <input type="radio" name="sexus" value="Frau" />Frau</dd>  
                <dt>Sie mögen:</dt>  
                <dd><select name="Browser"><option value="Opera">Opera</option><option value="Mozilla">Mozilla</option></select></dd>  
                <dt>Bemerkungen:</dt>  
                <dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd>  
            </dl>  
            <!-- Ende der Beispielangaben -->  
            <p>  
            <input type="submit" value="Senden" />  
            <input type="reset" value="Zurücksetzen" />  
            </p>  
        </form>  
</body>  
</html>

könnte form action="" falsch sein? Haber auch schon form action=<?php print $_SERVER['PHP_SELF']; ?> und form action=Formularname.php versucht.

... bin ratlos!