• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular wird nicht versendet

SAMPRI

Neues Mitglied
Hallo,
ich habe eine Kontakseite mit einem alten Script aus diesem Forum erstellt.
Alles funktioniert, Ergebnis: "Die Nachricht wurde erfolgreich gesendet." aber
die eMail kommt leider nicht an.

Wo könnte der Fehler liegen???
___________________________________________________________________
HTML-Seite "versenden1"
<form action="versenden2.php" method="post">
<fieldset>
<label for="name">Name:</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="name" type="text" name="name" style="width: 177px"/>
<label for="email">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-Mail:&nbsp;&nbsp;&nbsp; </label>
&nbsp;<input id="email" type="text" name="email" style="width: 266px"/>
<label for="betreff"><br>Betreff:&nbsp;&nbsp;&nbsp;&nbsp; </label>
<input id="betreff" type="text" name="betreff" style="width: 563px"/>
<label for="nachricht"><br>Nachricht:</label>
<textarea id="nachricht" name="nachricht" style="height: 198px; width: 575px"></textarea><br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="senden" value="Senden"/>
</fieldset>
</form>

PHP-Seite "versenden2"
<?php
$mail_empfaenger = "[email protected]" ;
$mail_absender = "Kontaktformular";
$betreff = $_POST["betreff"] ;
$absatz = "\n" ;
$mail_text .= $_POST["name"].$absatz.$absatz.$_POST["email"].$absatz.$absatz.$_POST["nachricht"]."\n";
$mail_text = stripslashes($mail_text);
$mailmuster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";


if (isset($_POST["senden"])) {
if ($_POST["name"] != "" && $_POST["email"] != "" && preg_match($mailmuster, $_POST["email"]) != 0 && $_POST["betreff"] != "" && $_POST["nachricht"] != "" ) {

if(@mail($mail_empfaenger, $betreff, $mail_text, "From:" .$mail_absender)) {
echo "Die Nachricht wurde erfolgreich gesendet.";
}else{
echo "Auf Grund eines Fehlers kann die Mail nicht gesendet werden.";
}
}else{
echo "Bitte füllt die notwendigen Felder korrekt aus! <br/> (Achtet auf die Form der E-Mail Adresse!)";
}
}

?>
 
Werbung:
Hallo, bei mir fuktioniert zwar der Code aber es gibt auch hoster die eine Absender Adresse wollen und oder es landet in deinem SPAM Ordner. Versuch es mal so:

PHP:
<form action="index.php" method="post">
<fieldset>
<label for="name">Name:</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="name" type="text" name="name" style="width: 177px"/>
<label for="email">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-Mail:&nbsp;&nbsp;&nbsp; </label>
&nbsp;<input id="email" type="text" name="email" style="width: 266px"/>
<label for="betreff"><br>Betreff:&nbsp;&nbsp;&nbsp;&nbsp; </label>
<input id="betreff" type="text" name="betreff" style="width: 563px"/>
<label for="nachricht"><br>Nachricht:</label>
<textarea id="nachricht" name="nachricht" style="height: 198px; width: 575px"></textarea><br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="senden" value="Senden"/>
</fieldset>
</form>

<?php
$mail_empfaenger = "[email protected]" ;
$mail_absender = $_POST["email"];
$betreff = $_POST["betreff"] ;
$absatz = "\n" ;
$mail_text .= $_POST["name"].$absatz.$absatz.$_POST["email"].$absatz.$absatz.$_POST["nachricht"]."\n";
$mail_text = stripslashes($mail_text);
$mailmuster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";


if (isset($_POST["senden"])) {
if ($_POST["name"] != "" && $_POST["email"] != "" && preg_match($mailmuster, $_POST["email"]) != 0 && $_POST["betreff"] != "" && $_POST["nachricht"] != "" ) {

if(@mail($mail_empfaenger, $betreff, $mail_text, "From:" .$mail_absender)) {
echo "Die Nachricht wurde erfolgreich gesendet.";
}else{
echo "Auf Grund eines Fehlers kann die Mail nicht gesendet werden.";
}
}else{
echo "Bitte füllt die notwendigen Felder korrekt aus! <br/> (Achtet auf die Form der E-Mail Adresse!)";
}
}

?>

Ciao Alex
 
Wo hast du denn genau dieses Formular her? Standen in der Quelle auch die ganzen sinnlosen "&nbsp;"?
Entferne mal das @ vor der Mail-Funktion und schau, ob eine Fehlermeldung ausgespuckt wird.

MfG Icy
 
Werbung:
Hallo Alex,
danke für Deine Antwort.
Du schreibst: "bei mir fuktioniert zwar der Code"
Wird die email denn versendet?

