我正在编写一个简单的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 页面下载的文件。
这个程序设法向我发送一封电子邮件,但运行它时我需要访问我的谷歌帐户。
有没有办法制作一个发送电子邮件的程序,而不需要有人在场确认帐户登录?