带有# Python 的 Gmail API 发送邮件
朋友们好,在这篇文章中,我将讨论我们如何使用 Python 制作我们将添加到heybooster的电子邮件发送功能。我将向您展示如何使用示例代码发送邮件、如何准备邮件模板以及如何获取应用程序所需的凭据。祝你阅读愉快:)
为 Gmail API 生成凭据
首先,我们在](https://console.cloud.google.com/apis/credentials)输入[并调用 create credentials。我们从下拉菜单中选择 OAuth 客户端 ID 选项。输入以下信息后,我们可以说创建。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--4OMdKQ4x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/i3fi870ce8be6f834epo.png)
我们的下一步是下载创建的凭证文件。您应该将该文件下载到与您的代码相同的目录并为其命名(credentials.json 等)。这就是我们要做的关于身份信息的全部工作。让我们进入下一步。
建立所需图书馆
有必要安装您将在项目中使用的库。为此,只需运行以下命令。
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
进入全屏模式 退出全屏模式
是的,现在我们已经安装了必要的库,让我们来看看这项工作的代码部分。
代码
from __future__ import print_function
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from email.mime.text import MIMEText
import base64
SCOPES = ['https://www.googleapis.com/auth/gmail.send',
'https://www.googleapis.com/auth/gmail.readonly']
def create_message(sender, to, subject, message_text):
message = MIMEText(message_text, 'html') # Sondaki html ifadesi html mesajınızı formatlamayı sağlamaktadır.
message['to'] = to
message['from'] = sender
message['subject'] = subject
raw_message = base64.urlsafe_b64encode(message.as_bytes())
return {'raw': raw_message.decode("utf-8")}
def send_message(service, user_id, message):
print(user_id)
print(message)
message = (service.users().messages().send(userId=user_id, body=message).execute())
print('Message Id: {}'.format(message['id']))
return message
def main():
creds = None
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
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(
'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.json', 'w') as token:
token.write(creds.to_json())
service = build('gmail', 'v1', credentials=creds)
gonderici = 'gonderen@gmail.com'
alici = 'alici@gmail.com'
konu = 'Ayda 15.000€ Kazanmak İster misin?'
mesaj = """
<html>
<head>
</head>
<body>
<h1>Test mesajı</h1>
<br>
<p>Test mesajı</p>
</body>
</html>
"""
message = create_message(gonderici, alici, konu, mesaj)
send_message(service, 'me', message)
if __name__ == '__main__':
main()
进入全屏模式 退出全屏模式
在上面的代码中,main 函数使您能够使用 credentials.json 文件登录到您的发件人电子邮件地址,授予必要的权限并创建必要的 token.json 文件。另一方面,create_message 函数允许创建消息并将其转换为要发送的格式。 send_message 确保您的消息按照您的猜测发送:)
我希望它对你有用。你可以从任何地方问你的问题。祝你工作顺利:)
https://ilteriskeskin.github.io/posts/python-gmail-api/
更多推荐


所有评论(0)