我正在使用 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 的任何解决方案。我很感激任何帮助。谢谢你