【问题标题】:Count number of emails in outlook folder计算 Outlook 文件夹中的电子邮件数量
【发布时间】:2013-08-23 03:13:43
【问题描述】:

我想计算我收到的主题行中包含“xyz”字样的邮件数量。但我不希望它计算重复项,我的意思是如果我收到一封主题为“xyz”的邮件并且我回复它包括我自己我希望将其计为 1 而不是 2。在 Outlook 中是否可能?

【问题讨论】:

  • 哪个版本的 Outlook?

标签: outlook


【解决方案1】:

是的,这绝对是可能的,您没有指定要使用的技术,但使用互操作的示例代码可能是:

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;
 }

希望对某人有所帮助,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    相关资源
    最近更新 更多