1,593
社区成员
发帖
与我相关
我的任务
分享
procedure TIdSMTPBase.StartTLS;
var
LIO : TIdSSLIOHandlerSocketBase;
begin
try
if (IOHandler is TIdSSLIOHandlerSocketBase) and (FUseTLS <> utNoTLSSupport) then
begin
LIO := TIdSSLIOHandlerSocketBase(IOHandler);
//we check passthrough because we can either be using TLS currently with
//implicit TLS support or because STARTLS was issued previously.
if LIO.PassThrough then
begin
if SupportsTLS then
begin
if SendCmd('STARTTLS') = 220 then begin {do not localize}
TLSHandshake;
//send EHLO
SendGreeting;
end else begin
ProcessTLSNegCmdFailed;
end;
end else begin
ProcessTLSNotAvail;
end;
end;
end;
except
Disconnect;
Raise;
end;
end;