artem_niko Posted April 21 Posted April 21 Good afternoon! The project requires sending an email via smtp.yandex.ru. I used to use Indy components, it seemed to work, but now it has stopped sending and the error "Could not load SSL library" is returned. Required files libeay32.dll and ssleay32.dll I downloaded it from here: https://www.dllme.com/dll/files/ssleay32/526e9fb13d1eb68a15e0aa474a47b632 and placed the project files next to the executable. But, this does not eliminate the error... Please share information about how easy it is to send an email. Quote
Sherzod Posted April 22 Posted April 22 Hello, Good tip: you already have working SSL DLLs shipped with uniGUI itself. Look in: \FMSoft\Framework\uniGUI\SSL\dll\x86\ — for 32-bit apps \FMSoft\Framework\uniGUI\SSL\dll\x64\ — for 64-bit apps Take libeay32.dll and ssleay32.dll from the folder matching your project's bitness and drop them next to your .exe. Delete the ones you got from dllme — third-party DLL sites are unsafe, and the bitness is often wrong (that alone causes "Could not load SSL library"). 1 Quote
artem_niko Posted April 22 Author Posted April 22 31 minutes ago, Sherzod said: Здравствуйте, Хороший совет: у вас уже есть работающие библиотеки SSL, поставляемые вместе с uniGUI. Загляните сюда: \FMSoft\Framework\uniGUI\SSL\dll\x86\ — для 32-разрядных приложений \FMSoft\Framework\uniGUI\SSL\dll\x64\ — для 64-разрядных приложений Возьмите libeay32.dll и ssleay32.dll из папки, соответствующей разрядности вашего проекта, и поместите их рядом с исполняемым файлом. Удалите те, что вы скачали с dllme — сторонние сайты с библиотеками DLL небезопасны, а разрядность часто не совпадает (что само по себе приводит к ошибке «Не удалось загрузить библиотеку SSL»). Do I need to remove these dll files that were previously copied from SYSWOW64 and System32 and leave them only next to the executable file? Quote
Sherzod Posted April 22 Posted April 22 7 minutes ago, artem_niko said: Do I need to remove these dll files that were previously copied from SYSWOW64 and System32 and leave them only next to the executable file? One important caveat: only delete the DLLs from System32 / SysWOW64 if you put them there yourself. Other installed applications (especially older ones) may have copied their own libeay32.dll / ssleay32.dll there, and removing them could break those programs. If you're not sure who put them there, the safer approach is: just leave the system-folder copies alone and make sure your DLLs are next to your .exe. Windows searches the executable's folder first, so your app will use the correct ones anyway. Quote
artem_niko Posted April 22 Author Posted April 22 6 minutes ago, Sherzod said: Важное замечание: удаляйте библиотеки DLL из папок System32 / SysWOW64 только в том случае, если вы поместили их туда сами. Другие установленные приложения (особенно старые) могли скопировать туда свои собственные libeay32.dll / ssleay32.dll, и их удаление может привести к сбоям в работе этих программ. Если вы не знаете, кто их туда поместил, лучше не трогать копии в системной папке и убедиться, что ваши библиотеки DLL находятся рядом с исполняемым файлом. Windows сначала выполняет поиск в папке с исполняемым файлом, поэтому ваше приложение в любом случае будет использовать нужные файлы. I deleted these dll files from SYSWOW64 and System32, which I copied yesterday, and left them only next to the executable file, restarted the project, the error is the same. Maybe I have some component settings wrong? Quote
artem_niko Posted April 22 Author Posted April 22 3 hours ago, artem_niko said: I deleted these dll files from SYSWOW64 and System32, which I copied yesterday, and left them only next to the executable file, restarted the project, the error is the same. Maybe I have some component settings wrong? In general, I fixed something with the DLL. Now the situation is like this: - on the server where the project is being developed and Delphi with uniGUI is installed, the email is being sent. And libraries libeay32.dll and ssleay32.dll they are not located next to the executable file. They are not present in SYSWOW64 either, but at the same time, sending an email works, but only if the project is opened and the email is sent via a browser from a laptop. - on the server where the project itself is running, I copied the files libeay32.dll and ssleay32.dll in SYSWOW64, but at the same time, if I open the project on a mobile device in a browser and try to send an email, I get the same error as "Could not load SSL library". Maybe on the project server where the error is, you need to register these files separately. libeay32.dll and ssleay32.dll ? After all, they could register on the development server when Delphi or uniGUI was installed. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.