• 0
bossalex

[DELPHI FMX Android] [6.0] Не удается загрузить SSL библиотеку

Вопросы

Недавно компилил приложение на Delphi  FMX Android  при обращении  к серверу https при выполнении Get запроса от компонента TIdHttp запросил библиотеку "Could not load SSL library" используется протокол sslvTLSv1_2 в windows все пашет в андроид нет , накопал что можно подключить библиотеки  libssl.so и  libcrypto.so через  deployment .assets\internal , А вот как в коде дальше их использовать никто примерчик не выложил, хоть и обсуждали на интернет просторах 100 раз, те как прикрутить  к IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile. Если есть у кого код выложите пожалуйста? или скинте по email bossalex@ya.ru

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method.sslvTLSv1_2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode.sslmUnassigned;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 ответ на этот вопрос

  • 0
В 13.11.2018 в 09:36, Равиль Зарипов (ZuBy) сказал:

Вообще не совсем понятно зачем делать отправку письма из приложения.

Я придерживаюсь мнения что захардкоренные места не нужно держать в приложении, при обновлении параметров smtp сервера вы никак не сможете починить быстро

самый простой способ это хостинг ну или текущий сайт компании, там реализовать отправку письма как предлагал @ENERGY

Sorry! Когда я задавал вопрос по поводу проблем с  ошибками 'Could not load SSL', у меня была такая ситуация. Есть смартфон, работающий  как система сбора экспериментальных данных от некоторых блютусных датчиков.  Данные собираются, визуализируются и пишутся в виде двоичных файлов в память смартфона  вполне успешно.  В принципе все  хорошо, но хочется оперативно отсылать данные таким образом, чтобы у пользователя был минимум манипуляций, у него бывают руки заняты.  Программа поначалу просто отправляла файлы как вложения e-mail. Но на первом же смартфоне с седьмым андроидом отказалась загружать SSL. Я и обратился сюда, взывая о помощи,как можно относительно быстро и  просто решить эту проблему.  Я не адепт Indy и не обязательно использовать именно его. Сайта компании нет и сервера компании тоже нет, так как нет никакой компании, есть отдельные пользователи и их смартфоны. Программа помогает людям в их жизни, пишется на общественных началах.  Лично мне это не представляется в принципе глупым. То что написал Zuby понятно и спасибо за это. Но не понятно, что делать с этим мне в конкретной ситуации.  Кстати мне не удалось перейти по ссылке от @Energy, чтобы посмотреть на его пример,так как ссылка не открылась. У меня появилась легкая печаль... 

.

 

Изменено пользователем Юрий Гусач

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
6 минут назад, Юрий Гусач сказал:

Sorry! Когда я задавал вопрос по поводу проблем с  ошибками 'Could not load SSL', у меня была такая ситуация. Есть смартфон, работающий  как система сбора экспериментальных данных от некоторых блютусных датчиков.  Данные собираются, визуализируются и пишутся в виде двоичных файлов в память смартфона  вполне успешно.  В принципе все  хорошо, но хочется оперативно отсылать данные таким образом, чтобы у пользователя был минимум манипуляций, у него бывают руки заняты.  Программа поначалу просто отправляла файлы как вложения e-mail. Но на первом же смартфоне с седьмым андроидом отказалась загружать SSL. Я и обратился сюда, взывая о помощи,как можно относительно быстро и  просто решить эту проблему.  Я не адепт Indy и не обязательно использовать именно его. Сайта компании нет и сервера компании тоже нет, так как нет никакой компании, есть отдельные пользователи и их смартфоны. Программа помогает людям в их жизни, пишется на общественных началах.  Лично мне это не представляется в принципе глупым. То что написал Zuby понятно и спасибо за это. Но не понятно, что делать с этим мне в конкретной ситуации.  Кстати мне не удалось перейти по ссылке от @Energy, чтобы посмотреть на его пример,так как ссылка не открылась. У меня появилась легкая печаль... 

.

 

Хм, тогда вариант ещё проще. Писать прям в телеграм, отправка сообщения  делается одной строкой, запрос через post метод на https протокол.

ну а там уже на сколько выдумки хватит

почитайте апи телеграмма, все очень просто

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 часа назад, Юрий Гусач сказал:

