我怎样才能解决连接优雅的smtp delphi xe2

时间:2016-02-02 13:04:22

标签: delphi smtp delphi-xe2 indy

当我在delphi xe2上编译此代码时它工作正常,但是当在另一台计算机上运行.exe文件时,它会显示此错误消息正常关闭连接 我试图解决这个问题,我搜遍了每一个地方,但我无法解决这个问题。 我需要一个实用的解决方案..! 这是我的代码

procedure Gmail(username, password, totarget, subject, body :string);
var
DATA : TIdMessage;
SMTP : TIdSMTP;
SSL : TIdSSLIOHandlerSocketOpenSSL;
result:Boolean;
begin
try

  SMTP := TIdSMTP.Create(nil);
  DATA := TIdMessage.Create(nil);
  SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  SSL.SSLOptions.Method := sslvTLSv1;
  SSL.SSLOptions.Mode := sslmUnassigned;
  SSL.SSLOptions.VerifyMode :=  [];
  SSL.SSLOptions.VerifyDepth := 0;

  DATA.From.Address := username;
  DATA.Recipients.EMailAddresses := totarget;
  DATA.Subject := subject;
  DATA.Body.Text := body;
  if FileExists('D:\Test1.txt') then
    TIdAttachmentFile.Create(DATA.MessageParts, 'D:\Test1.txt');

  SMTP.IOHandler := SSL;
  SMTP.Host := 'smtp.gmail.com';
  SMTP.Port := 587;
  SMTP.Username := username;
  SMTP.Password := password;
  SMTP.UseTLS := utUseExplicitTLS;

  try
    try
      SMTP.Connect; // connect statement
      SMTP.Send(DATA);
      Result := True;
    except
      on E:Exception do
      begin
        ShowMessage('Cannot send E-Mail: ' + E.Message);
        Result := False;
      end;
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;
  except
    on E : Exception do
    begin
      ShowMessage('Error in the function SendEmailDelphi: ' + E.Message);
      Result := False;
    end;
  end;

end;

0 个答案:

没有答案