使用REST API从python中的office365读取未打开的邮件

时间:2014-06-05 18:53:11

标签: python rest exchangewebservices office365

如何使用REST请求从python(v2.6)中的office365获取所有未打开的邮件(元数据和内容,包括附件)?注释的页面值返回 urllib2.HTTPError:HTTP错误400:错误请求,而未注释的页面值正常工作。谢谢!

import urllib
import urllib2

#page = 'https://outlook.office365.com/ews/odata/Me/Inbox/Messages?$filter=IsRead'
page = 'https://outlook.office365.com/ews/odata/Me/Inbox/Messages'
username = "myusername"
password = "mypassword"

p = urllib2.HTTPPasswordMgrWithDefaultRealm()
p.add_password(realm='', uri=page, user=username, passwd=password)
handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

response = urllib2.urlopen(page)
print(response.read())

1 个答案:

答案 0 :(得分:2)

您可以通过SOAP使用EWS来获取此信息,但创建SOAP请求比使用新的Office 365 REST API更复杂,尤其是来自Python。

请参阅此链接:http://msdn.microsoft.com/en-us/library/office/dn605901(v=office.15).aspx

因此,为了从您的收件箱中获取所有未读电子邮件,您会提出类似(未经测试)的请求:

GET https://outlook.office365.com/ews/odata/Me/Inbox/Messages?$filter=IsRead eq false HTTP/1.1
Accept: application/json;odata.metadata=full

如果您坚持使用vanilla EWS,则可以使用FindItem操作。

http://msdn.microsoft.com/en-us/library/office/aa566107(v=exchg.150).aspx