📅  最后修改于: 2023-12-03 14:46:42.489000             🧑  作者: Mango
本文将介绍如何使用Python编写代码来接收和处理Gmail电子邮件。我们将使用Google提供的Gmail API来实现这一功能。Gmail API是一个强大的工具,允许开发者访问和控制用户的Gmail邮件。
在开始编写代码之前,我们需要执行以下准备工作:
google-api-python-client
库:pip install google-api-python-client
以下是一个简单的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客户端库来实现这一功能。您可以根据自己的需求对代码进行修改和扩展,以满足更具体的应用场景。