blastengineは開発者にとって使いやすいメール配信サービスを提供しています。まだサービスローンチしたばかりでSDKが不足しているのですが、徐々に開発を進めています。
Googleスプレッドシートなどで使えるGoogle Apps Script SDK(GAS SDK)向けに実装した配信一覧・配信ログ一覧取得機能について紹介します。
配信一覧・配信ログ一覧機能について
配信一覧と配信ログ一覧では以下のような違いがあります。
- 配信一覧には未送信のバルクメール(一括配信メール)が含まれます
- 配信ログ一覧には、開封日時が含まれます
- 配信ログ一覧は、個別のメールアドレスごとに結果を取得できます
- 配信ログ一覧は、SMTPリレーの結果も取得できます
コードについて
GAS SDKはMIT Licenseのオープンソース・ソフトウェアです。リポジトリは以下にあります。
blastengineMania/blastengine-gas: Google Apps Script向けのblastengine SDKです
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
APIキーを取得する
ログイン後、管理画面の右上にある設定メニューに移動します。
そして設定の中で、APIキーを取得します。
必要な情報について
SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。
ライブラリIDについて
GASのライブラリIDは 1GvJKygDvrhoq9w1FIRepBo1kAB3yo1LucHtL6CIM-KqmaFaxLUbyBdim
になります。こちらをGoogle Apps Scriptのエディタにて、ライブラリとして登録してください。
1GvJKygDvrhoq9w1FIRepBo1kAB3yo1LucHtL6CIM-KqmaFaxLUbyBdim
今回はIDを Blastengine
として解説します。変更している場合はそれぞれ読み替えてください。
初回実行時の注意
初回実行時には外部URL(blastengineのAPI)にアクセスを許可するダイアログが出ます。なお、この時に以下のような怖いダイアログが出ます。
これはインストール数が増えると消えるらしいのですが、まだ作成したばかりのため表示されてしまうようです。左下にある詳細というリンクから許諾を続行できます。
初期化
先ほど取得したユーザー名とAPIキーを使って初期化します。
Blastengine.init('YOUR_USER_NAME', 'YOUR_API_KEY');
配信一覧を取得する
配信一覧はMailクラスにて取得します。結果はトランザクションメール(Transaction)またはバルクメール(Bulk)クラスの配列です。
指定できるパラメーターはblastengine 配信一覧APIに依ります。
以下は編集中のバルクメールを一覧取得して、それを削除するコードです。
const Mail = Blastengine.mail();
const mails = Mail.find({ size: 100, delivery_type: ['BULK'], status: ['EDIT'] });
for (const bulk of mails) {
bulk.delete();
}
配信ログ一覧を取得する
配信ログ一覧はLogクラスにて取得します。結果はLogクラスのインスタンスの配列です。
指定できるパラメーターはblastengine 配信ログ一覧APIに依ります。
以下はSMTPで配信したメールのログを取得するコードです。
const Log = Blastengine.log();
const logs = await Log.find({ delivery_type: ['SMTP'] });
まとめ
配信ログ一覧を使えば、配信したメールが開封されたかをAPIベースで取得できます。また、SMTPリレーで配信されたデータを取得するのにも利用できます。ぜひ運用で活用してください。
blastengineではAPIベースの他、SMTPリレーによるメール配信も利用できます。APIの場合、大量の宛先に対する一括配信も利用できますので、ぜひSDKとともに利用してください。