我写了一个程序在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;
任何想法谢谢
答案 0 :(得分:0)
可执行文件需要文件libeay32.dll和ssleay32.dll。将它们放在与可执行文件相同的文件夹中,它应该可以工作,即使您没有在目标计算机上安装Delphi。