PHPMailer mit Plesk Onyx

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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...
    Last edited by ubik89; 17-11-2019, 16:06.

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

    Comment


    • #3
      Originally posted by h3ll View Post
      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.

      Comment


      • #4
        Originally posted by ubik89 View Post
        liefern keine Fehler.
        Sondern? Was exakt ist die Debug-Ausgabe?

        Comment


        • #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.

          Comment


          • #6
            Originally posted by ubik89 View Post
            Es wird nichts ausgegeben... Hab alle Debug Mode ausprobiert.
            Dann wird der Code wohl nicht ausgeführt.

            Originally posted by ubik89 View Post
            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.

            Comment


            • #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.
              Last edited by ubik89; 18-11-2019, 16:23.

              Comment


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

                Und was ist jetzt mit den Debug-Ausgaben?

                Comment


                • #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...

                  Comment


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

                    Erster Treffer mit Google:

                    https://stackoverflow.com/a/28759959

                    Comment


                    • #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...

                      Comment


                      • #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.
                        Last edited by h3ll; 19-11-2019, 15:52.

                        Comment


                        • #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!

                          Comment

                          Working...
                          X