将txt文件转换为C#VSTO加载项中的Outlook邮件项目
我正在使用Visual Studio C#2010为Outlook 2010编写一个外接程序解决方案。实际上,我要实现一个贝叶斯垃圾邮件过滤器,它根据邮件内容对邮件进行分类。我的问题是,internet上可用的公共数据集都是txt文件,我需要在Outlook邮件项目(Outlook项目)中转换它们。我测试了将txt文件强制转换到Outlook.MailItem的不同技巧,但没有一个有效。例如:将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
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号火腿和垃圾邮件数据集。