0

Visual Studio C# 2010 を使用して、Outlook 2010 用のアドイン ソリューションを作成しています。実際には、内容に基づいて電子メールを分類するベイジアン スパム フィルターを実装します。私の問題は、インターネットで利用できる公開データセットがすべて txt ファイルであり、それらを Outlook MailItem (Outlook Item) に変換する必要があることです。txt ファイルを Outlook.MailItem にキャストするためのさまざまなヒントをテストしましたが、どれも機能しません。たとえば:

Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
            Outlook.MAPIFolder sourceFolder = inBox.Folders["non_spam"];
            Outlook.MAPIFolder destFolderInbox = inBox.Folders["testingNonSpma_inbox"];
            Outlook.MAPIFolder destFolderJunk = inBox.Folders["testingNonSpam_junk"];
            Outlook.Items items = (Outlook.Items)sourceFolder.Items;
            Outlook.MailItem mailItem = null;
            try
            {
                foreach (object eMial in items)
                {
                    ***mailItem = eMial as Outlook.MailItem;
                   // OR this way mailItem = (Outlook.MailItem) eMail;***
                    //Tokenize mail item
                    string tokenString = Tokenize(mailItem);

                    //Analyze and deliver to inbox\testingSpam_inbox or inbox\testingSpam_junk
                    bool isSpam = Analyze(tokenString);
                    if (isSpam)
                    {
                        mailItem.Move(destFolderJunk);
                    }
                    else
                    {
                        mailItem.Move(destFolderInbox);
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error in class ThisAddin, Method buttonClassifyNon_Spam\n Subject:" + mailItem.Subject + ex.Message);
            } 

System.__COM オブジェクトを Outlook.MailItem インターフェイスに変換できないなど、常にさまざまなエラーが発生します。(このサイトや他のサイトに記載されているさまざまな方法を確認しましたが、成功しませんでした)データセットには多数のtxtファイルがあるため、手動でそれぞれを開いて内容をOutlookの新しいメールにコピーすることはできません. これらすべてのtxtファイルをOutlook.MailItemに変換するソリューションを探しています。どんな助けにも感謝します。ありがとうございました

4

1 に答える 1

1

これらのファイルは何ですか? MIME メッセージ? その場合、それらを明示的に解析して新しい Outlook メッセージを作成するか、Redemptionを使用してそれらを Outlook にインポートすることができます。

VB では:

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set Inbox = Session.GetDefaultFolder(olFolderInbox)
  set Msg = Inbox.Items.Add("IPM.Note")
  Mg.Sent = true
  Msg.Import "C:\Temp\test", 1024 'olRfc822
  Msg.Save
于 2013-08-05T06:54:30.643 に答える