[英]Delphi with indy
我刚刚在Delphi 2010中开始使用indy10(今天),阅读了所有内容后,我设法使其正常工作,我可以使用gmail发送电子邮件,在我的计算机上可以正常工作,但是当我在便携式计算机上安装该应用程序(用于测试)时,它不发送电子邮件,我的应用程序停止运行,我是否必须在笔记本电脑上安装其他软件,或者如何使其在每台安装我的程序的计算机上都可以工作,到目前为止,我必须在6台不同的计算机上安装它,有些使用Windows XP和某些Windows 7,我希望有一种方法可以使其成为多平台之类。
这是我的代码:
procedure SendIndyMail;
begin
Form_final.IdSMTP1 .IOHandler := Form_final.IdSSLIOHandlerSocketOpenSSL1;
Form_final.IdSMTP1.Host:= 'smtp.gmail.com';
Form_final.IdSMTP1.Password:= 'xxxxxx';
Form_final.IdSMTP1.Port := 587;
Form_final.IdSMTP1.UseTLS := utUseExplicitTLS;
Form_final.IdSMTP1.Username := 'xxxxxx';
Form_final.IdSSLIOHandlerSocketOpenSSL1.Destination := 'smtp.gmail.com:587';
Form_final.IdSSLIOHandlerSocketOpenSSL1.Host := 'smtp.gmail.com';
Form_final.IdSSLIOHandlerSocketOpenSSL1.Port := 587;
Form_final.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
Form_final.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
Form_final.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [];
Form_final.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0;
Form_final.IdMessage1.Subject:=conect.Q_selec_info_generalDescripcion.Text+' '+DateToStr(Date);
Form_final.IdMessage1.Recipients.EMailAddresses:=conect.Q_config_seleccorreo.Text;
TIdAttachmentFile.Create(Form_final.IdMessage1.MessageParts, conect.Q_config_selecfolder.Text+'\reporte_'+FormatDateTime('dddd d of mmmm yyyy', Date)+' Inventario '+Form_inventario.Edit_id_inventario.Text+'.pdf');
Form_final.IdSMTP1.Connect;
Form_final.IdSMTP1.Send(Form_final.IdMessage1);
Form_final.IdSMTP1.Disconnect;
end;
我在笔记本电脑上运行了proyect,它说:
无法加载SSL库,现在,我做了很多事情使其工作,下载了很多东西,并尝试了许多其他事情,现在我不知道这些库在哪里以及如何检索它们,并且我想知道一种加载方式它们与安装一起进行,因此我的安装程序将包含所有需要的内容。
提前致谢。
确保目标计算机上有OpenSSL DLL,最好在应用程序的安装文件夹中。 如果仍然出现该错误,则IdSSLOpenSSLHeaders
单元中Indy的WhichFailedToLoad()
函数可以告诉您为什么它无法加载OpenSSL DLL。 至于DLL本身,您可以从Indy的Fulgan镜像下载Indy兼容的副本。
附带说明,您不需要设置IOHandler的Destination
, Host
或Port
属性。 Connect()
方法将为您内部处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.