📜  Python|从特定用户处获取您的 gmail 电子邮件(1)

📅  最后修改于: 2023-12-03 14:46:25.661000             🧑  作者: Mango

Python | 从特定用户处获取您的 Gmail 电子邮件

在Python中,我们可以使用Google API和OAuth 2.0授权来获取指定的Gmail帐户中的电子邮件。以下是如何在Python中实现此目的的步骤:

步骤1:创建Google Cloud Platform项目

要使用Google API和OAuth 2.0授权,我们需要在Google Cloud Platform中创建一个项目并启用Gmail API。

步骤1.1: 创建新的Google Cloud Platform项目
  • 转到 Google Cloud Console
  • 单击页面左上角的下拉菜单,在其中选择“新建项目”。
  • 输入您项目的名称并单击创建。
步骤1.2:启用Gmail API
  • 转到您刚才创建的项目页面。
  • 单击左侧导航菜单中的“API和服务”,然后单击“仪表板”。
  • 搜寻Gmail API并单击“启用”。
步骤2:获取OAuth2.0凭据

要访问Gmail API,我们需要使用OAuth 2.0授权。下面是如何获取OAuth 2.0凭据的步骤。

步骤2.1:创建OAuth 2.0客户端ID
  • 转到您刚才创建的项目页面。
  • 单击左侧导航菜单中的“API和服务”,然后单击“凭据”。
  • 单击“创建凭据”按钮,选择“OAuth客户端ID”。
  • 您需要选择应用程序类型和其他细节,如名称或重定向URI。
  • 点击创建并下载客户端密钥。
步骤2.2:安装Google API客户端库和请求库

我们需要安装Google API客户端库和请求库来执行特定用户的Gmail电子邮件获取。

!pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
步骤3:从Gmail获取特定用户的电子邮件

以下代码片段显示了从Gmail获取指定用户的电子邮件的示例:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

creds = Credentials.from_authorized_user_info(info)

service = build('gmail', 'v1', credentials=creds)

user_id = 'me'
query = 'is:unread'

emails = []
response = service.users().messages().list(userId=user_id, q=query).execute()

if 'messages' in response:
  emails.extend(response['messages'])

while 'nextPageToken' in response:
  page_token = response['nextPageToken']
  response = service.users().messages().list(userId=user_id,q=query, pageToken=page_token).execute()
  emails.extend(response['messages'])

for email in emails:
  message = service.users().messages().get(userId=user_id, id=email['id']).execute()
  print(f"From: {message['payload']['headers'][17]['value']}") #change index to the header line you're interested in
  print(f"Subject: {message['payload']['headers'][18]['value']}")
  print(f"Snippet: {message['snippet']}")

这个代码片段将返回指定用户收件箱中未读电子邮件的发件人姓名,主题和摘要。

以上就是如何使用Python从特定用户处获取您的Gmail电子邮件的完整过程。