使用SMTP与Delphi发送电子邮件时连接超时错误?

时间:2011-12-20 13:49:08

标签: delphi delphi-2010

如何使用delphi 2010发送电子邮件地址,例如(verefication email,密码丢失或任何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 个答案:

答案 0 :(得分:4)

您收到的错误表示该行的连接失败:SMTP.Connect()

通常,这意味着端口错误,服务器未启动,或者您没有连接。

在这种情况下,您没有连接,很可能是因为您的ISP阻止了与该远程端口的连接。

尝试从托管网络服务器发送电子邮件。

即使您可以连接,您的代码也不会按原样运行。 Google SMTP服务器上的端口465需要安全(SSL)连接。你仍然需要实现它。看看:How do I send e-mail using Gmail's SMTP and Indy 10?