0

私は、Windows 2003 サーバーを実行している誰かのために働いています。彼らは、メッセージを送信するデータベースとテーブルを分類できる SMTP シンクを作成するように求めています。このサーバーでは交換は行われず、デフォルトの仮想 SMTP サーバーのみが使用されます。

SMTP サーバーの onarrival イベントが発生したときに起動する必要があると思われるクラスを作成しました。クラスの登録に問題がありますが、RegAsm /regfile を実行すると、「警告、RA0000: 登録が行われません。登録するタイプがありません。」というメッセージが表示されます。/TLB を指定して RegAsm を実行すると、型が登録されていることがわかりますが、クラスごとにグローバル レジスタに表示されず、メールがサーバーに送信されたときにクラスが呼び出されません。私は自分が間違っていることについて少し途方に暮れています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;


namespace SMTPSink
{
    [Guid("????-????-?????-????")]
    [ComVisible(true)]
    [ProgId("SMTPSINK")]
    public class SMTPSink : CDO.ISMTPOnArrival
    {
        SMTPSink()
        { }

        void CDO.ISMTPOnArrival.OnArrival(CDO.Message Message, ref CDO.CdoEventStatus EStatus)
        {
            //Simple test to see if this fires on mail arrival
        }
    }
}
4

1 に答える 1

2

コンストラクターを公開するのを忘れました。[noncreatable] タイプ ライブラリ属性を持たないコクラスをエクスポートするために必要です。修理:

    public SMTPSink()
    { }

または、何も役に立たない場合は省略してください。

于 2012-06-27T23:56:11.337 に答える