LoginSignup
0
0

blastengineのGoogle Apps Script SDKでメールのログを取得する

Posted at

blastengineは開発者にとって使いやすいメール配信サービスを提供しています。まだサービスローンチしたばかりでSDKが不足しているのですが、徐々に開発を進めています。

Googleスプレッドシートなどで使えるGoogle Apps Script SDK(GAS SDK)向けに実装した配信一覧・配信ログ一覧取得機能について紹介します。

blastengine - npm

配信一覧・配信ログ一覧機能について

配信一覧と配信ログ一覧では以下のような違いがあります。

  • 配信一覧には未送信のバルクメール(一括配信メール)が含まれます
  • 配信ログ一覧には、開封日時が含まれます
  • 配信ログ一覧は、個別のメールアドレスごとに結果を取得できます
  • 配信ログ一覧は、SMTPリレーの結果も取得できます

コードについて

GAS SDKはMIT Licenseのオープンソース・ソフトウェアです。リポジトリは以下にあります。

blastengineMania/blastengine-gas: Google Apps Script向けのblastengine SDKです

ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg

送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。

txt @ v=spf1 include:spf.besender.jp ~all

APIキーを取得する

ログイン後、管理画面の右上にある設定メニューに移動します。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/47b2b2ac-2e41-77fe-d84f-0ae0b7541f36.jpeg

そして設定の中で、APIキーを取得します。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/2b5ca124-3020-1d39-84e4-911cd4db27e2.png

必要な情報について

SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。

ライブラリIDについて

GASのライブラリIDは 1GvJKygDvrhoq9w1FIRepBo1kAB3yo1LucHtL6CIM-KqmaFaxLUbyBdim になります。こちらをGoogle Apps Scriptのエディタにて、ライブラリとして登録してください。

1GvJKygDvrhoq9w1FIRepBo1kAB3yo1LucHtL6CIM-KqmaFaxLUbyBdim

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/e7bd1386-9893-0d80-226c-d130eb912a1b.jpeg

今回はIDを Blastengine として解説します。変更している場合はそれぞれ読み替えてください。

初回実行時の注意

初回実行時には外部URL(blastengineのAPI)にアクセスを許可するダイアログが出ます。なお、この時に以下のような怖いダイアログが出ます。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/a57beb3b-5ab8-1ca1-a612-97124ce248fb.jpeg

これはインストール数が増えると消えるらしいのですが、まだ作成したばかりのため表示されてしまうようです。左下にある詳細というリンクから許諾を続行できます。

初期化

先ほど取得したユーザー名と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とともに利用してください。

エンジニア向けメール配信システム「ブラストエンジン(blastengine)」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0