Почему нет подключения по smtp Indy
Пробую на разных сервисах: Яндекс, Mail, Rambler почта и Ошибка подключения к SMTP Серверу. В чем может быть проблема ? Может в Indy ? Компилирую на RAD Studio 10.1 Berlin. Код то правильный.
procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
FileDir:string;
att:TIdAttachmentFile;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
//формируем тело сообщения
IdMessage1 := TIdMessage.Create;
IdMessage1.From.Address := 'test';
IdMessage1.Recipients.Add.Address:='[email protected]';
IdMessage1.Subject := UTF8Encode('test');
IdMessage1.Date:= now;
//настройка компонентов перед отправкой
IdSMTP := TIdSMTP.Create(nil);
IdSMTP.Host:=Form1.Edit1.Text;
IdSMTP.Port:=StrToInt(Form1.Edit2.Text);
IdSMTP.Username:=Form1.Edit3.Text;
IdSMTP.Password:=Form1.Edit4.Text;
IdSMTP.AuthType:=satDefault;
//для SSL
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL.Destination := IdSMTP.Host+':'+IntToStr(IdSMTP.Port);
IdSSLIOHandlerSocketOpenSSL.Host := IdSMTP.Host;
IdSSLIOHandlerSocketOpenSSL.Port := IdSMTP.Port;
IdSSLIOHandlerSocketOpenSSL.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmUnassigned;
IdSMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL;
case Form1.ComboBox2.ItemIndex of
0: IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv2;
1: IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv23;
2: IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv3;
3: IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1
else
raise Exception.Create('Выберите тип SSL');
end;
case Form1.ComboBox1.ItemIndex of
0: IdSMTP.UseTLS := utUseExplicitTLS;
1: IdSMTP.UseTLS := utUseImplicitTLS;
2: IdSMTP.UseTLS := utUseRequireTLS;
3: IdSMTP.UseTLS := utNoTLSSupport;
else
raise Exception.Create('Выберите тип TLS');
end;
try
IdSMTP.Connect;
if idSMTP.Connected then
MessageBox(handle,pchar('Подключение к SMTP серверу успешно'), pchar('ee'), 48);
except
MessageBox(handle,pchar('Ошибка подключения к SMTP Серверу'), pchar('ee'), 48);
exit;
end;
IdSMTP.Send(IdMessage1);
Application.ProcessMessages;
IdSMTP.Disconnect;
idMessage1.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
idSMTP.Free;
end;