问题 使用OAuth 2.0访问令牌访问Gmail Imap


我正在使用Google的Oauth 2.0来获取用户的access_token,但我不知道如何使用imaplib来访问收件箱。


8147
2018-02-03 19:38


起源

你找到了解决方案吗?我正在考虑重新编写一些当前的库来使用access_token。 - Wasauce


答案:


以下是使用oauth 2.0的IMAP代码

email = 'k@example.com'
access_token = 'vF9dft4qmTc2Nvb3RlckBhdHRhdmlzdGEuY29tCg'
auth_string = 'user=%s\1auth=Bearer %s\1\1' % (email, access_token)

imap_conn = imaplib.IMAP4_SSL('imap.gmail.com')
imap_conn.debug = 4
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
imap_conn.select('INBOX')

有关详细信息,请参阅 图书馆代码


10
2017-10-23 07:40



代码已移至github github.com/google/gmail-oauth2-tools/blob/master/python/... - Thomas Turner


目前,您可以使用OAuth 1.0通过IMAP和SMTP访问Gmail,但目前尚不支持OAuth 2.0。以下是更多信息的链接: https://developers.google.com/google-apps/gmail/oauth_overview


1
2017-08-29 13:57



从2012年9月17日起,也支持OAuth 2.0。 - Pawel Lesnikowski


这是我一直在努力的事情。我不想处理刷新的访问令牌,而不是我自己 - 我还发现Google示例中有太多的样板代码。我决定编写非常简单的包装器,允许使用来自google-api-python-client的Credentials和Flow对象的OAuth2 IMAP和SMTP。

希望这有助于某人。

https://github.com/richieforeman/oauth2gmail


1
2017-11-06 06:55





IMAP不支持在没有密码的情况下访问收件箱 - >因此imaplib不会


-1
2017-07-10 13:09



IMAP支持 SASL 作为延伸 - Code Bling