![]() |
Indy Mail Probleme bei Android 64 Bit App
Hallo,
eine seit Jahren bestehende Android App (bisher als 32 Bit Version verteilt) wird nun auf 64 Bit umgestellt. Seit diesem Zeitpunkt geht der Mailzugriff nicht mehr. Testweise eingeführte Messages sagen "Fehler Connect"
Delphi-Quellcode:
und
function TFormZugang.TestVerbindungEingang(): integer;
var IdPOP31: TIdPOP3; IOHandler: TIdSSLIOHandlerSocketOpenSSL; begin // Result 0 = Connect Fehler, 1 = Login Fehler, 2 = fehlerfrei Result := 0; try IdPOP31 := TIdPOP3.Create(self); IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdPOP31); IdPOP31.AutoLogin := false; IdPOP31.Port := settings.zugangPOP3Port; IdPOP31.ConnectTimeout := 20000; if not IdPOP31.Connected then begin IdPOP31.Host := settings.zugangPOP3; if SSL.IsChecked then begin // allg. Procedure zum Setzen der SSL-Parameter Set_SSL_POP3(IdPOP31, IOHandler); end else begin IdPOP31.IOHandler := Nil; IdPOP31.UseTLS := utNoTLSSupport; end; IdPOP31.Username := settings.zugangBenutzer; IdPOP31.Password := settings.zugangPasswort; try sleep(300); IdPOP31.Connect; Result := 1; except on E: Exception do begin showmessage('Fehler Connect'); IdPOP31.DisposeOf; exit; end; end; try sleep(300); IdPOP31.Login; Result := 2; except on E: Exception do begin showmessage('Fehler Login'); IdPOP31.DisposeOf; exit; end; end; if IdPOP31.Connected then begin IdPOP31.DisConnect; end; end; IdPOP31.DisposeOf; except on E: Exception do LogAusgabe(E.ClassName + ' in TFormZugang.TestverbindungEingang : ' + E.Message); end; end;
Delphi-Quellcode:
Ich finde leider keinen Ansatz, was bei den Indys umgestellt werden müsste, wenn man sie unter Android 64 Bit verwenden möchte!
procedure Set_SSL_POP3(var pop3: TIDPOP3;
var SSLIoHandler: TIdSSLIOHandlerSocketOpenSSL); begin SSLIoHandler.DefaultPort := 0; SSLIoHandler.SSLOptions.Method := sslvSSLv23; SSLIoHandler.SSLOptions.Mode := sslmClient; SSLIoHandler.SSLOptions.VerifyMode := []; SSLIoHandler.SSLOptions.VerifyDepth := 0; pop3.IOHandler := SSLIoHandler; pop3.UseTLS := utUseImplicitTLS; SSLIoHandler.Destination := pop3.Host + ':' + IntToStr(pop3.Port); end; Kann mir bitte jemand einen Tip geben? Achso: SSL ist an und der Port ist 465, falls das relevant ist... Ciao Stefan |
AW: Indy Mail Probleme bei Android 64 Bit App
Zitat:
|
AW: Indy Mail Probleme bei Android 64 Bit App
Hallo
Die Fehlermeldung habe ich jetzt abgefangen, es ist "SSL Bibliothek konnte nicht geladen werden" Ich habe mir von Github die "openssl-1.02s_Android.zip" heruntergeladen aus dem arm64-v8a-Verzeichnis die libcrypto.so und libssl.so in der Bereitstellung unter assets/internal/ eingebunden. Wo liegt mein Fehler? Ciao Stefan |
AW: Indy Mail Probleme bei Android 64 Bit App
Du musst die 32-Bit-Libraries in
library\lib\armeabi-v7a\ und die 64-Bit-Libraries in library\lib\arm64-v8a\ ablegen. Wenn du wirklich nur 64-Bit builden willst, kannst du auf die 32-Bit-Libraries verzichten. Wenn du aber die aab-Datei bei Google hochladen möchtest, brauchst du beides. Ich lade die Libraries folgendermaßen:
Delphi-Quellcode:
procedure TicTrainerF.initSSL();
{$IFNDEF IOS} var help2: String; {$ENDIF} begin if (not sslInited) then begin sslInited:=true; {$IFDEF ANDROID} IdOpenSSLSetLibPath(String.Empty); {$ENDIF} {$IFDEF IOS} {$ELSE} {$IFDEF MACOS} IdOpenSSLSetCanLoadSymLinks(false); IdOpenSSLSetLoadSymLinksFirst(false); IdOpenSSLSetLibPath(TPath.GetDirectoryName(ParamStr(0))); mlog.info('InitSSL from ' + TPath.GetDirectoryName(ParamStr(0))); {$ENDIF} {$ENDIF} {$IFDEF MSWINDOWS} IdOpenSSLSetLibPath(TPath.GetDirectoryName(ParamStr(0))); mlog.info('InitSSL from ' + TPath.GetDirectoryName(ParamStr(0))); SmtpMailFrom:=MESettings().MailAddr; {$ENDIF} IdSSLOpenSSLHeaders.Load(); {$IFDEF ANDROID} help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad(); if (length(help2) > 0) then begin IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetLibraryPath)); IdSSLOpenSSLHeaders.Load(); help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad(); if (length(help2) > 0) then begin IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetDocumentsPath)); IdSSLOpenSSLHeaders.Load(); mlog.info('SSL-Version(3): ' + OpenSSLVersion); help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad(); if (length(help2) > 0) then begin mlog.info('SSL-Errors: ' + help2); end; end else begin mlog.info('SSL-Version(2): ' + OpenSSLVersion); end; end else begin mlog.info('SSL-Version(1): ' + OpenSSLVersion); end; {$ELSE} mlog.info('SSL-Version: ' + OpenSSLVersion); {$IFNDEF IOS} help2:=IdSSLOpenSSLHeaders.WhichFailedToLoad(); if (length(help2) > 0) then mlog.info('SSL-Errors : ' + help2); {$ENDIF} {$ENDIF} end; end; |
AW: Indy Mail Probleme bei Android 64 Bit App
Vielen herzlichen Dank, Du hast meinen Tag gerettet!
Jetzt funktioniert der Mailversand bei mir auch wieder in 64 Bit! Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz