如何使用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())
答案 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