使用oath2凭证发送电子邮件需要进一步授权

问题描述 投票:0回答:0

我正在编写一个简单的Python程序来自动发送电子邮件。 我已经在谷歌云控制台上设置了该项目,并将凭据.json 下载到我的文件夹中。

我现在得到的是:

import base64
from email.mime.text import MIMEText
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from requests import HTTPError

SCOPES = ["www.googleapis.com/auth/gmail.send"]
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
creds = flow.run_local_server(port=0)

service = build('gmail', 'v1', credentials=creds)
message = MIMEText('This is the body of the email')
message['to'] = '[email protected]'
message['subject'] = 'Test'
create_message = {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode()}

try:
    message = (service.users().messages().send(userId="me", body=create_message).execute())
    print(F'sent message to {message} Message Id: {message["id"]}')
except HTTPError as error:
    print(F'An error occurred: {error}')
    message = None

“credentials.json”文件是为桌面应用程序创建凭据后从 console.cloud.google.com 页面下载的文件。

这个程序设法向我发送一封电子邮件,但运行它时我需要访问我的谷歌帐户。

有没有办法制作一个发送电子邮件的程序,而不需要有人在场确认帐户登录?

python gmail-api
© www.soinside.com 2019 - 2024. All rights reserved.