Sorry! Когда я задавал вопрос по поводу проблем с  ошибками 'Could not load SSL', у меня была такая ситуация. Есть смартфон, работающий  как система сбора экспериментальных данных от некоторых блютусных датчиков.  Данные собираются, визуализируются и пишутся в виде двоичных файлов в память смартфона  вполне успешно.  В принципе все  хорошо, но хочется оперативно отсылать данные таким образом, чтобы у пользователя был минимум манипуляций, у него бывают руки заняты.  Программа поначалу просто отправляла файлы как вложения e-mail. Но на первом же смартфоне с седьмым андроидом отказалась загружать SSL. Я и обратился сюда, взывая о помощи,как можно относительно быстро и  просто решить эту проблему.  Я не адепт Indy и не обязательно использовать именно его. Сайта компании нет и сервера компании тоже нет, так как нет никакой компании, есть отдельные пользователи и их смартфоны. Программа помогает людям в их жизни, пишется на общественных началах.  Лично мне это не представляется в принципе глупым. То что написал Zuby понятно и спасибо за это. Но не понятно, что делать с этим мне в конкретной ситуации.  Кстати мне не удалось перейти по ссылке от @Energy, чтобы посмотреть на его пример,так как ссылка не открылась. У меня появилась легкая печаль... 

.

 

НЕ отчаивайтесь, Вам просто надо найти нужную версию SSL файла. Тут была ссылка на файловый архив разработчиков Indy, качаете оттуда и все работает как часы.  Проверено.

Дать ссылку не могу, т.к. пишу в "полевых" условиях. Ничего под руками нет. Поищите тут на форуме по слову Indy.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
3 часа назад, Юрий Гусач сказал:

 Кстати мне не удалось перейти по ссылке от @Energy, чтобы посмотреть на его пример,так как ссылка не открылась. У меня появилась легкая печаль... 

Вы про сообщение

Цитата

Я из программы вызываю https://mysite.com/sendemail.php  с post параметрами

Это же пример просто. Сам php файл дать не могу, т.к. он большой (логи и базы) и там часть закрытой информации. Информации по PHP очень много на стэке и др. сайта, вот прям почти на любой вопрос с готовыми примерами. А тем более "как отправить письмо из PHP" (лучше искать на английском) - тут вообще просто все разжевано по максимуму.

 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Поддерживаю мнение Равиля - в вашем случае удобнее использовать отправку через мессенждеры (телеграм в частности) или соцсети (везде есть апи для этого дела).

Отослать емайл вы можете средствами самого андроида, не прибегая к низкоуровневой работе с smtp протоколом. К примеру вот так (код скопипастил, возможно требуется корректировка) :

procedure TForm1.CreateEmail(const Recipient, Subject, Content, Attachment: string);
var
  JRecipient: TJavaObjectArray<JString>;
  Intent: JIntent;
  Uri: Jnet_Uri;
  AttachmentFile: JFile;
begin
  JRecipient := TJavaObjectArray<JString>.Create(1);
  JRecipient.Items[0] := StringToJString(Recipient);

  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content));

  if Attachment <> '' then
  begin
    AttachmentFile := TJFile.JavaClass.init(StringToJString(Attachment));
    Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile);
    Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Uri as ILocalObject).GetObjectID));
  end;

  Intent.setType(StringToJString('vnd.android.cursor.dir/email'));

  SharedActivity.startActivity(Intent);
end;

