📜  在 gmail 中显示已读未读部分 (1)

📅  最后修改于: 2023-12-03 15:37:20.416000             🧑  作者: Mango

在 Gmail 中显示已读/未读部分

介绍

Gmail 是一个流行的电子邮件服务,Google 提供了一个 API 让程序员可以访问和管理 Gmail。在 Gmail 中,邮件可以被标记为已读或未读。本文将介绍如何在 Gmail 的 API 中使用已读和未读邮件的过滤器。

前提

为了使用 Gmail API,您需要有一个 Google 账户和一个已启用 Gmail API 的项目。您也需要使用 OAuth 2.0 协议来授权 API 的访问权限。您可以在这里找到有关如何设置 OAuth 2.0 的详细说明。

使用已读/未读邮件的过滤器

您可以使用 Gmail API 的 search() 方法过滤邮件,该方法接受一个字符串参数,该字符串描述了如何搜索邮件。以下是可以在 Gmail API 中使用的过滤器的示例:

  • is:read:返回已读邮件。
  • is:unread:返回未读邮件。
  • is:starred:返回标记为星标的邮件。
  • has:attachment:返回有附件的邮件。

以下是使用 Python 中的 Gmail API 获取未读邮件的示例代码:

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

# 定义已读或未读的过滤器
FILTER = "is:unread"

creds = Credentials.from_authorized_user_file('token.json', scopes=['https://www.googleapis.com/auth/gmail.readonly'])
service = build('gmail', 'v1', credentials=creds)

try:
    # 调用 Gmail API 的 users().messages().list() 方法搜索邮件
    response = service.users().messages().list(userId='me', q=FILTER).execute()
    messages = [ ]
    if 'messages' in response:
        messages.extend(response['messages'])
        while 'nextPageToken' in response:
            page_token = response['nextPageToken']
            response = service.users().messages().list(userId='me',q=FILTER,pageToken=page_token).execute()
            if 'messages' in response:
                messages.extend(response['messages'])
    for message in messages:
        # 获取邮件的所有内容
        msg = service.users().messages().get(userId='me', id=message['id']).execute()
        print(msg['snippet'])
except HttpError as error:
    print('An error occurred: %s' % error)
结论

使用 Gmail API 的过滤器,就可以轻松获取已读或未读邮件。这使得开发者可以使用 Python 代码或其他编程语言来搜索和分析 Gmail 中的电子邮件。