2016-04-09 75 views
1

我想从发件人的电子邮件匹配我的查询字符串的Office 365返回电子邮件。我尝试使用包含$ filter的过滤器,但是这引发了一个错误,指出我必须使用$ search。以下工作但不限制我的搜索范围,即/ Sender/EmailAddress/Name。有任何想法吗?使用Office 365 REST API搜索电子邮件发件人地址

https://outlook.office365.com/api/v1.0/Me/Messages?$select=Subject,Sender,From&$search="Joe Bloggs" 
+0

请发布错误文本。 – lencharest

+0

尝试使用$ filter包含时出错,https://outlook.office365.com/api/v1.0/Me/Messages?$select=Subject,Sender,From&$filter=contains(Sender/EmailAddress/Name,'test ')是:{ 错误:{ 错误代码:“ErrorInvalidUrlQueryFilter”, message:“'contains'和'startswith'不支持过滤,请改用Search。 } } – user2823030

回答

0

Resource reference for the Mail, Calendar, Contacts, and Task REST APIs,Office 365的REST API都有自己的Advanced Query Syntax$search选项。由此看来,您可以使用from:限定符限制搜索范围。

GET https://outlook.office.com/api/v2.0/me/messages?$search="from:Joe Bloggs" 

请注意,URI应该被编码(即双引号和空格需要百分比编码)。此外,这些示例使用API​​的v2.0。我不确定这是否适用于v1.0。

2

如果您使用不支持的过滤方法,您将收到错误消息,如您遇到的错误。

此外,当使用$ search查询参数而未指定属性时,结果将搜索Body,Sender和Subject属性。在您的请求中,这将返回包含您的关键字的收件箱中的所有邮件的三个默认属性中的任何一个。

$ search系统查询选项将结果限制为仅包含与指定搜索表达式匹配的实体。你可以通过使用$搜索查询参数单击here共同领域,如果获得从一个特定的人被送到了收件箱中的所有消息是你的要求,你可以尝试下面的查询:

https://outlook.office.com/api/v2.0/me/messages?$search="from:[email protected]" 

以上要求也适用在v1.0中,但是消息的返回属性是不一样的(与v2.0相比)。

相关问题