TIdPop3Server
Я имею в одно приложение на которое имеет IdServerIOHandlerSSLOpenSSL1
прикрепленную к нему и получающий электронную почту и отправляет их клиенту TIdPop3
в другом приложении (с TIdSSLIOHandlerSocketOpenSSL
прилагается к нему). Все нормально, когда соединения становятся неустойчивыми с помощью порта 110. Но когда я пытаюсь использовать соединение SSL
через порт 995, я получаю ошибку Connection Closed Gracefully
после того, как соединение attemp с клиентом завершится с ошибкой. Это мое Pop3SeverOnConnect
событие:Невозможно подключиться к IdPop3 IdPop3Server через SSL
procedure TMainForm.Pop3ServerConnect(AContext: TIdContext);
begin
if (AContext.Connection.IOHandler is TIdSSLIOHandlerSocketBase) then
TIdSSLIOHandlerSocketBase(AContext.Connection.IOHandler).PassThrough :=
(AContext.Binding.Port <> 995);
showmessage('SSL connection made!');
end;
И это на стороне клиента:
procedure TMainForm.btnCheckMailBoxClick(Sender: TObject);
begin
IdSSLIOHandlerSocketOpenSSL1.PassThrough := False;
POP3Client.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
with POP3Client do begin
AuthType := patUserPass;
Host := myHost;
UserName := myUserName;
Password := myPass;
Port := myPort;
end;
try
POP3Client.Connect;
Except on e : Exception do
showmessage('error=' + e.Message);
end;
// code for retrieving message data
end;
И я всегда получаю исключение из Pop3Client.Connect
, как я уже упоминал выше (сообщение SSL connection made!
на сервере приложение никогда не появляется). Если я использую, однако, другой почтовый клиент, например, Mozilla Thunderbird
, я получаю успешное SSL-соединение для порта 995. Поэтому проблема должна быть где-то в процедуре клиента, но кто знает - вот почему я прошу вас, ребята, о помощи.
Таким образом, '' UseTLS: = utUseImplicitTLS'' делает разницу. Спасибо, опять Remy :) –