0

我当前的代码访问Inbox. 但是,因为这是一种将返回电子邮件列表以对每封电子邮件进行进一步处理的方法。

我不确定如何将找到的电子邮件分组到列表或表格中。

任何建议将不胜感激。

private static GetNewEmailInInbox(ExchangeService service, int batch, string autoDiscoverURL)
{
    if (service != null)
    {
        Console.WriteLine("Accessing system account mailbox...");

        TimeSpan ts = new TimeSpan(0, -1, 0, 0);
        DateTime date = DateTime.Now.Add(ts);
        service.AutodiscoverUrl(autoDiscoverURL);
        SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

        FindItemsResults<Item> emailItemList;
        ItemView view = new ItemView(50);
        int inboxCount = 1;
        do
        {
            emailItemList = service.FindItems(WellKnownFolderName.Inbox, sf, view);
            foreach (var emailItem in emailItemList.Items)
            {
                Console.WriteLine(inboxCount + ". " + emailItem.Subject);
                inboxCount++;

                //add this email to an allEmailList
            }

            if (!emailItemList.NextPageOffset.HasValue)
                break;
        }
        while (emailItemList.MoreAvailable);
    }
return allEmailList;
}
4

1 回答 1

0

您可以使用IList 接口对电子邮件进行分组。

IList<T> allEmailList = new List<T>();

FindItemsResults<Item> emailItemList = service.FindItems(WellKnownFolderName.Inbox, sf, view);
foreach (var emailItem in emailItemList.Items.OfType<T>())
{
    Console.WriteLine(inboxCount + ". " + emailItem.Subject);
    inboxCount++;

    //add this email to an allEmailList
    allEmailList.Add(emailItem);
}
于 2019-08-21T13:49:34.403 回答