コンポーネントを使わずにメール送信するには?

解決


Andropov  2003-05-09 01:23:53  No: 3505

今、メール送信用のDLLを作成しています。
DLLでフォームを使うことができないため、TSMTPコンポーネントを使うことはできません。
コンポーネントを使用しないでメールを送信する方法がありましたら教えていただけますか。

使用OS:Windows2000 使用Delphi:Delphi Ver6.0


えび  2003-05-09 01:52:34  No: 3506

フォームにコンポーネントを配置しなくてもコンポーネントは作成できます。
TSMTPでのDLLはやってないので保証できませんが、コンソールアプリでTNMHTTPを使った簡易ブラウザを作ったことはあります。

オブジェクト := TNMSMTP.create(nil);;

でいけるはずです。

どうしてもコンポーネントを使いたくなければWinSockを使えば出来るはずです。


Andropov  2003-05-09 02:51:08  No: 3507

送信できるようになりました。
ありがとうございました。


Andropov  2003-09-12 00:47:51  No: 3508

たびたびすみません。
メール送信はできるようになりましたが、DLLでは
イベントを取得することができませんでした。
イベントを取得する方法はありますか?


えび  2003-09-12 07:00:54  No: 3509

イベントをトラップするクラスを作れば良いと思います。
例えば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;

これで該当の処理が実行されます、こういう意味で良いでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加