朋友们好,在这篇文章中,我将讨论我们如何使用 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/

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