Ankündigung

Einklappen
Keine Ankündigung bisher.

Emailversand über Office365

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

    Emailversand über Office365

    Ich versuche Mails von Edomi über den smtp.office365.com zu versenden, allerdings erfolglos.

    Hat das jemand von Euch am laufen?

    Ich bekomme die Fehlermeldung


    2022-05-09 08:43:21 008867 ? 2452 Datei: /usr/local/edomi/main/include/php/incl_mail.php | Fehlercode: 2 | Zeile: 20 | fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:[LF]error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol ERROR
    2022-05-09 08:43:21 009819 ? 2452 Datei: /usr/local/edomi/main/include/php/incl_mail.php | Fehlercode: 2 | Zeile: 20 | fsockopen(): Failed to enable crypto ERROR
    2022-05-09 08:43:21 009964 ? 2452 Datei: /usr/local/edomi/main/include/php/incl_mail.php | Fehlercode: 2 | Zeile: 20 | fsockopen(): unable to connect to ssl://smtp.office365.com:587 (Unknown error) ERROR
    2022-05-09 08:43:21 010030 ? 2452 EMAIL-Fehler: Socket konnte nicht geöffnet werden.
    In Edomi ist Port 587 und tls gewählt.

    Der benutzte User existiert und ist auch als Absendeadresse eingetragen.



    yum update ca-certificates habe ich auch ausgeführt.



    Gruß Hartwig

    #2
    Hier würde ich sagen, dass der Server die SSL-Version nicht unterstützt, welche der Client hier verwenden möchte.
    Welche EDOMI- und PHP-Version nutzt Du?

    Kommentar


      #3
      Ich denke, Port 587 macht STARTTLS und kein TLS....

      Kommentar


        #4
        STARTTLS ist kein Protokoll, sondern ein "Kommando", welches von einem Kommunikationsteilnehmer an seinen Kommunikationspartner gesendet wird, um mitzuteilen, dass die Kommunikation, per TLS, verschlüsselt erfolgen soll.
        Selbst wenn erst unverschlüsselt und dann per STARTTLS verschlüsselung verlangt wird, wird es TLS sein, welches die Verschlüsselung bildet.

        Kommentar


          #5
          Hi

          Zitat von Glotzkowski Beitrag anzeigen
          STARTTLS ist kein Protokoll, sondern ein "Kommando"
          Naja, er bezieht sich wohl darauf, dass das in den Settings der üblichen Verdächtigen unterschiedliche Ports sind, je nachdem ob man nun "TLS" oder "STARTTLS" konfiguriert. SSL/TLS verwendet per Default Port 465 und STARTTLS Port 587.
          Kind regards,
          Yves

          Kommentar


            #6
            Na ja, die Kommunikation via STARTTLS is erstmal unverschlüssellt und erst nachdem das Kommando STARTTLS abgesetzt wird, wird die TLS-Verbindung ausgehandelt. Daher schlägt der Verbindungsaufbau mit SSL natürlich fehl.


            Grüsse
            Matthias
            Zuletzt geändert von maque; 09.05.2022, 15:16.

            Kommentar


              #7
              Ich denke es liegt an der EDOMI Implementierung von STARTTLS.
              Es wird bei Verbindungsaufbau direkt ein STARTTLS gesendet.
              smtp.office365.com:587 möchte aber zuerst den EHLO <domain> Befehl und erst danach STARTTLS:

              So macht es EDOMI (Zuerst STARTTLS ...)

              Code:
              [root@edomi-dev ~]# telnet smtp.office365.com 587
              Trying 52.97.135.66...
              Connected to smtp.office365.com.
              Escape character is '^]'.
              220 AS9PR06CA0278.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mo n, 9 May 2022 14:34:51 +0000
              STARTTLS
              503 5.5.2 Send hello first [AS9PR06CA0278.eurprd06.prod.outlook.com]

              So gehts richtig: (Zuerst EHLO, dann STARTTLS)

              Code:
              [root@edomi-dev ~]# telnet smtp.office365.com 587
              Trying 52.98.208.98...
              Connected to smtp.office365.com.
              Escape character is '^]'.
              220 AS9PR06CA0334.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 9 May 2022 14:36:22 +0000
              EHLO edomi.de
              250-AS9PR06CA0334.outlook.office365.com Hello [85.182.220.191]
              250-SIZE 157286400
              250-PIPELINING
              250-DSN
              250-ENHANCEDSTATUSCODES
              250-STARTTLS
              250-8BITMIME
              250-BINARYMIME
              250-CHUNKING
              250 SMTPUTF8
              STARTTLS
              220 2.0.0 SMTP server ready
              Damit läuft STARTTLS bei EDOMI ins Leere und es wird vermutlich vom Server SSL/TLS erwartet.
              Kann man auch per openssl nachstellen:

              Mit TLS/SSL: (=> Hier taucht genau der Fehler aus dem EDOMI Log auf !!!)

              Code:
              [root@edomi-dev ~]# openssl s_client -connect smtp.office365.com:587
              CONNECTED(00000003)
              140321000478608:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
              ---
              no peer certificate available
              ---
              No client certificate CA names sent
              ---
              SSL handshake has read 7 bytes and written 289 bytes
              ---
              New, (NONE), Cipher is (NONE)
              Secure Renegotiation IS NOT supported
              Compression: NONE
              Expansion: NONE
              No ALPN negotiated
              SSL-Session:
              Protocol : TLSv1.2
              Cipher : 0000
              Session-ID:
              Session-ID-ctx:
              Master-Key:
              Key-Arg : None
              Krb5 Principal: None
              PSK identity: None
              PSK identity hint: None
              Start Time: 1652107249
              Timeout : 300 (sec)
              Verify return code: 0 (ok)
              ---

              Und hier korrektes STARTTLS:

              Code:
              [root@edomi-dev ~]# openssl s_client -starttls smtp -connect smtp.office365.com:587
              CONNECTED(00000003)
              depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
              verify return:1
              depth=1 C = US, O = DigiCert Inc, CN = DigiCert Cloud Services CA-1
              verify return:1
              depth=0 C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = outlook.com
              verify return:1
              ---
              Certificate chain
              0 s:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=outlook.com
              i:/C=US/O=DigiCert Inc/CN=DigiCert Cloud Services CA-1
              1 s:/C=US/O=DigiCert Inc/CN=DigiCert Cloud Services CA-1
              i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
              ---
              Server certificate
              -----BEGIN CERTIFICATE-----
              MIIIpDCCB4ygAwIBAgIQCKADw/Or6WqnCIVhHvaGQjANBgkqhkiG9w0BAQsFADBL
              MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMS UwIwYDVQQDExxE
              aWdpQ2VydCBDbG91ZCBTZXJ2aWNlcyBDQS0xMB4XDTIxMTIyMj AwMDAwMFoXDTIy
              MTIyMjIzNTk1OVowajELMAkGA1UEBhMCVVMxEzARBgNVBAgTCl dhc2hpbmd0b24x
              EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdC BDb3Jwb3JhdGlv
              bjEUMBIGA1UEAxMLb3V0bG9vay5jb20wggEiMA0GCSqGSIb3DQ EBAQUAA4IBDwAw
              ggEKAoIBAQCx8iKoaXhfNV7nuguyQXV8YrfJ0IPCtmppi1ll+5 CgQPEcd9K8v0le
              bOsMHwYFwSzmqWorZVWtm8VSbJB+ZKZrmsbbPhVOjqRUMeb77Y wA6h4DzZV3rWC3
              WopQBzO1DANeNF7RuF+sjikXzD+TWFPsPuqEJjZRYFo+cDfsYw FB95tPYkQ61S4p
              1JA6cwpYnCuCSqXGEavRoQ6e6YDMQYNXXAoWs7Nr0VOCtYJV/pOWtCZqHzsYydzG
              J/sqVaXuDYf+HjFL/tha94vGnWLgAITdqZorMKi/sSQ3dd63SIWfwJnKYD85R2cR
              GTW+LZY4Up8FsSb9yKhYxi494e3Thj3VAgMBAAGjggVjMIIFXz AfBgNVHSMEGDAW
              gBTdUdCiMXOpc66PtAF+XYxXy5/w9zAdBgNVHQ4EFgQUC662b5wqMtyvz2nhIYV0
              oqnG/jMwggIQBgNVHREEggIHMIICA4IWKi5pbnRlcm5hbC5vdXRsb29 rLmNvbYIN
              Ki5vdXRsb29rLmNvbYILb3V0bG9vay5jb22CDW9mZmljZTM2NS 5jb22CDyoub2Zm
              aWNlMzY1LmNvbYIXKi5vdXRsb29rLm9mZmljZTM2NS5jb22CDC oub2ZmaWNlLmNv
              bYISb3V0bG9vay5vZmZpY2UuY29tghRzdWJzdHJhdGUub2ZmaW NlLmNvbYIbYXR0
              YWNobWVudC5vdXRsb29rLmxpdmUubmV0gh1hdHRhY2htZW50Lm 91dGxvb2sub2Zm
              aWNlLm5ldIIgYXR0YWNobWVudC5vdXRsb29rLm9mZmljZXBwZS 5uZXSCFmF0dGFj
              aG1lbnRzLm9mZmljZS5uZXSCFiouY2xvLmZvb3RwcmludGRucy 5jb22CFioubnJi
              LmZvb3RwcmludGRucy5jb22CHWNjcy5sb2dpbi5taWNyb3NvZn RvbmxpbmUuY29t
              giFjY3Mtc2RmLmxvZ2luLm1pY3Jvc29mdG9ubGluZS5jb22CGH N1YnN0cmF0ZS1z
              ZGYub2ZmaWNlLmNvbYIaYXR0YWNobWVudHMtc2RmLm9mZmljZS 5uZXSCCioubGl2
              ZS5jb22CFm1haWwuc2VydmljZXMubGl2ZS5jb22CC2hvdG1haW wuY29tgg0qLmhv
              dG1haWwuY29tMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
              KwYBBQUHAwIwgY0GA1UdHwSBhTCBgjA/oD2gO4Y5aHR0cDovL2NybDMuZGlnaWNl
              cnQuY29tL0RpZ2lDZXJ0Q2xvdWRTZXJ2aWNlc0NBLTEtZzEuY3 JsMD+gPaA7hjlo
              dHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRDbG91ZF NlcnZpY2VzQ0Et
              MS1nMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBg EFBQcCARYbaHR0
              cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMHwGCCsGAQUFBwEBBH AwbjAlBggrBgEF
              BQcwAYYZaHR0cDovL29jc3B4LmRpZ2ljZXJ0LmNvbTBFBggrBg EFBQcwAoY5aHR0
              cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0Q2xvdW RTZXJ2aWNlc0NB
              LTEuY3J0MAwGA1UdEwEB/wQCMAAwggF8BgorBgEEAdZ5AgQCBIIBbASCAWgBZgB1
              ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABfd 92KNcAAAQDAEYw
              RAIgK1OoayOTzmZhLBTA59kK4wDo6wrIN6cqkQF5aq+RRkoCID 9wliAcCpH5/xuw
              lbXhD802mYt6rTvhE28q46XI+JxMAHUAUaOw9f0BeZxWbbg3eI 8MpHrMGyfL956I
              QpoN/tSLBeUAAAF933Yo2QAABAMARjBEAiATdes8mfBPe7c6Jr5ugzs ah+pL1exf
              DS52v3nrer6BzAIgR+3KS+FiwwaHUGHSxN590BgyM+tpWTvXKO +Bew9E3LcAdgBB
              yMqx3yJGShDGoToJQodeTjGLGwPr60vHaPCQYpYG9gAAAX3fdi h4AAAEAwBHMEUC
              IQDlJfrDDM9dqLit2DyDbU2DHQ4s1KFC0RVLDhbgH/SV2gIgW2ruP4ypX4uzJLVI
              DNUycp/X622bLayb8GOPeR+W0uAwDQYJKoZIhvcNAQELBQADggEBAF8Sg/U5PslL
              xTvAa8fZDOomCB1vTbeW/0Hdhoo5GQqhavcKNpmlFMmIac5PsFnld/wAKrplyt6H
              OsJsO6iHnZG5FhoMlsSUAMyApcwPQS3kD9+zq15fjtWBPs2EGQ E9cF8Y4MkRhL4g
              kRlKqlcDs+Rs0pOAqzAcro9AO0VNIWtmmNhp5TBnoDIBoY5NOH wYaSairNlpE51B
              YEQJrXhJqcLHT+pDyqr8UdT/LE2qRRQCWcsM7gzu/AFJcJIbfl/lmX3DHJV/CmXP
              GkB/ICCFVD4qk2+OfaQk/QlZpGIokfiIlsVmVR8ik+z/v5A4XmYDOxrD0gY2DLYF
              HqZj57jM5ME=
              -----END CERTIFICATE-----
              subject=/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=outlook.com
              issuer=/C=US/O=DigiCert Inc/CN=DigiCert Cloud Services CA-1
              ---
              No client certificate CA names sent
              Client Certificate Types: RSA sign, DSA sign, ECDSA sign
              Requested Signature Algorithms: 0x04+0x08:0x05+0x08:0x06+0x08:RSA+SHA256:RSA+SHA38 4:RSA+SHA1:ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA1:DSA+SHA1:RSA+SHA512:ECDSA+SHA512
              Shared Requested Signature Algorithms: RSA+SHA256:RSA+SHA384:RSA+SHA1:ECDSA+SHA256:ECDSA+ SHA384:ECDSA+SHA1:DSA+SHA1:RSA+SHA512:ECDSA+SHA512
              Peer signing digest: SHA256
              Server Temp Key: ECDH, P-384, 384 bits
              ---
              SSL handshake has read 4374 bytes and written 494 bytes
              ---
              New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
              Server public key is 2048 bit
              Secure Renegotiation IS supported
              Compression: NONE
              Expansion: NONE
              No ALPN negotiated
              SSL-Session:
              Protocol : TLSv1.2
              Cipher : ECDHE-RSA-AES256-GCM-SHA384
              Session-ID: E03B000060F7E59B2EAE81D57DF87B3E02C8CE68B257E8C67C 06632DB9606166
              Session-ID-ctx:
              Master-Key: 0CBF89744B4DE60AD4F8B2A67AFD3B3F1BD369B291A7C42AD4 4DD1091020127C2664810EF8FA0462985DE80DB7F2D5EC
              Key-Arg : None
              Krb5 Principal: None
              PSK identity: None
              PSK identity hint: None
              Start Time: 1652107159
              Timeout : 300 (sec)
              Verify return code: 0 (ok)
              ---
              250 SMTPUTF8

              Kommentar


                #8
                Zitat von maque Beitrag anzeigen
                Daher schlägt der Verbindungsaufbau mit SSL natürlich fehl.
                EDOMI macht ja STARTTLS, nur leider ohne zuerst ein EHLO zu senden:

                PHP-Code:
                if ($this->Auth == 'tls') {
                   if (
                extension_loaded('openssl')) {
                      
                $this->mailSendRequest("STARTTLS");
                      if (
                substr($this->mailGetResponse("STARTTLS"), 03) != '220') {
                         
                writeToLog(-1false'EMAIL-Fehler: TLS-Verbindung vom Host abgelehnt.');
                         
                $this->mailReset();
                         return 
                false;
                     }
                     
                stream_socket_enable_crypto($this->SockettrueSTREAM_CRYPTO_METHOD_TLS_CLIENT);
                     
                $this->mailSendRequest("EHLO " $this->Domain);
                     if (
                substr($this->mailGetResponse("SEND HELLO MESSAGE"), 03) != '250') {
                        
                writeToLog(-1false'EMAIL-Fehler: Verbindung vom Host abgelehnt. TLS gescheitert.');
                        
                $this->mailReset();
                        return 
                false;
                     } 
                Zuletzt geändert von jonofe; 09.05.2022, 16:31.

                Kommentar


                  #9
                  Zitat von jonofe Beitrag anzeigen
                  EDOMI macht ja STARTTLS, nur leider ohne zuerst ein EHLO zu senden:
                  Das war "leider" ein Irrtum. Das erste EHLO wird schon im Konstruktor der E-Mail Klasse gemacht. Daher ist diese Vermutung falsch und auch keine Erklärung für den Fehler.

                  Es könnte noch das Problem sein, dass eine nicht unterstützte Crpyto-Methode verwendet wird.

                  EDOMI verwendet: STREAM_CRYPTO_METHOD_TLS_CLIENT

                  Ggf. könnte man versuchen, dies mal in STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT zu ändern. (/usr/local/edomi/main/include/php/incl_mail.php) und prüfen, ob es dann funktioniert.

                  Was ich gerade noch auf php.net gesehen habe:

                  Now, be careful because since PHP 5.6.7, STREAM_CRYPTO_METHOD_TLS_CLIENT (same for _SERVER) no longer means any tls version but tls 1.0 only (for "backward compatibility"...).
                  Könnte also sein, dass office365 kein TLS 1.0 mehr unterstützt.

                  Kommentar


                    #10
                    Zitat von jonofe Beitrag anzeigen
                    Könnte also sein, dass office365 kein TLS 1.0 mehr unterstützt.
                    Womit wir bei meiner Ursprungsvermutung (#2) angekommen wären, aber es haben alle sehr schön und ausführlich die Mechanismen beschrieben und das meine ich nicht negativ oder ironisch!
                    Zuletzt geändert von Glotzkowski; 09.05.2022, 18:34.

                    Kommentar


                      #11
                      Doch, TLS 1.0 ist noch unterstützt. Der Befehl erzwingt den Verbindungsaufbau mit TLS1.0 und der klappt.

                      Code:
                      openssl s_client -starttls smtp -connect smtp.office365.com:587 -tls1
                      Code:
                      CONNECTED(00000003)
                      depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
                      verify return:1
                      depth=1 C = US, O = DigiCert Inc, CN = DigiCert Cloud Services CA-1
                      verify return:1
                      depth=0 C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = outlook.com
                      verify return:1
                      ---
                      Certificate chain
                      0 s:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=outlook.com
                      i:/C=US/O=DigiCert Inc/CN=DigiCert Cloud Services CA-1
                      1 s:/C=US/O=DigiCert Inc/CN=DigiCert Cloud Services CA-1
                      i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
                      ---
                      Server certificate
                      -----BEGIN CERTIFICATE-----
                      ...
                      ---
                      SSL handshake has read 4359 bytes and written 313 bytes
                      Verification: OK
                      ---
                      New, TLSv1.0, Cipher is ECDHE-RSA-AES256-SHA
                      Server public key is 2048 bit
                      Secure Renegotiation IS supported
                      Compression: NONE
                      Expansion: NONE
                      No ALPN negotiated
                      SSL-Session:
                      Protocol : TLSv1
                      Cipher : ECDHE-RSA-AES256-SHA
                      Session-ID: 054300008E346FFA237B7FEAB6C39F729F8BFE555087ACA485 52386EBCC2FFB1
                      Session-ID-ctx:
                      Master-Key: 68B320D533A117CBFE84EC29FD148CE258B82BAE0EEFA41331 7D97B3430CE49B0A255FF1212AE000888B8DB0B0B3A8F9
                      PSK identity: None
                      PSK identity hint: None
                      SRP username: None
                      Start Time: 1652123041
                      Timeout : 7200 (sec)
                      Verify return code: 0 (ok)
                      Extended master secret: yes
                      ---
                      250 SMTPUTF8

                      Kommentar


                        #12
                        hartwigm : kann es sein, dass Du an den Security Einstellungen in Office365 drehen musst? https://support.mozilla.org/en-US/questions/1294759

                        Viele Grüsse
                        Matthias

                        Kommentar


                          #13
                          Die TLS-Verbindung wird ja noch gar nicht aufgebaut, da kann es meiner Ansicht nach nicht sein, dass Einstellungen in dem Zugang eines Benutzers verändert werden müssen.

                          Bzgl. TLS 1.0:
                          SSLv2 und SSLv3 sind nicht TLS 1.0 und auch nicht dazu kompatibel.
                          Der Fehlermeldung nach zu urteilen nutzt der Client hier diese ältere Version (SSL23_GET_SERVER_HELLO:unknown protocol).

                          Ich glaube, dass es hier erst weiter geht, wenn wir die von hartwig genutzten Versions-Informationen erhalten.

                          Kommentar


                            #14
                            Vielen Dank für Euer Feedback, auch wenn ich nicht im Detail in allen Punkten folgen kann.

                            Ich hatte einleitend vergessen zu erwähnen, das Edomi auf Centos 7.6 werkelt.



                            Gruß Hartwig

                            Kommentar


                              #15
                              Mit CentOS7.x und der dort vorhandenen PHP-Version sollte TLS 1.2 funtkionieren, dann würde ich die von Jonofe in Beitrag #9 genannte Änderung testen.
                              Kannst Du alternativ nicht den E-Mail-LBS von Jonofe (19000587) für Deine Zwecke verwenden?
                              Zuletzt geändert von Glotzkowski; 10.05.2022, 12:21.

                              Kommentar

                              Lädt...
                              X