今、メール送信用のDLLを作成しています。
DLLでフォームを使うことができないため、TSMTPコンポーネントを使うことはできません。
コンポーネントを使用しないでメールを送信する方法がありましたら教えていただけますか。
使用OS:Windows2000 使用Delphi:Delphi Ver6.0
フォームにコンポーネントを配置しなくてもコンポーネントは作成できます。
TSMTPでのDLLはやってないので保証できませんが、コンソールアプリでTNMHTTPを使った簡易ブラウザを作ったことはあります。
オブジェクト := TNMSMTP.create(nil);;
でいけるはずです。
どうしてもコンポーネントを使いたくなければWinSockを使えば出来るはずです。
送信できるようになりました。
ありがとうございました。
たびたびすみません。
メール送信はできるようになりましたが、DLLでは
イベントを取得することができませんでした。
イベントを取得する方法はありますか?
イベントをトラップするクラスを作れば良いと思います。
例えばTSMTPのOnConnectの処理を定義するとして。
TEventTrap = class
private
procedure OnTrapConnect(Sender: TObject); //トラップしたいイベントと同じ型のメソッドを定義
end;
procedure TEventTrap.OnTrapConnect(Sender: TObject);
begin
//処理を書く
end;
そして、SMTPオブジェクトにメソッドポインタを割り当てる
var
SmtpRef :TNMSMTP;
EventRef :TEventTrap;
begin
SmtpRef := TNMSMTP.Create(nil);
EventRef := TEventTrap.Create;
SmtpRef.OnConnect := EventRef.OnTrapConnect;
これで該当の処理が実行されます、こういう意味で良いでしょうか?
ツイート | ![]() |