将Email Program复制到另一台计算机

时间:2014-05-30 23:09:53

标签: delphi-xe

我写了一个程序在delphi xe3中发送电子邮件,它运行正常,当我将程序复制到另一台计算机(Windows 8)它工作正常但在计算机(Windows 7)上stmp.send没有响应除非我安装embarcadero就可以了。我认为问题出在libeay32.dll和ssleay32.dll文件中 这是代码

var
  SMTP: TIdSMTP;
  Email: TIdMessage;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  SMTP := TIdSMTP.Create(nil);
  Email := TIdMessage.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  try
    SSLHandler.MaxLineAction := maException;
    SSLHandler.SSLOptions.Method := sslvTLSv1;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    SSLHandler.SSLOptions.VerifyMode := [];
    SSLHandler.SSLOptions.VerifyDepth := 0;
    SMTP.IOHandler := SSLHandler;

    SMTP.Host := 'smtp.gmail.com';
    SMTP.Username := 'Username@gmail.com';
    SMTP.UseTLS := utUseExplicitTLS;
    SMTP.Port := 587;

    SMTP.Password := 'Password';
    SMTP.Connect;
    Email.Clear;
    Email.AttachmentEncoding:='MIME' ;
    Email.IsEncoded      := true;
    Email.Charset        := 'utf-8';
    Email.ContentType    :='multipart/alternative';
    Email.Encoding        := meMime;
    Email.UseNowForDate  := true;

    Email.From.Address :=  'Address' ;
    Email.Recipients.EmailAddresses := 'Recipients';
    Email.Subject := 'Subject';
    Email.Body.Text :='Body'  ;
    SMTP.Send(Email);
    SMTP.Disconnect;

    except on E:Exception do
      Button1.Caption:=E.Message;
      end;
    SMTP.Free;
    Email.Free;
    SSLHandler.Free;
  end;

任何想法谢谢

1 个答案:

答案 0 :(得分:0)

可执行文件需要文件libeay32.dll和ssleay32.dll。将它们放在与可执行文件相同的文件夹中,它应该可以工作,即使您没有在目标计算机上安装Delphi。