📜  python代码接收gmail - Python(1)

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

Python代码接收Gmail - Python

简介

本文将介绍如何使用Python编写代码来接收和处理Gmail电子邮件。我们将使用Google提供的Gmail API来实现这一功能。Gmail API是一个强大的工具,允许开发者访问和控制用户的Gmail邮件。

准备工作

在开始编写代码之前,我们需要执行以下准备工作:

  1. 创建Google开发者帐号并启用Google Gmail API:访问Google Cloud控制台(https://console.cloud.google.com),创建一个新项目并启用Gmail API。
  2. 安装必要的Python库:我们将使用Google提供的Python客户端库来与Gmail API进行交互。安装google-api-python-client库:
pip install google-api-python-client
  1. 创建凭据:在Google Cloud控制台中,为我们的项目创建凭据(OAuth 2.0客户端ID),并下载相应的JSON文件,该文件将在代码中使用。
编写代码

以下是一个简单的Python代码示例,用于接收Gmail邮件并将其打印出来。确保替换代码中的<path/to/credentials.json>为你下载的凭据JSON文件的路径:

import os
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build


# 导入凭据
def get_credentials():
    creds = None
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json')
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                '<path/to/credentials.json>', ['https://www.googleapis.com/auth/gmail.readonly'])
            creds = flow.run_local_server(port=0)
        with open('token.json', 'w') as token:
            token.write(creds.to_json())
    return creds


# 接收Gmail邮件
def receive_emails():
    creds = get_credentials()
    service = build('gmail', 'v1', credentials=creds)
    results = service.users().messages().list(userId='me', labelIds=['INBOX'], maxResults=5).execute()
    messages = results.get('messages', [])
    
    if not messages:
        print('No new messages.')
    
    for message in messages:
        msg = service.users().messages().get(userId='me', id=message['id']).execute()
        print(f"Subject: {msg['payload']['headers'][16]['value']}")
        print("------------")
        print(f"{msg['snippet']}")
        print("============")


if __name__ == '__main__':
    receive_emails()

以上代码使用OAuth 2.0授权机制来获取用户的凭据,并使用凭据构建一个Gmail服务。然后,我们通过调用Gmail API的users().messages().list()方法来获取用户的电子邮件,将每个邮件的主题和内容打印出来。

运行代码

在运行代码之前,请确保按照准备工作的步骤进行设置。然后,运行Python文件:

python receive_gmail.py
结论

本文介绍了如何使用Python代码来接收Gmail邮件。我们使用了Google提供的Gmail API和Python客户端库来实现这一功能。您可以根据自己的需求对代码进行修改和扩展,以满足更具体的应用场景。