Обработка ошибок Pascal Synapse



У меня есть код, написанный в Lazarus/FreePascal , использующий Синапс IMAPSend библиотечный блок. Я пытаюсь войти на сервер IMAP по протоколу SSL (IMAPS), но вызов Login не удается.



Я пробовал проверять исключения - ни одно не выбрасывается.



Wireshark не показывает ничего, кроме TCP-трехстороннего рукопожатия с соответствующим сервером и портом.

Вот код



function GetImapResponse(host, port, user, pass:String): String;
var
response: String = '';
imap: TIMAPSend;
no_unseen: integer;
begin
imap := TIMAPSend.create;
try
imap.TargetHost := host; //'10.0.0.16';
imap.TargetPort := port; //'993';
imap.UserName := user; //'red';
imap.Password := pass; //'********';
imap.AutoTLS := false;
imap.FullSSL := true;
response := response + 'IMAP login to '+user+'@'+host+':'+port+' ... ';
if imap.Login then
begin
response := response + 'Logged in OK. ';
// How many unseen?
no_unseen := imap.StatusFolder('INBOX','UNSEEN');
Form1.Label2.Caption := IntToStr(no_unseen);
response := 'INBOX contains ' + IntToStr(no_unseen) + ' unseen messages. ';
end
else
begin
response := response + 'IMAP Login failed. ';
end;
except
on E: Exception do
begin
response := response + 'Exception: ' + E.Message;
showMessage(response);
end;
end;
{
finally
imap.free;
response := response + 'Finally. ';
end;
}
Result := response;
end;


Вот строковый результат этого функция



IMAP login to [email protected]:993 ... IMAP Login failed. 


Вопрос: есть ли способ увидеть некоторые детали того, что, по мнению IMAPSend, произошло?



Обновление 1



Как показано в ответе SimaWB плюс комментарии Arioch 'The



  mySynaDebug := TsynaDebug.Create;
imap.Sock.OnStatus := @MySynaDebug.HookStatus;
imap.Sock.OnMonitor := @MySynaDebug.HookMonitor;


Произвел имя проекта.файл slog, содержащий



20130722-103643.605 0011F230HR_SocketClose: 
20130722-103643.609 0011F230HR_ResolvingBegin: 10.0.0.16:993
20130722-103643.620 0011F230HR_ResolvingEnd: 10.0.0.16:993
20130722-103643.623 0011F230HR_SocketCreate: IPv4
20130722-103643.628 0011F230HR_Connect: 10.0.0.16:993
20130722-103643.631 0011F230HR_Error: 10091,SSL/TLS support is not compiled!


Итак, я двигаюсь вперед : -)



У меня есть libssl32.dll и libeay32.dll в папке проекта, но я проверю, что у меня есть правильные версии и я сделал правильные вещи с куриными внутренностями.





Обновление 2:



Я использовал 64-битную версию Лазаря. Библиотеки DLL OpenSSL - это 32-разрядные библиотеки DLL, которые модуль ssl_openssl Synapse загружает динамически. Я установил 32-разрядную версию Lazarus/FPC, и теперь моя клиентская программа IMAP / SSL компилируется и работает так, как ожидалось.



Похоже, что текущий 64-битный двоичный дистрибутив Lazarus/FPC (v1. 0. 10/2. 6. 2) не может скомпилироваться до i386 (что, я думаю, могло бы помочь).

679   3  

3 ответов:

Вы пробовалиsynadbg блок синапса?

imap := TIMAPSend.create;
imap.Sock.OnStatus := TSynaDebug.HookStatus;
imap.Sock.OnMonitor := TSynaDebug.HookMonitor;

Затем приложение создает файл журнала с расширением '.слог". Возможно, вы найдете более подробную информацию в файле журнала.

Та же ошибка в .slog файл на Ubuntu 64-бит был исправлен с "sudo apt-get install libssl-dev "и включая" ssl_openssl " в разделе uses.

Проблема здесь: imap.AutoTLS := false; imap.FullSSL := true; попробуйте установить true в false и false в true... а порт должен быть 587

Comments

    Ничего не найдено.