我正在使用Visual Studio C#2010为Outlook 2010编写一个外接程序解决方案 . 实际上我将实现一个贝叶斯垃圾邮件过滤器,它根据内容对电子邮件进行分类 . 我的问题是互联网上可用的公共数据集都是txt文件,我需要它们在Outlook MailItem(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 .__ COM对象转换为Outlook.MailItem接口等 . (我检查了本网站中提到的不同方法和其他方法,但没有成功)因为数据集中有大量的txt文件,我无法手动打开每个方法并复制Outlook新邮件中的内容 . 我正在寻找将所有这些txt文件转换为Outlook.MailItem的任何解决方案 . 我非常感谢任何帮助 . 谢谢
1 回答
这些文件是什么? MIME消息?在这种情况下,您可以显式解析它们并创建新的Outlook邮件,也可以使用Redemption将它们导入Outlook .
在VB中: