Pythonを使用してSendGrid Email APIでメールを送信する

Pythonを使用してSendGrid Email APIでメールを送信する

こんにちは、チャールです。
このブログ投稿では、主要なメール配信サービスであるSendGridを活用して、Pythonアプリケーションから直接メールを送信する方法を見ていきます。

SendGridのAPIを使用し、メールキャンペーンに柔軟性とコントロールを提供します。

ステップ1: SendGrid APIキーを作成

  • Settings > API Keys に移動し、Create API Key ボタンをクリックしてください。
    Screenshot 2024-10-29 at 13.39.42

  • APIキーに名前を付け、Create and View ボタンをクリックしてください。
    Screenshot 2024-10-29 at 13.39.31

  • APIキーをコピーして保存してください。一度しか表示されません。
    Screenshot 2024-10-29 at 13.39.05

ステップ2: プロジェクトの設定

Screenshot 2024-11-12 at 14.58.44

プロジェクトディレクトリを作成し、app.pyというファイルを作成してください。

ターミナルでプロジェクトディレクトリに移動し、必要なライブラリをインストールするために以下のコマンドを実行してください:

pip install sendgrid python-dotenv

機密のAPIキーを保存するために .env ファイルを作成してください。以下の行を追加し、YOUR_SENDGRID_API_KEY を実際のAPIキーに置き換えてください:

SENDGRID_API_KEY=YOUR_SENDGRID_API_KEY

ステップ3: Senderの設定

送信者、つまり送信元のメールアドレス (FROM_MAIL) を設定するために、Marketing > Senders に移動し、Create New Sender ボタンをクリックしてください、

Screenshot 2024-10-29 at 14.08.38

ステップ4: コード

次のコードを app.py に書いてください。

import sendgrid
import os
from sendgrid.helpers.mail import Mail, Email, To, Content
from dotenv import load_dotenv

load_dotenv()
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')

sg = sendgrid.SendGridAPIClient(api_key=SENDGRID_API_KEY)
from_email = Email('FROM_MAIL')
to_email = To('TO_MAIL')
subject = "Sending a test email through Sendgrid Email API"
content = Content("text/plain", "It is very easy to implement")
mail = Mail(from_email, to_email, subject, content)

mail_json = mail.get()

response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)

コード説明:

  • 必要なモジュール (sendgrid、os、sendgrid.helpers.mail のコンポーネント、load_dotenv) をインポートし、APIキーを安全に管理します。
  • load_dotenv と os.getenv を使用して、.env ファイルからAPIキーを読み込みます。
  • sendgrid.SendGridAPIClient がAPIキーで初期化され、SendGridサービスへの接続が確立されます。
  • 送信者(from_email)、受信者(to_email)、件名、およびメールの内容を定義します。Content オブジェクトは、コンテンツタイプがプレーンテキストであることを指定します。
  • メール情報をすべてカプセル化するMailオブジェクトが作成されます。
  • sg.client.mail.send.post() メソッドを使用して、SendGrid APIを通じてメールを送信します。
  • response オブジェクトには、メール送信プロセスに関する情報(ステータスコードやヘッダーなど)が含まれています。

ステップ5: コードの実行

コードをPythonファイルとして保存し、ターミナルから実行して見てください:

python app.py

すべてが正しく設定されていれば、コンソールにステータスコード202が表示され、メールが正常に配信キューに入ったことを示します。まもなくテストメールが受信トレイに届くはずです。

Screenshot 2024-10-29 at 14.31.44

Screenshot 2024-10-29 at 14.32.34

まとめ:

おめでとうございます!SendGridのAPIとPythonを使って、メールの送信に成功しました。SendGridのAPIとPythonの柔軟性を活用することで、メール通信を効率化し、アプリケーションのリーチを拡大できます。

ありがとうございます!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.