使用Microsoft.Exchange.WebServices可以很方便操作Office365邮件。这里列出几个重要的属性。
通常,代码里会先定义一个WebServices对象
ExchangeService service = new ExchangeService();
(1)service.Timeout = 200000;
默认service操作Office365是100秒,但是,如果程序连接服务器需要较长时间,会经常出现连接服务器超时现象,利用Timeout属性,可以延长请求的时间。
(2)SearchFilter unreadFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead,false));
利用SerchFilter属性,可以自定义获取Office365邮件的类型,在上面通过设置EmailMessageSchema.IsRead为false来获取未读的邮件。
(3) fetchemail.Load();
当获取邮件后,默认系统是不返回邮件body主题内容的(例如你一次性获取1000封邮件,系统仅返回核心内容,如邮件接收时间,邮件标题,但是不返回邮件主体)
需要手动调用Load()方法
(4) Microsoft.Exchange.WebServices.Data.AttachmentCollection attachments = fetchemail.Attachments;
Webservices提供了AttachmentCollection对象,可以获取邮件的附件集。
但是,和邮件类型,系统返回的附件列表也只是附件的标题,所以你需要调用 fileAttachment.Load();来获取附件具体内容。
(5) fetchemail.IsRead = true; fetchemail.Update(ConflictResolutionMode.AlwaysOverwrite);
可以利用Update方法更新邮件。