mat*_*ttk 9 exchange-server exchangewebservices
我正在使用Exchange Web服务连接到邮箱并查找符合特定条件的邮件,使用FindItems和SearchFilter.
我可以通过过滤"来自"电子邮件地址的邮箱收到电子邮件,如下所示:
var service = new ExchangeService(ExchangeVersion.Exchange2010_SP1)
{
TraceEnabled = true,
Credentials = new WebCredentials(username, password)
};
var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.From, "some@email.com");
service.FindItems(WellKnownFolderName.Inbox, filter, new ItemView(50))
Run Code Online (Sandbox Code Playgroud)
我可以过滤这样的DisplayTo属性:
var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.DisplayTo, "display name");
Run Code Online (Sandbox Code Playgroud)
但据我所知,只搜索收件人的显示名称.我想搜索电子邮件地址或域名.
当我期望它时,这不会返回结果:
var filter = new SearchFilter.ContainsSubstring(EmailMessageSchema.ToRecipients, "some@email.com");
Run Code Online (Sandbox Code Playgroud)
是否可以找到收件人列表中包含指定电子邮件地址的所有电子邮件?
可能是因为您没有访问正确的文件夹,即:已发送的项目.
更换
service.FindItems(WellKnownFolderName.Inbox, filter, new ItemView(50))
Run Code Online (Sandbox Code Playgroud)
通过
service.FindItems(WellKnownFolderName.SentItems, filter, new ItemView(50))
Run Code Online (Sandbox Code Playgroud)
编辑:我误解了最初的问题.也许您应该查看以下MSDN博客:http://blogs.msdn.com/b/akashb/archive/2010/03/05/how-to-build-a-complex-search-using-searchfilter- and-searchfiltercollection-in-ews-managed-api-1-0.aspx 它解释了如何使用EWS进行复杂搜索
我没有找到使用SearchFilter根据收件人电子邮件地址查找电子邮件的方法.
可以使用带有查询字符串的ExchangeService.FindItems的不同重载.
查找地址位于"收件人"或"抄送"字段中的电子邮件
var contactEmailAddress = "some@email.com";
var querystring = string.Format("Participants:={0}", contactEmailAddress);
service.FindItems(WellKnownFolderName.Inbox, queryString, view);
Run Code Online (Sandbox Code Playgroud)
查找地址位于"发件人","收件人"或"抄送"字段中的电子邮件
var contactEmailAddress = "some@email.com";
var querystring = string.Format("(From:={0} OR Participants:={0})", contactEmailAddress);
service.FindItems(WellKnownFolderName.Inbox, queryString, view);
Run Code Online (Sandbox Code Playgroud)
我认为此功能需要Exchange 2010.
有关查询语法的一些其他资源:
| 归档时间: |
|
| 查看次数: |
5922 次 |
| 最近记录: |