LoginSignup
0
0

blastengineのNode.js SDKでメールのログを取得する

Last updated at Posted at 2023-10-18

blastengineは開発者にとって使いやすいメール配信サービスを提供しています。今回はNode.js SDK向けに実装した配信一覧・配信ログ一覧取得機能について紹介します。

blastengine - npm

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

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

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

ユーザ登録する

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

Untitled.png

送信元ドメインの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になります。

SDKのインストール

SDKは npm コマンドでインストールできます。

npm i blastengine

SDKのインポート

まずSDKをインポートします。エラーレポート用のErrorReportも取得します。

import { BlastEngine, Mail, Log } from 'blastengine';

初期化

先ほどのAPIキーとユーザIDを使って初期化します。

new BlastEngine(YOUR_USER_ID, YOUR_API_KEY);

配信一覧を取得する

配信一覧はMailクラスにて取得します。結果はトランザクションメール(Transaction)またはバルクメール(Bulk)クラスの配列です。

指定できるパラメーターはblastengine 配信一覧APIに依ります。

以下は編集中のバルクメールを一覧取得して、それを削除するコードです。

const mails = await Mail.find({ size: 100, delivery_type: ['BULK'], status: ['EDIT'] }) as Bulk[];
for (const bulk of mails) {
	await bulk.delete();
}

配信ログ一覧を取得する

配信ログ一覧はLogクラスにて取得します。結果はLogクラスのインスタンスの配列です。

指定できるパラメーターはblastengine 配信ログ一覧APIに依ります。

以下はSMTPで配信したメールのログを取得するコードです。

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