AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Indy Mail Probleme bei Android 64 Bit App
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Mail Probleme bei Android 64 Bit App

Ein Thema von skoschke · begonnen am 25. Jan 2024 · letzter Beitrag vom 26. Jan 2024
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Indy Mail Probleme bei Android 64 Bit App

  Alt 25. Jan 2024, 08:08
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:
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;
und
Delphi-Quellcode:
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;
Ich finde leider keinen Ansatz, was bei den Indys umgestellt werden müsste, wenn man sie unter Android 64 Bit verwenden möchte!
Kann mir bitte jemand einen Tip geben?
Achso: SSL ist an und der Port ist 465, falls das relevant ist...

Ciao
Stefan

Geändert von skoschke (25. Jan 2024 um 08:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.646 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Indy Mail Probleme bei Android 64 Bit App

  Alt 25. Jan 2024, 08:22
Testweise eingeführte Messages sagen "Fehler Connect"
Du hast leider vergessen die Exception-Message mit auszugeben. Da bringt die Meldung sehr wenig...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Indy Mail Probleme bei Android 64 Bit App

  Alt 25. Jan 2024, 08:49
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
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
898 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Indy Mail Probleme bei Android 64 Bit App

  Alt 25. Jan 2024, 12:05
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;
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Indy Mail Probleme bei Android 64 Bit App

  Alt 26. Jan 2024, 08:27
Vielen herzlichen Dank, Du hast meinen Tag gerettet!

Jetzt funktioniert der Mailversand bei mir auch wieder in 64 Bit!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.
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