件名に「xyz」という単語が含まれる受信メールの数を数えたいのですが、重複をカウントしたくありません。つまり、件名が「xyz」のメールを受け取り、自分自身を含めて返信した場合です。それを2ではなく1としてカウントしたいのですが、outlookでは可能ですか?
1187 次
1 に答える
0
ええ、それは間違いなく可能です。使用するテクノを指定していませんでしたが、interop を使用したサンプル コードは次のようになります。
var outlookApp = new Outlook.Application();
var mapi = outlookApp.GetNamespace("MAPI")
var root = mapi.GetDefaultFolder(OlDefaultfolders.olFolderInbox)
var folders = root.Folders;
int count = 0;
for(int i = folders.Count; i >= 1; i--)
{
var folder = folders[i];
count += GetCount(folder, 0);
Marshal.ReleaseComObject(folder);
}
Marshal.ReleaseComObject(folders);
//... function
private int GetCount(MAPIFolder folder, int count)
{
var folderItems = folder.Items;
if(folderItems != null && folderItems.Count >= 1)
{
for(int i = folderItems.Count; i >= 1; i--)
{
//Check item.Subject for string logic
count++;
//Add item in collection variable to check duplicates,
//generate an id with subject + creationtime for tracking?
}
}
if(folder.Folders != null && folder.Folders >= 1)
{
var subFolders = folder.Folders;
for(int i = subfolders.Count; i >= 1; i--)
{
var subFolder = subFolders[i]
count += GetCount(subFolder, count);
Marshal.ReleaseComObject(subfolder);
}
}
Marshal.ReleaseComObject(folderItems);
return count;
}
それが誰かを助けることを願って、
于 2013-08-22T19:13:43.023 に答える