Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr (https://www.delphipraxis.net/203335-ssl-mail-funktioniert-nach-umstellung-von-berlin-nach-rio-nicht-mehr.html)

skoschke 7. Feb 2020 13:33

SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Hallo,

eine mit Berlin entwickelte App für Windows und Android holt und sendet Mails.

Dies funktionierte mit Delphi Berlin einwandfrei, nach Umstieg auf Rio bekomme ich unter Windows Could Not Load SSL Library Fehler und unter Android wird keine Verbindung hergestellt.

Am Code der App wurde in dieser Hinsicht nichts verändert, die beiden libcrypto.so und libssl.so aus Cersion 1.02h sind unverändert.

Ich habe nicht den geringsten Ansatz, wo ich die Ursache finden könnte!

Danke für Tips
Ciao
Stefan

Daniel 7. Feb 2020 13:50

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Sind INDY-Komponenten beteiligt? Denn dafür gab es unlängst einen Patch, gerade für das Zusammenspiel mit SSL:
"Web Server applications built with the Indy library (for Windows) are unable to load a SSL certificate. The issue was reported on Quality Portal as RSP-27144"

http://cc.embarcadero.com/Item/30906

philipp.hofmann 7. Feb 2020 15:10

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Zusatzfrage: Lieferst du nach Android-32 aus oder als Bundle nach Android-64 und Android-32? Bei Bundles ist zusätzlich folgender Fix relevant:
https://cc.embarcadero.com/item/30905

und du findest nützliche Infos hier, wie man die Pfade für die SSL-Libraries setzen muss in folgendem Thread
https://www.delphipraxis.net/202777-...id-32-apk.html

Hier der relevante Part, welchen man aber auch für Android-32-Apps genauso ausprobieren kann:
Delphi-Quellcode:
  {$IFDEF ANDROID}
    IdOpenSSLSetLibPath(String.Empty);
    IdSSLOpenSSLHeaders.Load();
    error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
    if (length(error)>0) then
    begin
      IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetLibraryPath));
      IdSSLOpenSSLHeaders.Load();
      error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
      if (length(error)>0) then
      begin
        IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetDocumentsPath));
        IdSSLOpenSSLHeaders.Load();
        log.d('SSL-Version(3): '+OpenSSLVersion);
        error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(error)>0) then
        begin
          log.d('SSL-Errors: '+error);
        end;
      end else begin
        log.d('SSL-Version(2): '+OpenSSLVersion);
      end;
    end else begin
      log.d('SSL-Version(1): '+OpenSSLVersion);
    end;
  {$ENDIF}

skoschke 7. Feb 2020 15:26

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Danke, danke, danke, da habe ich ja erst mal jede Menge zu lesen...

Ich melde mich dann wieder...

Ciao
Stefan

himitsu 7. Feb 2020 23:24

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
War es nicht so, dass die neueren Internet-Komponenten im Delphi das SSL vom System (Windows) nutzen?
Sich von Indy zu verabschieden und die neuen im Delphi enthaltenen Komponenten zu nutzen würde dann bedeuten, dass man nicht mehr mit den SSL-DLLs im Indy kämpfen muß.

Aber neben Indy verwenden auch DataSnap, InterBase und EMS ebenfalls das OpenSSL.

philipp.hofmann 8. Feb 2020 21:22

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Downloads und Uploads sollte man besser mit den Internet-Komponenten von Delphi durchführen. Die direkte E-Mail-Kommunikation geht damit aber nicht. Hier ist mir auch keine bessere Komponente als die Indy-Implementierung bekannt. Daher gibt es hier eine Abhängigkeit zu OpenSSL.

skoschke 9. Feb 2020 10:02

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Zitat:

War es nicht so, dass die neueren Internet-Komponenten im Delphi das SSL vom System (Windows) nutzen?
Sich von Indy zu verabschieden und die neuen im Delphi enthaltenen Komponenten zu nutzen würde dann bedeuten, dass man nicht mehr mit den SSL-DLLs im Indy kämpfen muß.
Wie versende ich mit den neueren Komponenten unter Android Mails mit SSL ohne einen Intent zu starten, wo der Nutzer erst noch quittieren muss?

Außerdem schreibst Du :
Zitat:

das SSL vom System (Windows) nutzen
ich aber möchte unter Android senden!

Ciao
Stefan

himitsu 9. Feb 2020 11:39

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Zitat:

Zitat von skoschke (Beitrag 1457008)
Wie versende ich ...

Gute Frage. :oops:

Zitat:

Zitat von skoschke (Beitrag 1457008)
ich aber möchte unter Android senden!

Wenn die das SSL von dem einem OS verwenden, dann werden sie bestimmt in den anderen OS es nicht anders machen. :stupid:

philipp.hofmann 9. Feb 2020 21:22

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
Ich kenne keine Möglichkeit eine Mail ohne Benutzer-Quittierung zu versenden, außer eben mit Indy.

Und ja, mit den neuen Internet-Komponenten übernimmt das OS immer die SSL-Implementierung, d.h. für Android, wie für iOS, wie für MacOS und Windows (und wahrscheinlich auch Linux). Daher ist dies schon deutlich schicker, als Downloads und Uploads mit Indy durchzuführen. Aber hier geht es eben um Mails und nicht um Downloads und Uploads.

skoschke 10. Feb 2020 07:14

AW: SSL Mail funktioniert nach Umstellung von Berlin nach Rio nicht mehr
 
so, folgender Code
Delphi-Quellcode:
  {$IFDEF ANDROID}
    IdOpenSSLSetLibPath(String.Empty);
    IdSSLOpenSSLHeaders.Load();
    error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
    if (length(error)>0) then
    begin
      IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetLibraryPath));
      IdSSLOpenSSLHeaders.Load();
      error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
      if (length(error)>0) then
      begin
        IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetDocumentsPath));
        IdSSLOpenSSLHeaders.Load();
        log.d('SSL-Version(3): '+OpenSSLVersion);
        error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(error)>0) then
        begin
          log.d('SSL-Errors: '+error);
        end;
      end else begin
        log.d('SSL-Version(2): '+OpenSSLVersion);
      end;
    end else begin
      log.d('SSL-Version(1): '+OpenSSLVersion);
    end;
  {$ENDIF}
bringt in jedem Zweig eine riesen Liste WhichFailedToLoad und ich bekomme weiterhin CouldNotLoadSSLLibrary-Fehler.

Unter RadStudio Berlin funktionierte alles problemlos, da muss es doch irgendeinen Unterschied zum neuen Rio geben?

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz