Ошибка тайм-аута подключения при использовании SMTP для отправки электронной почты с Delphi? - PullRequest
5 голосов
/ 20 декабря 2011

как отправить адрес электронной почты с помощью delphi 2010, например (подтверждение электронной почты, пароль потерян, или любые электронные письма в формате HTML / обычный текст.

Я попытался с помощью следующего кода, но я получаю EIdSocket Eroor with message 'Socket Error #10060 Connection Timed Out' при попытке отправить почту.

procedure TForm5.btnSendMailClick(Sender: TObject);
begin

//setup SMTP
smtppass := ed_IdVerification.Text;
SMTP.Host := 'smtp.google.com';   // Controle a distance
SMTP.Port := 465;
smtp.Username := 'hetallica69@gmail.com';
smtp.Password := QuotedStr(smtppass);


//setup mail message

MailMessage.From.Address := 'hetallica69@gmail.com';
MailMessage.Recipients.EMailAddresses := '_rafik@live.fr';

MailMessage.Subject := 'Confirm your account';
MailMessage.Body.Text := 'Text goes here';

//send mail
try
 try
   if not smtp.Connected then SMTP.Connect() ;
   SMTP.Send(MailMessage) ;
 except on E:Exception do
   ShowMessage(E.Message);
 end;
   finally
     if SMTP.Connected then SMTP.Disconnect;
   end;
end;

1 Ответ

4 голосов
/ 20 декабря 2011

Ошибка, которую вы получаете, означает, что на этой линии не удается установить соединение: SMTP.Connect().

Обычно это означает, что порт неверен, сервер не работает или у вас нетподключаемость.

В этом случае у вас нет подключений, скорее всего потому, что ваш интернет-провайдер блокирует подключение к этому удаленному порту.

Попробуйте отправить электронное письмо с вашего хост-сервера.

Даже если вы сможете подключиться, ваш код не будет работать как есть.Порт 465 на SMTP-сервере Google требует безопасного (SSL) соединения.Вам все еще нужно будет это реализовать.Посмотрите: Как мне отправлять электронную почту, используя SMTP Gmail и Indy 10?

...