【发布时间】:2011-06-20 22:02:14
【问题描述】:
我正在从事一项我以前从未从事过的任务。
任务: 监控 Exchange Server 2007 上的特定邮箱收件箱。遍历所有电子邮件(仅电子邮件),进行一些处理并移动到同一邮箱下的特定文件夹。
我所做的工作
// Create the binding
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
//service.Credentials = new WebCredentials("mailbox", "password", "mailbox@something.com");
service.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["ExchangeUsername"].ToString(), ConfigurationManager.AppSettings["ExchangePassword"].ToString(), "something/domain");
// Set the url.
//service.AutodiscoverUrl("mailbox@something.com");
service.Url = new Uri(ServiceUrl);
ItemView view = new ItemView(10);
view.Traversal = ItemTraversal.Shallow;
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
List<SearchFilter> searchFilterCollection = new List<SearchFilter>();
//searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.ItemClass, "MessageType"));
searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.Subject, "test to be deleted"));
SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilterCollection.ToArray());
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox, view);
出于某种原因,我总是得到 results.items.count = 9,但 Mailbox@something.com 中只有一个 EmailMessage。我在搜索中做错了什么吗?如果收件箱有 5 封电子邮件,那么我应该算作 5 封并循环浏览这 5 封电子邮件。有没有办法只查询电子邮件?任何帮助表示赞赏。谢谢。
【问题讨论】:
标签: monitoring exchangewebservices