Так же вы можете использовать различные сетевые хранилища для сбора данных (ЯндексДиск и другие), их апи позволяет довольно просто это делать по http протоколу. Можно использовать Google Docs, и  подобное. Или бесплатный хостинг и на нем на php сделать систему сбора/хранения. Возможностей куча. Нынче проблема не как реализовать, а какой вариант реализации выбрать (сам постоянно мучаюсь этим вопросом в своих проектах)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Tarik Live
      Здравствуйте! Уже почти неделю пытаюсь завести библиотеку org.eclipse.paho.client.mqttv3-1.2.0 в своём приложении. Я знаю о существовании компонента от TMS, но он не умеет работать в фоновом сервисе.
      Вот код который я использую для тестов:
       
      Стандартная библиотека org.eclipse.paho.client.mqttv3-1.2.0 выпадает в ошибку initializer error сразу на строчке 
      mqtt:=TJMqttClient.JavaClass.init(StringToJString('tcp://m23.cloudmqtt.com:11021'), StringToJString('java')); по логам с телефона стало понятно, что проблема в логах 😐 а конкретно когда библиотека пытается создать логгер выпадает ошибка что не найден файл локализации ru_RU для logcat (сами файлы там вроде как есть). Ладно. Скачал исходники почистил код библиотеки от упоминаний логгера, собрал ииии и ничего. Продвинулся до строчки 
      mqtt.connect(); также пробивал 
      mqtt.connect(mqttconopt); ничего не помагает, получаю ошибку сегментации класса 
      Пока не понятно куда копать дальше? Возможно что не все библиотеки можно использовать в delphi приложениях? 

      P.S Старая версия 1.1.1 тоже не завелась :(
      service test2.rar
    • От Юрий Гусач
      Доброго дня!
      Проясните пожалуйста ситуацию: при запуске программы  под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и  ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. -       Почему это происходит и можно ли как то это обойти?
       
       
    • От Андрей Лещинский
      Здравствуйте ребята. С Firemonkey знаком только два дня. Многое уже подчеркнул с данного форума. Спасибо вам. 
      Проблема заключается в том, что у меня sdk для андроид 7 версии. Я собираю apk файл, запускаю его на Андроид 7 и все отлично, но как только я устанавливаю приложение на Андроид например версии 5, то при запуске оно мерцает пару раз и потом отображается отлично. Не подскажите в чем проблема? Я пробовал проект с данного форума, чтобы форма уходила под статусбара. Вот все они и мерцают на Андроид ниже 7, другие не пробовал проекты
      Стаж у меня только 2 дня, скажите в какую сторону смотреть мне далее
    • От gutalin79
      Почему при добавлении MapView в пример Android Service, приложение перестает работать?
      AndroidSimpleService.zip
       
       
       
      Пример делал по этому видео: 
       
    • От Astghik
      Hello !!!
      I want onButtonClick create popup. I use TPopup component. All good, but on android "Back button" click closing forma. But I want close popup (when popup is shown).

       
      //---------------------------------------------------------------------------------
      void __fastcall  btn3PointsClick(TObject *Sender)
      {
          PopUpSettings->IsOpen = true;
          PopUpSettings->PlacementTarget = btn3Points;
          PopUpSettings->BringToFront();
      }
      //-------------------------------------------------------------------------------------
      void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose)
      {
          try {
              if (PopUpSettings->IsOpen == true) {
                  CanClose = false;
              }
              else {
                  CanClose = true;
              }
          } __finally {
              PopUpSettings->IsOpen = false;
          }
      }
      //-------------------------------------------------------------------
       
    • От Rokweb
      Таймер с интервалом 1мс заметно подтормаживает во время выполнения анимации TFloatAnimation в Tokyo. У всех так или только у меня?
    • От Rokweb
      Здравствуйте.
      Речь пойдёт об Android.
      Использовал в Berlin данный unit для проигрывания звуков (TMediaPlayer не подходит) и все отлично работало. Сейчас перешел на Tokyo и происходит зависание в цикле:
       
      while not GLoaded do begin Sleep(10); Application.ProcessMessages; end;  
      Модуль прикрепил в сообщении.
       
      Так же интересует - возможно ли, использовать стиль, созданный в процессе разработки Android приложения - в iOS и если да - то как это правильно реализовать (почти каждый контрол имеет сейчас свой стиль)?
       
      Прошу помощи.
      GameAudioManager.zip
    • От zekelive
      Товарищи, здравствуйте. Хотел бы проконсультироваться с вами на довольно сложно для меня тему. Имеется клиентское мобильное приложение на Андроид. Принцип его просто, загружает фирмы из БД в scrollbox. За счёт того, что сразу загрузка всех данных из сервера занимает длительное время, было принято решение загружать с сервера только ключевую информацию (название фирмы), а остальную информацию загружать из локальной БД. При этом, т.к. файл БД можно легко вытащить из apk файла любому человеку, размещать всю БД на локалке нельзя. Только информацию в целом не представляющую большой значимости в отдельности от названия фирмы и не только. 
      Вопрос, правильная ли схему построения была выбрана с точки зрения защиты данных (если это так можно назвать), и оптимизации загрузки информации. 
      Приветствуются ваши советы, как лучше построить схему взаимодействия приложения с БД, или как лучше защитить данные. В идеале для быстродействия, загнать побольше данных в локальную БД. 
    • От Edward Tarasov
      Привет всем. кто сталкивался с такой ерундой, что в webbrowser вместо сайта тупо белый экран?? причем сам сайт отображаеться норм, и на том же планшете, но в стандартном бразуере и на компе... и именно этот сайт не пашет из приложения
    • От Юрий Гусач
      Есть немного странная проблема!
      Пытаюсь написать программу посылающую почту со смартфона.Используются Indy компоненты TIdSMTP,TIdMessage и TIdSSLIOHandlerSocketOpenSSL. Под Windows с компа все работает нормально.
      но если тема, имя адресата или имя посылающего содержат русские буквы, то если посылать почту со смартфона, они появляются в пришедшем письме вопросиками. Понятно, что дело в кодировке. Не могу найти что менять. Само тело письма пишется с кодировкой UTF-8 и отображается везде по русски совершенно нормально. Имена и тема с русскими буквами с компьютера и Windows приходят правильно, со смартфона(при компиляции под Android) приходят неправильно. Перепробовал вроде почти все комбинации.
      Почта со смартфона при наборе вручную тоже работает нормально. Дело по-видимому в конфигурации TIdMessage, а где не пойму.  Работаю в Delphi XE10, смартфон Samsung J3, Android 5.1.1  
      Проще всего конечно не использовать в теме письма русские буквы, при  этом все работает,  но это не нравится, потому что непонятно почему так происходит. 
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу