Access Gmail Imap with OAuth 2.0 Access token

后端 未结 4 2051
忘掉有多难
忘掉有多难 2021-02-02 00:52

I am using Google\'s Oauth 2.0 to get the user\'s access_token, but I dont know how to use it with imaplib to access inbox.

相关标签:
4条回答
  • 2021-02-02 01:40

    This is something I've been kicking around. I didn't want to juggle refreshing access tokens and what not myself -- I also found there was too much boilerplate code in the Google example. I decided just to write very simple wrappers that allow for OAuth2 IMAP and SMTP that utilize Credentials and Flow objects from google-api-python-client.

    Hopefully this helps somebody.

    https://github.com/richieforeman/oauth2gmail

    0 讨论(0)
  • 2021-02-02 01:43

    IMAP does not support accessing inbox without password -> so imaplib doesnt

    0 讨论(0)
  • 2021-02-02 01:53

    Below is the code for IMAP with oauth 2.0

    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')
    

    for more details see the library code.

    0 讨论(0)
  • 2021-02-02 01:54

    Currently you can use OAuth 1.0 to access Gmail over IMAP and SMTP, but OAuth 2.0 is not yet supported. Here is a link to more information: https://developers.google.com/google-apps/gmail/oauth_overview

    0 讨论(0)
提交回复
热议问题