Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mail() funktioniert nicht mehr

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] mail() funktioniert nicht mehr

    Hallo,
    ich verwende im Zuge eines Registrationsverfahrens die Funktion mail(). Neuerdings kommt aber keine Mail mehr an, es kommen auch keine Fehler beim Ausführen.
    Ich habe auf dem Server vor kurzem postfix und dovecot aufgesetzt, evtl. liegt es daran.
    Um eine möglichst unaufwendige Testplattform zum Finden des Problems verwenden zu können, habe ich einfach mal das folgende kleine Script geschrieben:
    PHP-Code:
    <?php
        mail
    ("meineadresse@provider.com"  "testmail"  "nachricht");
        echo 
    "ferig\n";
    ?>
    Es verursacht das o.g.Problem ohne weitere Fehlerausgaben.

    Wie kann ich mein Problem identivizieren und wie kann ich es beheben?

    lg arvid


  • #2
    Verwende eine Mailerklasse und du bist die Sorgen los.
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      Hallo Arvid
      Schon einmal in den Spam-Ordner geschaut?
      Ich verwende eigentlich immer den phpMailer. Dann hast du diese Probleme nicht.

      Gruss Reeko

      Kommentar


      • #4
        Im Spam is natürlich nichts drin.
        Ich schau mir den Link mal an. Außerdem habe ich unter dem Stichwort noch das hier gefunden. Was meint ihr dazu?

        edit: Bei dem was ich gefunden hab ist der Download nicht mehr verfügbar. :-/

        Kommentar


        • #5
          Ich hab mir phpmaier besorgt, installiert und ein kleines Script zum Testen zusammengesteckt:
          PHP-Code:
          <?php
              
          require_once("class.phpmailer.php");
              
          $mail = new PHPMailer();
              
          $mail->IsMail();
              
          $mail->AddAddress("meineadresse@provider.com");
              
          $mail->Subject "Test 1";
              
          $mail->Body "PHPMailer Test 1";
              if(!
          $mail->Send()){
                  echo 
          "Error sending: " $mail->ErrorInfo;;
              }else{
                echo 
          "Letter sent";
              }
          ?>
          Resultat ist das gleiche. Es kommt nichts an, es wird aber nach der Ausführung "Letter sent" angezeigt.

          Kommentar


          • #6
            Dann funktioniert der Server der die Mails empfangen soll wohl nicht richtig. Hast du mal versucht eine Mail von einem Freemail-Hoster zu schicken? Landen die Mails vllt. im Spamordner?
            You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

            Kommentar


            • #7
              Ich habe die Mail an gmail geschickt, es sollte also gehen. Ich hab deswegen auch extra bei gmx noch einen Account angelegt. Auch da geht es nicht. Im spam habe ich natürlich nachgesehen.

              Kommentar


              • #8
                Offenbar handelt es sich hier eher um das Thema "Wie administriere ich meinen Server." EIn PHP-Thema ist das nicht, und schon gar keines für das Fortgeschrittenen-Forum. Ich schiebe das mal zur Seite.
                :
                if ($var != 0) {
                  
                $var 0;

                Kommentar


                • #9
                  Das wichtigste hast Du aus dem Beispiel vergessen zu kopieren:

                  PHP-Code:
                  $mail->IsSMTP();  // telling the class to use SMTP
                  $mail->Host     "smtp.example.com"// SMTP server 
                  Ohne nutzt PHPMailer u.U. nämlich auch nur mail().
                  --
                  ^^ O.O
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Es funktioinert jetzt, vielen Dank für die Hilfe
                    Funktionierender Code:
                    PHP-Code:
                    <?php
                        
                    require_once("class.phpmailer.php");
                        function 
                    smtpmailer($to$from$from_name$subject$body) { 
                            global 
                    $error;
                            
                    $mail = new PHPMailer();  // create a new object
                            
                    $mail->IsSMTP(); // enable SMTP
                            
                    $mail->SMTPDebug 1;  // debugging: 1 = errors and messages, 2 = messages only
                            
                    $mail->SMTPAuth true;  // authentication enabled
                            
                    $mail->SMTPSecure 'ssl'// secure transfer enabled REQUIRED for Gmail
                            
                    $mail->Host 'smtp.gmail.com';
                            
                    $mail->Port 465
                            
                    $mail->Username 'myAccount@gmail.com';  
                            
                    $mail->Password 'myPW';           
                            
                    $mail->SetFrom($from$from_name);
                            
                    $mail->Subject $subject;
                            
                    $mail->Body $body;
                            
                    $mail->AddAddress($to);
                            if(!
                    $mail->Send()) {
                                
                    $error 'Mail error: '.$mail->ErrorInfo
                                return 
                    false;
                            } else {
                                
                    $error 'Message sent!';
                                return 
                    true;
                            }
                        }
                        
                    smtpmailer('myAccount@gmail.com''sender@provider.de''yourName''test mail message''Hello World!');
                    ?>
                    Ich denke es empfiehlt sich das Senden auf diese Weise im Hintergrund zu erledigen, d.h. das Ganze via Ajax aufzurufen, denn es dauert ein paar Sekunden, eh die Mail gesendet wird. Den Funktionsaufruf direkt zu integrieren würde also eine unschöne Wartezeit mit sich bringen.

                    Kommentar


                    • #11
                      Zitat von arvid Beitrag anzeigen
                      Es funktioinert jetzt, vielen Dank für die Hilfe
                      Funktionierender Code:
                      PHP-Code:
                      <?php
                          
                      require_once("class.phpmailer.php");
                          function 
                      smtpmailer($to$from$from_name$subject$body) { 
                              global 
                      $error;
                              
                      $mail = new PHPMailer();  // create a new object
                              
                      $mail->IsSMTP(); // enable SMTP
                              
                      $mail->SMTPDebug 1;  // debugging: 1 = errors and messages, 2 = messages only
                              
                      $mail->SMTPAuth true;  // authentication enabled
                              
                      $mail->SMTPSecure 'ssl'// secure transfer enabled REQUIRED for Gmail
                              
                      $mail->Host 'smtp.gmail.com';
                              
                      $mail->Port 465
                              
                      $mail->Username 'myAccount@gmail.com';  
                              
                      $mail->Password 'myPW';           
                              
                      $mail->SetFrom($from$from_name);
                              
                      $mail->Subject $subject;
                              
                      $mail->Body $body;
                              
                      $mail->AddAddress($to);
                              if(!
                      $mail->Send()) {
                                  
                      $error 'Mail error: '.$mail->ErrorInfo
                                  return 
                      false;
                              } else {
                                  
                      $error 'Message sent!';
                                  return 
                      true;
                              }
                          }
                          
                      smtpmailer('myAccount@gmail.com''sender@provider.de''yourName''test mail message''Hello World!');
                      ?>
                      Ich denke es empfiehlt sich das Senden auf diese Weise im Hintergrund zu erledigen, d.h. das Ganze via Ajax aufzurufen, denn es dauert ein paar Sekunden, eh die Mail gesendet wird. Den Funktionsaufruf direkt zu integrieren würde also eine unschöne Wartezeit mit sich bringen.
                      Das liegt daran das du auf einen externen SMTP Server zugreifst.

                      Wenn du shcon Postfix aufgesetzt hast, wieso versendest du die Mails nicht von deinem eigenem SMTP Server aus?
                      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                      Kommentar

                      Lädt...
                      X