delphi - 德尔菲与印第

标签 delphi delphi-2010 indy10

我刚刚在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,最好在应用程序的安装文件夹中。如果仍然出现错误,则WhichFailedToLoad()单元中的Indy的IdSSLOpenSSLHeaders函数可以告诉您为什么它无法加载OpenSSL DLL。至于DLL本身,您可以从Indy的Fulgan mirror下载与Indy兼容的副本。

附带说明,您不需要设置IOHandler的DestinationHostPort属性。 Connect()方法将为您内部处理。

关于delphi - 德尔菲与印第,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290947/

相关文章:

delphi - 如何让 C++ Builder 2010 只安装专业版(曾经是 Architect 版)

Delphi 64 位预览编译器可用吗?

delphi - 在设计模式下获取TDataModule

Delphi TCanvas 对象在使用 dll 后损坏,如何恢复?

javascript - 带 JavaScript 客户端的 Delphi 服务器

delphi - 在 Delphi 5 中创建面板的精确副本

Delphi 2010 - 套接字端口 119 不起作用

c++ - 从 C++ dll 调用 delphi 应用程序中的函数

delphi - TAzureBlobService 和 TAmazonStorageService 的进度事件

delphi - 通过Google SMTP发送电子邮件