Python
さくらのクラウド
SendGrid

SendGrid+Pythonでメール送信をしてみた

More than 1 year has passed since last update.

is.PNG

さくらのクラウドでもSendGridが使えるようになり、せっかくなのでPythonからメール送信をしてみました。

ハマったというかググり力不足で陥った部分があったのでメモを残しておきます。

Pythonでメール送信!SendGridを使って簡単に実装する方法 | ブログ | SendGrid

公式のサイトにチュートリアルも用意されているんですが、実はこれちょっと古い。

現在pipでインストールできるSendgridのライブラリはv3 Mail準拠のものです。ここがハマりどころで、この辺意識せずにというか気づくことなくググっていると、何故上手く動かないのか分からずドツボにはまります。(ハマりました。。。)

Documentation>Integrate>Code Examples>v3 Mail>Python

公式ドキュメントのv3の利用方法。まずはこちらを確認しましょう。

SendgridのダッシュボードのSettingsの項目からAPI Keyを発行します。

キャプチャ.PNG

”Mail Send”のところにアクセス権があればメール送信出来ます。発行されたAPIキーを控えておきます。

送信側の環境準備ですがとても簡単。

pip install sendgrid

import sendgrid

import os
from sendgrid.helpers.mail import *

sg = sendgrid.SendGridAPIClient(apikey="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
from_email = Email("test@example.com")
subject = "Hello World from the SendGrid Python Library!"
to_email = Email("test@example.com")
content = Content("text/plain", "Hello, Email!")
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)
print(response.body)
print(response.headers)

公式のチュートリアル通りです。

※os.environから読み出すのがナウいらしいですが今回は手軽に使いたいのでAPIキーベタ書きで。

使う前にちゃんとバージョン確認することと、ググるだけじゃなくて公式の情報にあたるようにしましょう(という自戒)