Frage

Ich verwende die neueste indy Snapshot (installiert gestern) und neueste SSL-Bibliotheken.

Beim Versuch, eine E-Mail mit idSMTP zu senden, das erste Mal der Komponente verbindet, erhalte ich eine Ausnahme:

  

could't die SSL-Bibliotheken laden

. Komische ist, ein erneuter Versuch funktioniert immer. Debuggen Ich fand, dass das Problem in IsSSLOpenSSLHeader, Funktion Loaad: boolean, Zeile

@OpenSSL_add_all_algorithms := LoadFunctionCLib('OpenSSL_add_all_algorithms');

Warum scheitern ist es das erste Mal, und nicht das zweite ist immer noch ein Rätsel für mich, aber bevor ich auf die Untersuchung gehen würde Ich mag an, als ob jemand die Lösung für dieses Problem kennt.

War es hilfreich?

Lösung

Der Code, den Sie verwenden, ist nicht die neueste Snapshot. Dass Fehler wurde vor ein paar Wochen festgelegt. Die Zeile, die Sie zitieren, ist NICHT im neuesten Code, hat sie mit folgendem ersetzt:

fn_OPENSSL_add_all_algorithms_noconf = 'OPENSSL_add_all_algorithms_noconf';
fn_OpenSSL_add_all_algorithms = 'OpenSSL_add_all_algorithms';

@OpenSSL_add_all_algorithms := LoadOldCLib(fn_OpenSSL_add_all_algorithms, fn_OPENSSL_add_all_algorithms_noconf);

Andere Tipps

Ich bin mit Delphi XE-1 auf Win 7/64, mit dem SSL und Indy, die standardmäßig installiert sind. Diese Woche hatte ich einige Arbeit mit SMTP und SSL zu tun, und ich lief in das gleiche Problem, das Sie gemeldet. Unsere Anwendung etwas komplex ist und ist bereits lebt und an mehreren Standorten eingesetzt und verwendet Indy an mehreren Stellen im Code, so eine neuere Version von Indy Installation und dem Wiederaufbau usw., war nicht sehr schmackhaft.

Da das Problem tritt nur beim ersten Durchgang habe ich durch einen Teil des Codes aufgespürt und kam mit dieser einfachen, schmerzlos Abhilfe up:

            smtpClient.connect;
            smtpClient.disconnect;
            smtpClient.connect;
            if not smtpClient.Authenticate then
                raise ... 
            smtpClient.Send(msg);

Wenn Sie connnect anrufen und dann disconnect werden die SSL-Bibliotheken geladen, so auf dem zweiten Anruf Sie sind gut connect zu gehen.

funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top