Prüf mal ob mail wirklich sendet.
PHP kann da große Schwierigkeiten machen.
PHP Code:
<?php
error_reporting(-1);
//mailpruefung
if (mail($to, $betreff, $body, $headers)) {
echo 'Wurde (wahrscheinlich) gesendet.';
} else {
echo 'Nicht gesendet.';
}
?>
Hier provozierst du einen Syntax error weil hinter den "" kein ; ist.
Sollte PHP eigentlich lauthals drüber stolpern.
Vielleicht ist auf deinem Server das error_reporting standardmäßig aus.
Setz mal direkt nach dem ersten <?php in der Datei in einer neuen Zeile
error_reporting(-1); hin, dann sollten wirklich alle Fehler des Skripts ausgegeben werden.
Es liegt wahrscheinlich an dem fehlenden strichpunkt, da php eine Datei erstmal syntaktisch prüft bevor es die Datei abarbeitet.
Und wenn da etwas nicht stimmt, quittiert PHP den Dienst.
Im großen Ganzen würde ich den PHP Code so ändern:
PHP Code:
<?php
error_reporting(-1);
if (isset($_POST['submit'], $_POST['name'], $_POST['mail'], $_POST['nachricht'])) {
$name = $_POST["name"];
$mail = $_POST["mail"];
$nachricht = $_POST["nachricht"];
$to = "DIE EMAIL";
$betreff = "Nachricht über Kontakformular";
$body = "Von: $name \n eMail: $mail\n\n $nachricht";
$headers = "From: $mail";
if (mail($to, $betreff, $body, $headers)) {
echo 'Wahrscheinlich gesendet.';
} else {
echo 'Es gab da einen Fehler.';
}
} else {
echo "Bitte alle felder ausfüllen";
}
?>
Das sollte auch die kleineren E_WARNINGs und E_NOTICEs ausschalten.
NullPointerException
@Edit: Sorry, das darüber hab ich nicht gesehen