Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将txt文件转换为C#VSTO加载项中的Outlook邮件项目_C#_Outlook_Text Files_Add In_Mailitem - Fatal编程技术网

将txt文件转换为C#VSTO加载项中的Outlook邮件项目

将txt文件转换为C#VSTO加载项中的Outlook邮件项目,c#,outlook,text-files,add-in,mailitem,C#,Outlook,Text Files,Add In,Mailitem,我正在使用Visual Studio C#2010为Outlook 2010编写一个外接程序解决方案。实际上,我要实现一个贝叶斯垃圾邮件过滤器,它根据邮件内容对邮件进行分类。我的问题是,internet上可用的公共数据集都是txt文件,我需要在Outlook邮件项目(Outlook项目)中转换它们。我测试了将txt文件强制转换到Outlook.MailItem的不同技巧,但没有一个有效。例如: Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this

我正在使用Visual Studio C#2010为Outlook 2010编写一个外接程序解决方案。实际上,我要实现一个贝叶斯垃圾邮件过滤器,它根据邮件内容对邮件进行分类。我的问题是,internet上可用的公共数据集都是txt文件,我需要在Outlook邮件项目(Outlook项目)中转换它们。我测试了将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.\u COM对象转换为Outlook.MailItem接口等。 (我检查了本网站和其他网站中提到的不同方法,但没有成功) 由于数据集中有大量txt文件,我无法手动打开每个文件并在Outlook新邮件中复制内容。 我正在寻找将所有这些txt文件转换为Outlook.MailItem的任何解决方案。 我非常感谢你的帮助。
谢谢

这些文件是什么?MIME消息?在这种情况下,您可以显式解析它们并创建新的Outlook消息,也可以使用将它们导入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

嗨,亲爱的迪米特里·斯特雷布列琴科,它们是文本文件。我会给你发一些来看看。顺便说一句,谢谢你的时间和回答。我的txt文件示例如下:嗨,我可以请你用C#给我发送这些代码吗?我已下载了Redemption,并将ProfManLoader.cs和RedemptionLoader.cs添加到我的解决方案中;并将Redemption COM库添加到我的解决方案的引用中。但是我不知道如何使用它和实现它来解决我的问题。我感谢你的帮助和指导。致以最诚挚的问候。主题:回复:玉米壳公司的交易丽塔,这件事每天都在变化,所以我们一直在等着把一切弄清楚。我确实告诉马克·麦考伊处理这件事,他会在漫长的周末后马上给你所有的信息。希望这有帮助。pat rita wynne@ect 08/31/2000 05:25下午至:pat clynes/corp/enron@enron,daren j farmer/hou/ect@ect抄送:主题:玉米壳公司交易嘿,伙计们,我需要被收购,以了解玉米壳公司交易的最新进展。我不知道这对我的团队有什么影响,也不知道我们在分配方面应该看到什么。上面的文本是我的数据集中的文本文件示例。我只是把全部内容复制到这里。事实上,我不知道如何向你发送我的数据集。它们是安然1至5号火腿和垃圾邮件数据集。