使用OAuth 2.0 Access token访问Gmail Imap

12

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


你找到解决方案了吗?我正在考虑重写一些当前的库,只使用access_token。 - Wasauce
4个回答

11

以下是使用 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')

更多详细信息请参见库代码


代码已经迁移到 Github https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py - Thomas Turner

1
这是我一直在思考的事情。我不想自己处理刷新访问令牌等问题,同时我也发现谷歌示例中有太多样板代码。因此,我决定编写非常简单的包装器,允许使用来自google-api-python-client的凭据和流对象进行OAuth2 IMAP和SMTP。
希望这能帮助到某些人。

https://github.com/richieforeman/oauth2gmail


1

从2012年9月17日开始,OAuth 2.0也得到了支持。 - Pawel Lesnikowski

-1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接