TIdSMTP: не удалось загрузить библиотеку SSL - PullRequest
0 голосов
/ 05 июня 2019
  • Windows 7 64 бит
  • Delphi 5
  • Indy 10.6.2.5499

Я знаю, что большинство из нас нервничает с этой проблемой. Но в любом случае я потерял несколько часов безрезультатно, чтобы попробовать разные ssl dll один за другим.

В каждом случае я получаю свое любимое исключение «Не удалось загрузить библиотеку SSL».

Я переустановил Indy с ранее удаленным старым Indy и так далее. Я прошел этот путь более 10 раз в моей жизни, но здесь снова ...

Может быть, вы видите что-то конкретное в моей среде или около того ...

Код:

  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  SSLHandler.SSLOptions.Method := sslvTLSv1;

  FIdSMTP                 := TIdSMTP.Create(nil);
  FIdSMTP.SASLMechanisms.Clear;
  FIdSMTP.IOHandler := SSLHandler;
  FIdSMTP.AuthType := satDefault;
  FIdSMTP.UseTLS := utUseExplicitTLS;
  FIdSMTP.Host            := 'mx.freenet.de';
  FIdSMTP.Port            := 587;
  FIdSMTP.Password        := 'xxxxx';
  FIdSMTP.Username        := 'xxxxx';

  FIdMessage              := TIdMessage.Create(nil);
  FIdMessage.CharSet      := 'windows-1252';
  FIdMessage.From.Address := 'xxxxx';

  FIdMessage.ContentType := 'multipart/mixed';
  FIdMessage.subject := subject;
  FIdMessage.Recipients.EMailAddresses := email;
  FHTML := TIdText.Create(FIdMessage.MessageParts, html);
  FHTML.ContentType := 'text/html';
  FIdSMTP.ConnectTimeout := 5000;
  FIdSMTP.ReadTimeout := 5000;
  try
    FIdSMTP.Connect;
    FIdSMTP.Send(FIdMessage);
    FIdSMTP.Disconnect;
 except
    on e: Exception do
    begin
      ShowMessage(WhichFailedToLoad());
      showmessage('Cannot send mail: ' + #13 + e.Message);
    end;
  end;

  SSLHandler.Free;
  FIdSMTP.Free;
  FIdMessage.Free;
  FHTML.Free;
...