使用delphi发送邮件(连接正常关闭)

使用delphi发送邮件(连接正常关闭),delphi,email,smtp,gmail,Delphi,Email,Smtp,Gmail,可能重复: 我想用delphi发送一些电子邮件,我有一个小代码: procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin IdMsgSend := TIdMessage.Create(nil); SSLHandler :=TIdSSLIOHandlerSocketOpenSSL.Create(nil); try with IdMsgSend do begin Conten

可能重复:

我想用delphi发送一些电子邮件,我有一个小代码:

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
  IdMsgSend := TIdMessage.Create(nil);
  SSLHandler :=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    with IdMsgSend do
    begin
     ContentType := 'text/plain';
     Body.Text := 'Test test text';
     From.Text := 'USERNAME@gmail.com';
     ReplyTo.EMailAddresses := 'Recipient@server.com';
     Recipients.EMailAddresses := 'Recipient@server.com';
     Subject := 'i just came to say hello';
    end;

    SMTP := TIdSMTP.Create(nil);
    try
      SMTP.Username := 'USERNAME@gmail.com';
      SMTP.Password := 'PASSWODD';
      SMTP.Host := 'smtp.gmail.com';
      SMTP.Port := 465;

      SMTP.IOHandler := SSLHandler;
      SSLHandler.SSLOptions.Method := sslvSSLv3;
      SMTP.UseTLS := utUseExplicitTLS;
      SMTP.Connect;
      try
            IdMsgSend.Body.Text := 'The body';
            IdMsgSend.Subject := 'The subject';
            SMTP.Send(IdMsgSend);
      finally
        SMTP.Disconnect;
      end;

    finally
      FreeAndNil(SMTP);
    end;
  finally
    FreeAndNil(IdMsgSend);
  end;
end;
它过去工作得很好!现在,每次尝试发送电子邮件时,我都会在
SMTP.send(IdMsgSend)
处收到此错误: 连接正常关闭

我读到它可能来自防病毒或防火墙,所以我禁用了它们,但仍然是相同的问题


这里怎么了?gmail是否更改了SMTP选项或类似的内容?

根据,这是一个Delphi无法正确处理的异常。尝试对调试器选项进行所示的修改,问题将得到解决。

在那篇文章之后,错误不会出现,但电子邮件不会发送too@jachguate我说我禁用了抗病毒病毒和防火墙,所以没有任何东西被阻止,+我测试了gmail和hotmail,所以没有服务器问题我没有说有什么东西被阻止了,看起来是同一个问题。由于服务器防病毒或其他反垃圾邮件措施,服务器可能正在关闭连接。你记录传输了吗?它总是在同一点关闭?你有另一台计算机来比较结果吗?@jachguate我说因为我已经读过这个问题,他们回答是:/,没有,我没有记录传输,是的,它总是在同一点关闭,没有,我没有另一台计算机记录它,只有在检查不同运行的日志后,您才能知道它是否在同一点关闭。@您可以使用TIdLogFile并将其附加到TIdSMTP.Intercept属性,以便从应用程序内部将客户机/服务器对话记录到文件中。或者您可以使用Wireshark或其他嗅探工具在机器级别执行此操作。