TIdSMTPでoverSSL/TLS実行時、エラーを出さないようにするには?

解決


ぽぽろん  2008-06-27 15:57:53  No: 31096  IP: 192.*.*.*

D2007, Indy10で下記のページを参考にして、サービスとして動作するメール送信プログラムを作ろうとしています。

http://codezine.jp/a/articleprint.aspx?aid=400

このページにあるサンプルは、OpenSSLのモジュールとjconvert.pasを入れるとそのままコンパイルされ、gmailなどのSMTP認証を通って送信できるのですが、
自前のコードで同じコンポーネントを貼ってプロパティも同じにしても、IOHandlerのセット部分でアドレスの読み込み違反が発生してしまいます。

エラー発生箇所
SMTP.IOHandler := SSLIOHandler;

OpenSSLのlibeay32.dllとssleay32.dllもexeと同じフォルダに入っています。
サンプルと違う所が見つからないので困っているのですが、なにか解決策はないでしょうか?

編集 削除
もにゃ  2008-06-28 01:21:20  No: 31097  IP: 192.*.*.*

会員ページなので見てませんが、
gMailでチェックしました。
Indy10です。
IdSMTP.IOHandlerの行が変な所にあるんでないですか?
ちなみに、IdSMTPのSSLは初めてなので、
これであってるか知りません。(gMailはSSL使わなくても通るっぽいす)
一応動いているっぽいです。

  IdSSLOpenSSL,  IdSMTP, IdSSL, IdIOHandlerStack,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase;

procedure TForm1.Button1Click(Sender: TObject);
var
  IdSSLIOHandler: TIdSSLIOHandlerSocketOpenSSL;
  IdSMTP: TIdSMTP;
  MailHStack : TIdIOHandlerStack ;
  host, subject, mailto, from, body:String;
begin
  IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  IdSSLIOHandler.ConnectTimeOut := 5000;
  IdSMTP := TIdSMTP.Create(nil);
  IdSMTP.IOHandler := IdSSLIOHandler;
  IdSMTP.Port      := 465;
  IdSMTP.UseTLS    := utUseExplicitTLS;
  IdSMTP.AuthType  := atSASL;
  IdSMTP.UseEhlo   := True;
  IdSMTP.Host      := 'smtp.gmail.com';
  IdSMTP.Username  :='xxxxxx@gmail.com';
  IdSMTP.Password  :='xxxxxx';

  host    := 'smtp.gmail.com';
  subject := 'SSL test';
  mailto  := 'xxx@xxx.xx.xx';
  from    := 'xxxxx@gmail.com.';
  body    := 'mail body';
  IdSMTP.QuickSend(host, subject, mailto, from, body);
  IdSMTP.Free;
  IdSSLIOHandler.Free;
end;

余談ですが、さっきまでパスワードを入れていたコードをコピペ投稿するのは勇気が要りますね…
このBBS削除機能無いし。

編集 削除
ぽぽろん  2008-07-11 09:08:44  No: 31098  IP: 192.*.*.*

もにゃさんレス有難う御座いました。
お返事が遅れてしまいましたが、結局の所はSSL部分が実装できませんでしたが
とりあえずはSSLなしのSMTP認証だけ必要でよかった為、
今回の件はクローズします。有難う御座いました。

編集 削除
ぽぽろん  2008-07-11 09:09:27  No: 31099  IP: 192.*.*.*

解決チェック忘れです^_^;

編集 削除