1

Delphi 2010 で indy10 (今日) を使い始めたばかりです。電子メールが送信されず、アプリが動作しなくなります。ラップトップに何か他のものをインストールする必要がありますか、またはプログラムをインストールするすべてのコンピューターで動作するようにするにはどうすればよいですか?これまでのところ、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;

ラップトップでプロジェクトを実行したところ、次のように表示されました。

SSL ライブラリをロードできませんでした。機能させるために多くのことを行い、多くのものをダウンロードし、他にも多くのことを試しましたが、これらのライブラリがどこにあり、どのように取得するのかわかりません。ロードする方法を知りたいです。インストールと一緒にインストールするので、私のインストーラーは必要なものすべてに対応しています。

前もって感謝します。

4

1 に答える 1

5

ターゲットマシン、できればアプリのインストールフォルダーにOpenSSLDLLがあることを確認してください。それでもエラーが発生する場合は、ユニット内のIndyのWhichFailedToLoad()関数で、IdSSLOpenSSLHeadersOpenSSLDLLを読み込めなかった理由を知ることができます。DLL自体については、IndyのFulganミラーからIndy互換のコピーをダウンロードできます。

ちなみに、IOHandlerの、、、またはプロパティを設定する必要はありDestinationませHostPort。メソッドはそれConnect()を内部的に処理します。

于 2012-09-06T00:25:38.827 に答える