Mail funktioniert nicht :(

Raptor72

Mitglied
Hi Leutz,

so langsam werde ich hier Dauergast aber dafür ist ja das Forum auch da, wenn man eben Probleme hat.
Ich habe mal wieder eines und zwar funktioniert es bei mir nicht eine Mail nach einer Anmeldung zu verschicken und ich weiß nicht mehr wo ich suchen soll bzw. was falsch ist, habe schon gegoogelt wie wild aber die Syntax stimmt doch. :rolleyes::rolleyes::rolleyes:

Oder kann man das so garnicht schreiben, denn alles andere in dem Script funktioniert einwandfrei ohne Probleme, auch bei der Mailfunktion zeigt er mir zumindest keinen Fehler an. :rolleyes:

PHP:
<?php

  $mailadr = trim($_POST["mailadr"]);
  $password = $_POST["password"];
  $password_repeat = $_POST["password_repeat"];
  $username = $_POST["username"];
  
  if($password != $password_repeat OR $username == "" OR $password == "" OR $mailadr == "")
  {

    echo'<script  language="javascript" type="text/javascript">alert ("Bitte vollständig ausfüllen !");';
    echo'history.back();</script>';
    exit();
  }
  
  $password = md5($password);
  
  $result = mysql_query("SELECT id FROM mitglieder WHERE username like '$username'");
  $menge = mysql_num_rows($result);
  
  if($menge == 0)
  {
     $eintrag = "INSERT INTO mitglieder (datum_regi, username, mailadr) VALUES ('$datum_regi', '$username', '$mailadr')";

     $eintragen = mysql_query($eintrag);
     
     if($eintragen == true)
     {
$abfrage = "SELECT `mailadr` FROM `mitglieder` WHERE `username` = '".$username."'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
         
$empfaenger = $row->mailadr;
$absendername = "Homepage Name";
$absendermail = "Meine Email";
$betreff = "Betreff";
$text = "Hier der Text ...";
mail($empfaenger, $betreff, $text, "From: $absendername");
         
?>
         <script language="javascript" type="text/javascript">alert ("Persönliche Daten erfolgreich gespeichert !");
        setTimeout("location.href='index.php'", 10);</script>
<?php
     }
     else
     {

       echo'<script language="javascript" type="text/javascript">alert ("Fehler beim Speichern !");</script>';
       echo'<script>history.back();</script>';
       exit();
     }
     
  }
else
{
       echo'<script language="javascript" type="text/javascript">alert ("Benutzername schon vorhanden !");</script>';
       echo'<script>history.back();</script>';
       exit();
}
 
}   
  
?>

Vieleicht habt ihr ja eine Idee, ich habe zumindest momentan keine mehr :(

Gruß Sven
 
Bei "From:" muss eine gültige eMail Adresse stehen, sonst verweigern viele Systeme den Empfang der Nachricht.

zB:
From: Foo Bar <no-reply@example.com>

Der Header sieht generell etwas mager aus.
 
Hatte schonmal versucht direkt eine Mailadresse einzugeben, aber funktionierte auch nicht, daher habe ich ja grad keinen Plan mehr was denn falsch ist :-(
 
Mach mal

PHP:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);

ganz oben rein. Vermutung:

Du hast kein Resultset aus mysql_query() bekommen, und siehst den Fehler nicht, weil PHP ihn nicht anzeigen darf. Generell: Verwende mysql_error() hinter mysql_query():

PHP:
$resultset = mysql_query( $sql ) or die( mysql_error() );

Das hilft ungemein bei der Fehlersuche. Wenn es da keinen Fehler gibt, war wenigstens das SQL richtig und das kann man dann als Ursache ausschließen.
 
Jap, denke du hast Recht das kein Resultat aus mysql_query kommt, frag mich zwar warum aber scheint es zu sein, denn er gibt mir dies zurück für $resultset ...
Notice: Undefined variable: sql in C:\xampp\htdocs\Sven Homepage\registrieren.php on line 272
Query was empty

Bei error_reporting zeigt er nichts an, da scheint alles ok zu sein.

Line 272 ist
$resultset = mysql_query( $sql ) or die( mysql_error() );


Also Query was empty zeigt er mir genau an bei resultset
 
Zuletzt bearbeitet:
Das war nur ein Beispiel, wie du es implementieren solltest. error_reporting() setzt den Fehler-Anzeige-Level, das zeigt auch nichts an.

Hier noch mal ein Beispiel auf deinen Code bezogen:

PHP:
$result = mysql_query("SELECT id FROM mitglieder WHERE username like '$username'") or die (mysql_error());
 
Ja ok danke dir, werde es in Zukunft mit einfühen aber wie bekomme ich es jetzt hin das es funktioniert bzw. warum gibt er mir bei der Abfrage kein Ergebnis.
 
Ich glaube ich weiß es, kann es sein das man zwingend einen SMTP Server braucht zum Mail versenden, ich benutze Xampp und habe gerade gesehen das SMTP nicht aktiv ist, weiß allerdings auch nicht wie man es aktivieren kann.

Errorlog weiß ich nicht wo das gespeichert ist.
 
Du kannst in der php.ini einen SMTP-Server eintragen (z.B. den von GMX).

Das Errorlog des Apachen findest du i.d.R. im Apache-Installationsordner da unter "logs/error.log" oder der gleichen.
 
Zurück