blastengineはエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。
今回はPythonでblastengineのAPIを簡単に使えるSDKを開発しましたので、使い方を紹介します。現在はトランザクションメール(即時発信メール)とバルクメール(一括配信)をサポートしています。トランザクションメールの使い方はこちらの記事で紹介しています。今回は一括配信の使い方を解説します。
インストール
インストールはpipコマンドで行ってください。
pip3 install blastengine
インポート
クライアントとバルクをインポートします。
from blastengine.Client import Blastengine
from blastengine.Bulk import Bulk
初期化
Blastengineを初期化します。ユーザ名とAPIキーを使います。
# 初期化
Blastengine('USER_NAME', 'API_KEY')
メールオブジェクトの用意
バルクメールは Bulk
を使います。件名やテキスト本文などを指定します。 __name__
となっているのは、配信先ごとに置き換えられる文字列になります。
# バルク(一括発送)メールオブジェクトの作成
bulk = Bulk()
# 情報を適用する
bulk.subject('メールの件名')
# __name__ は置き換えられる文字列
bulk.text_part('テキスト本文 __name__')
# 2つ目の引数(名前)はなくても大丈夫です
bulk.fromAddress('info@example.jp', '管理者')
添付ファイルの追加
添付ファイルは attachments
メソッドで、ファイルのパスを指定してください。
# 添付ファイルがある場合
bulk.attachments('./test.py')
bulk.attachments('./image.png')
一度保存する
このメールテンプレートができた段階で一度保存します。
try:
bulk.begin()
except Exception as e:
# APIエラー
print(e)
宛先を設定する
次に宛先を設定します。この時、置き換え文字列を設定できます。
bulk.to('user1@example.com', [{
'__name__': 'User1'
}])
bulk.to('user2@example.com', [{
'__name__': 'User2'
}])
宛先を設定したら、保存を行います。
bulk.update()
送信
送信は send
メソッドになります。返値はデリバリーIDになります。このデリバリーIDで、メールの送信状況や配信停止などを行います。
try:
# 送信
delivery_id = bulk.send()
print(delivery_id)
print(bulk.delivery_id) # こちらも可
except Exception as e:
# APIエラー
print(e)
配信状況を知る
もし配信状況が知りたい場合には get
メソッドを実行してください。これでメールの配信状況を取得します。すでに配信予約になっていると RESERVE といった文字列が返ってきます。
bulk.get()
print(bulk.status)
# => RESERVE
まとめ
Python SDKを使えばWebアプリケーションはもちろん、機械学習やIoTと組み合わせてblastengineを活用してもらえます。バルクメールは大量の宛先に対して一括配信を行うのに便利です。
ぜひblastengineのPython SDKを活用ください!