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に変換するソリューションを探しています。どんな助けにも感謝します。ありがとうございました