PHPMailer mit Plesk Onyx

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

  • PHPMailer mit Plesk Onyx

    Hallo,


    ich hab eine Frage.

    Ich habe folgendes Skript für meine Webseite geschrieben, das den PHPMailer nutzt:


    Code:
    $mail = new PHPMailer;             
    
    $mail->isSMTP();             
    
    $mail->SMTPDebug = 1; # 0 off, 1 client, 2 client y server             
    
    $mail->CharSet  = 'UTF-8';             
    
    $mail->Host = 'mail.....de';             
    
    $mail->Port = 25;             
    
    $mail->SMTPSecure = 'tls'; # SSL is deprecated             
    
    $mail->SMTPOptions = array (                 
    
       'ssl' => array(                     
    
       'verify_peer'  => true,                     
    
       'verify_depth' => 3,                     
    
       'allow_self_signed' => true,                     
    
       'peer_name' => 'Plesk',               
    
    ));             
    
    $mail->SMTPAuth = true;            
    
    $mail->Username = 'mail@....de';             
    
    $mail->Password = '...';                          //Recipients             
    
    $mail->setFrom($_POST['email'], $_POST['fullname']);             
    
    $mail->addReplyTo($_POST['email'], $_POST['fullname']);                          //Content             
    
    $mail->isHTML(true);                                  // Set email format to HTML             
    
    $mail->Subject = 'Anfrage vom ' . date("d.m.Y H:i");            
    
    $mail->Body    = utf8_decode(nl2br($_POST['message']));             //$mail->AltBody = utf8_decode($_POST['message']);                          
    
    $mail->send();
    Dieser Code ist mit try-/catch umschlossen.

    Wenn ich nun das Skript laufen lasse, bekomme ich keine Fehlermeldung.

    Allerdings kommt nichts beim Empfänger an. Keine einzige Email kommt von dem PHP Skript bei mir an. Andere E-Mails gehen, wie zum Beispiel Google Mail, etc.

    Nun nutze ich Plesk Onyx für den Webserver (eine Automatisierungssoftware für Server). Könnte da ein Zusammenhang liegen? Wenn ja, was muss ich tun?

    Ich bin neu in Plesk...
    Zuletzt geändert von ubik89; 17.11.2019, 16:06.

  • #2
    Dreh das Debugging von PHPMailer voll auf und schau nach, was passiert.

    Kommentar


    • #3
      Zitat von h3ll Beitrag anzeigen
      Dreh das Debugging von PHPMailer voll auf und schau nach, was passiert.

      Hallo,


      hab ich gemacht. Sowohl


      Code:
      $mail->SMTPDebug = 2;

      als auch



      Code:
      $mail->SMTPDebug = 1;

      liefern keine Fehler.


      Es scheint so, als ob die E-Mail gesendet wurde, aber nicht ankommt. Ich habe auch keinen Spam Filter angeschaltet oder ähnliches.

      Kommentar


      • #4
        Zitat von ubik89 Beitrag anzeigen
        liefern keine Fehler.
        Sondern? Was exakt ist die Debug-Ausgabe?

        Kommentar


        • #5
          Es wird nichts ausgegeben... Hab alle Debug Mode ausprobiert.


          Es scheint so, als ob die E-Mail gesendet wurdet wurde, aber nichts kommt am Server an.

          Kommentar


          • #6
            Zitat von ubik89 Beitrag anzeigen
            Es wird nichts ausgegeben... Hab alle Debug Mode ausprobiert.
            Dann wird der Code wohl nicht ausgeführt.

            Zitat von ubik89 Beitrag anzeigen
            Es scheint so, als ob die E-Mail gesendet wurdet wurde, aber nichts kommt am Server an.
            Nein, wenn die Mail gesendet wird, gibt es auch Debug-Ausgaben mit einer Erfolgsmeldung. Da das nicht der Fall ist, wird wohl auch nichts versendet.

            Kommentar


            • #7
              Okay...


              Aber warum wird dann keine Exception ausgeworfen? Eigentlich habe ich den Code folgendermaßen mit try-catch umrandet:


              Code:
              $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
                      try {
                          //Server settings
                          
                          $mail = new PHPMailer;
                          $mail->isSMTP();
                          $mail->SMTPDebug = 2; # 0 off, 1 client, 2 client y server
                          $mail->CharSet  = 'UTF-8';
                          $mail->Host = 'mail.....de';
                          $mail->Port = 25;
                          $mail->SMTPSecure = 'tls'; # SSL is deprecated
                          $mail->SMTPOptions = array (
                              'ssl' => array(
                                  'verify_peer'  => true,
                                  'verify_depth' => 3,
                                  'allow_self_signed' => true,
                                  'peer_name' => 'Plesk',
                              )
                          );
                          $mail->SMTPAuth = true;
                          $mail->Username = 'mail@....de';
                          $mail->Password = '...';
                         
                          //Recipients
                          $mail->setFrom($_POST['email'], $_POST['fullname']);
                          $mail->addReplyTo($_POST['email'], $_POST['fullname']);
                          
                          //Content
                          $mail->isHTML(true);                                  // Set email format to HTML
                          $mail->Subject = 'Anfrage vom ' . date("d.m.Y H:i");
                          $mail->Body    = utf8_decode(nl2br($_POST['message']));
                          //$mail->AltBody = utf8_decode($_POST['message']);
                          
                          $mail->send();
                          
                          $error = false;
                      } catch (Exception $e) {
                          
                          $error = true;
                      }
              Wenn $error = false ist, dann wird auf meiner Webseite angezeigt, dass die E-Mail gesendet wurde.


              Kann mir jemand helfen, den PHP Code richtig zu schreiben, dass die E-Mail trotzdem gesendet wird?


              Ich hab ein Ubuntu 18.04 mit Plesk Onyx am Laufen. Der vServer liegt bei Strato.


              Die E-Mailkonfiguration ist SMTP-mäßig auf StartTLS eingestellt und die Verschlüsselung für das Passwort ist md5-digest (so steht es jedenfalls in meinem Mailclienten Evolution). Die IP Adresse ist gewhitelistet.
              Zuletzt geändert von ubik89; 18.11.2019, 16:23.

              Kommentar


              • #8
                Weil du $mail mit new PHPMailer() und nicht mit new PHPMailer(true) befüllst.

                Und was ist jetzt mit den Debug-Ausgaben?

                Kommentar


                • #9
                  Hallo,


                  die Debug Ausgabe ist jetzt:


                  Code:
                  SMTP -> FROM SERVER:220 ....net ESMTP Postfix (Ubuntu)  
                  SMTP -> FROM SERVER: 250-....net 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8  
                  SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS  
                  
                  [B]Warning[/B]:  stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in ...

                  Und hinter der Meldung gibt es eine Zeile komische Zeichen...

                  Kommentar


                  • #10
                    Wie wärs mit ein wenig Selbstinitiative?

                    Erster Treffer mit Google:

                    https://stackoverflow.com/a/28759959

                    Kommentar


                    • #11
                      Leider hat das nicht geholfen.


                      Aber es muss doch an Plesk Onyx liegen. Das ist eine Software für eine Serververwaltung.


                      Wobei, ich habe die IP whitegelistet und es funktioniert trotzdem nicht...

                      Kommentar


                      • #12
                        Was hat das bitte mit irgendwelchen Whitelists zu tun?

                        Entweder ist SSL auf deinem Webserver oder dem Mail-Server nicht richtig konfiguriert. Von SSL-Konfigurationen habe ich allerdings überhaupt keine Ahnung. Ich lass das immer Server-Admins machen, die Ahnung von der Materie haben.
                        Zuletzt geändert von h3ll; 19.11.2019, 15:52.

                        Kommentar


                        • #13
                          Hallo,


                          das Problem hat sich gelöst.

                          Danke für den Hinweis für SSL Zertifikate.


                          Der E-Mailserver hatte kein Zertifikat. Ohne Zertifikate keine E-Mails...

                          Vielen Dank!

                          Kommentar

                          Lädt...
                          X