是否可以使用 Microsoft Graph 通过 imap4 连接到 outlook.com?
Is it possible to connect to outlook.com via imap4 using microsoft graph?
我正在研究使用 oauth4 通过 imap4 连接到 outlook.com。
我看到了下面这篇文章https://msdn.microsoft.com/en-ca/library/dn440163.aspx
但遗憾的是,随着 Microsoft Graph 的推出,它似乎已经过时了。似乎没有相当于 wl.imap
的 Microsoft 图形范围,因此我当前的 oauth scope
权限是
PERMISSIONS = ['openid',
'profile',
'offline_access',
'Mail.ReadWrite',
'Mail.ReadWrite.Shared',
'Mail.Send',
'Mail.Send.Shared']
但是从 Microsoft Graph 获取访问令牌后,如果我尝试执行以下操作
email = '...@live.com'
access_token = '...'
auth_string = 'user=%sauth=Bearer %s' % (email, access_token)
imap_conn = imaplib.IMAP4_SSL('imap-mail.outlook.com')
imap_conn.debug = 4
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
imap_conn.select('INBOX')
print(imap_conn.list())
我收到以下错误
55:36.05 > b'EHCM1 AUTHENTICATE XOAUTH2'
55:36.07 < b'+ '
55:36.08 write literal size 1560
55:36.13 < b'EHCM1 NO [AUTHENTICATIONFAILED] OAuth authentication failed.'
Traceback (most recent call last):
File "C:\example\example.py", line 20, in <module>
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
File "C:\Users\Home\Anaconda3\lib\imaplib.py", line 414, in authenticate
raise self.error(dat[-1])
imaplib.error: b'[AUTHENTICATIONFAILED] OAuth authentication failed.'
有人知道如何解决这个问题吗?
这是不可能的。 Graph 是 REST API,而不是 IMAP 提供程序。
我正在研究使用 oauth4 通过 imap4 连接到 outlook.com。
我看到了下面这篇文章https://msdn.microsoft.com/en-ca/library/dn440163.aspx
但遗憾的是,随着 Microsoft Graph 的推出,它似乎已经过时了。似乎没有相当于 wl.imap
的 Microsoft 图形范围,因此我当前的 oauth scope
权限是
PERMISSIONS = ['openid',
'profile',
'offline_access',
'Mail.ReadWrite',
'Mail.ReadWrite.Shared',
'Mail.Send',
'Mail.Send.Shared']
但是从 Microsoft Graph 获取访问令牌后,如果我尝试执行以下操作
email = '...@live.com'
access_token = '...'
auth_string = 'user=%sauth=Bearer %s' % (email, access_token)
imap_conn = imaplib.IMAP4_SSL('imap-mail.outlook.com')
imap_conn.debug = 4
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
imap_conn.select('INBOX')
print(imap_conn.list())
我收到以下错误
55:36.05 > b'EHCM1 AUTHENTICATE XOAUTH2'
55:36.07 < b'+ '
55:36.08 write literal size 1560
55:36.13 < b'EHCM1 NO [AUTHENTICATIONFAILED] OAuth authentication failed.'
Traceback (most recent call last):
File "C:\example\example.py", line 20, in <module>
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
File "C:\Users\Home\Anaconda3\lib\imaplib.py", line 414, in authenticate
raise self.error(dat[-1])
imaplib.error: b'[AUTHENTICATIONFAILED] OAuth authentication failed.'
有人知道如何解决这个问题吗?
这是不可能的。 Graph 是 REST API,而不是 IMAP 提供程序。