Hallo Icy,
danke auch Dir.Welches @ meinst Du? "if(@mail...." ??
VG SAMPRI
 
Werbung:
Hallo,
leider funktionieren beide vorgeschlagenen Lösungen nicht.

Ich habe das @ weggelassen: "Die Nachricht wurde erfolgreich gesendet"
Ich habe meine Absenderadresse eingegeben: "Die Nachricht wurde erfolgreich gesendet"
Also keine Fehlermeldung. Vielleicht ist ja mein Skript falsch? Ich habe es aber aus einem Beitrag von 2008.


Da ich noch ein Neuling bin meine Frage: Soll ich mich damit ans PHP-Forum wenden? HTML scheint ja in Ordnung zu sein.

M f G SAMPRI:?:
 
Hallo Sampari,

Du hast in deinem Code folgendes:
PHP:
$mail_absender = "Kontaktformular";
Und:
PHP:
"From:" .$mail_absender

Jetzt kann dein Emailaccount nur Emails von einer Emailadresse erhalten. In deinem Fall bekommst du quasi eine Email von dem Absender des Kontaktformulars.


Webana hat diesen Fehler bereits korrigiert.
PHP:
$mail_absender = $_POST["email"];

Zusaätzliche Optionen die du mit einem Mailclient (Outlook etc) machen kannst geht ebenfalls via PHP

PHP:
// --- zusätzliche Header ---
//$headers .= "To: Hauptempfaenger <[email protected]>"; 
  //$headers .= "From: $vorname $nachname <$email>\r\n"; 
  //$headers .= "Cc: $vorname $nachname <$email>\r\n"; 
  //$headers .= "Bcc: [email protected]\r\n";
Und das eigentliche versenden:
[/PHP]

// HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!
if(mail("Empfaenger <[email protected]>", $mailbetreff, $MailBody, $headers)){
echo "Vielen Dank für Ihre eMail!</p>";
} else {
echo "Ein Fehler ist aufgetreten!</p>";
}[/PHP]

Du kannst den Empfänger wie bislang direkt bei mail(..) angeben oder eben im header.
 
Kontaktformular wird versendet

Hallo,
danke für die Hilfe.
Es lag an der PHP-Version.
Habe jetzt PHP5.3 und damit funktioniert es.

M f G SAMPRI

:D
 
Werbung:
Kontaktformular

Falls es nicht an deinem Hoster liegt, kannst du ja dieses einfache Script ausprobieren:

Kontaktformular | NeTools

MfG,

Dani

Hallo,
ich habe eine Kontakseite mit einem alten Script aus diesem Forum erstellt.
Alles funktioniert, Ergebnis: "Die Nachricht wurde erfolgreich gesendet." aber
die eMail kommt leider nicht an.

Wo könnte der Fehler liegen???
___________________________________________________________________
HTML-Seite "versenden1"
<form action="versenden2.php" method="post">
<fieldset>
<label for="name">Name:</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input id="name" type="text" name="name" style="width: 177px"/>
<label for="email">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-Mail:&nbsp;&nbsp;&nbsp; </label>
&nbsp;<input id="email" type="text" name="email" style="width: 266px"/>
<label for="betreff"><br>Betreff:&nbsp;&nbsp;&nbsp;&nbsp; </label>
<input id="betreff" type="text" name="betreff" style="width: 563px"/>
<label for="nachricht"><br>Nachricht:</label>
<textarea id="nachricht" name="nachricht" style="height: 198px; width: 575px"></textarea><br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="senden" value="Senden"/>
</fieldset>
</form>

PHP-Seite "versenden2"
<?php
$mail_empfaenger = "[email protected]" ;
$mail_absender = "Kontaktformular";
$betreff = $_POST["betreff"] ;
$absatz = "\n" ;
$mail_text .= $_POST["name"].$absatz.$absatz.$_POST["email"].$absatz.$absatz.$_POST["nachricht"]."\n";
$mail_text = stripslashes($mail_text);
$mailmuster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";


if (isset($_POST["senden"])) {
if ($_POST["name"] != "" && $_POST["email"] != "" && preg_match($mailmuster, $_POST["email"]) != 0 && $_POST["betreff"] != "" && $_POST["nachricht"] != "" ) {

if(@mail($mail_empfaenger, $betreff, $mail_text, "From:" .$mail_absender)) {
echo "Die Nachricht wurde erfolgreich gesendet.";
}else{
echo "Auf Grund eines Fehlers kann die Mail nicht gesendet werden.";
}
}else{
echo "Bitte füllt die notwendigen Felder korrekt aus! <br/> (Achtet auf die Form der E-Mail Adresse!)";
}
}

?>
 
Zurück
Oben