[jQuery] E-Mail Versand via AJAX kommt nicht an

Cappaja

Erfahrenes Mitglied
Hallo,

ich möchte den E-Mail Versand via AJAX erfolgen lassen, mit method="post". Wenn das Formular korrekt ausgefüllt wurde bleibt die state-Variable auf true und der AJAX- Aufruf wird wie folgt ausgehführt:

Javascript:
$("form").submit(function(event) {
    event.preventDefault();
    var state = true;
    var data = $(this).serializeArray();
...
...
...
    if(state == true) {
        $.ajax({
            type: $("form").attr("method"),
            url: $("form").attr('action'),
            data: data,
            success: function(result) {
                if(result) {
                    $("form").hide().load("contents/message.php").fadeIn(2000);
                    alert(result);
                }
                else {
                    alert(result);
                }             
            }
        });
    }
});

Als result liefert mir das PHP-Skript alle Daten soweit korrekt, allerdings empfange ich in meinem E-Mail-Konto keinerlei Nachricht (getestet im lokalen und Online-Betrieb). Bevor Kommentare bezüglich E-Mail Header Injection aufkommen, den Schutz davor habe ich absichtlich weggelassen ;)

PHP:
$email = "meine_email@gmx.de";
$subject = "Anfrage von ".($_POST['name']);
$message = "Name: ".$_POST['name']."\n".
           "E-Mail: ".$_POST['email']."\n".
           "Phone/Mobile: ".$_POST['phone']."\n".
           "Place of Event: ".$_POST['place']."\n".
           "Event: ".$_POST['event']."\n".
           "Message: ".$_POST['message'];

echo $subject."\n";
echo $message;

mail($email, $subject, $message);

Wäre super wenn mir jemand weiterhelfen könnte, denn ich bin mit meinem Rat so langsam am Ende :(

Beste Grüße

Cappaja
 
Zuletzt bearbeitet von einem Moderator:
Offline(lokal) wird das versenden der Mails sowieso nicht funktionieren. Wenn dein PHP Skript soweit alle Daten richtig erhält brauchst du in deinem Javascript Code den Fehler nicht suchen.

Ich würd sagen da fehlt etwas:

mail($empfaenger, $betreff, $text, $from);
 
Warum soll es lokal nicht funkttionieren? Das verstehe ich jetzt nicht so ganz, online funktioniert es ja genau so wenig. Den Mail-Aufruf hab ich doch in meinem Beispielcode in der letzten Zeile, Übergabeparameter $from ist soweit ich die API richtig verstanden habe, optional.

Grüße
 
Naja, lokal kann es sicherlich funktionieren nur brauchst du dann halt ein installiertes und funktionierendes Mailsystem welches normalerweise bei Webspaceanbietern schon vorinstalliert ist. Wenn du dir sowas auf deinem Rechner installierst und entsprechend konfigurierst kann es ohne Probleme funktionieren.

Auszug von php.net:

Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten. Dies kann entweder durch Setzen eines additional_headers-Parameters oder durch Setzen eines Standardwertes in der php.ini geschehen.
 
Ich habe ein funktionierendes Mailsystem und ich konnte in früheren Projekten schon lokal an meine E-Mail Daten senden aber eben ohne AJAX. Den From-Header hatte ich auch schon drin, hat aber ebenfalls nichts gebracht. Liegt bei mir ja in $_POST['email'].
 

Neue Beiträge

Zurück