Customers Mail CloudのTypeScriptライブラリでメール配信状態を取得する

Customers Mail Cloudには大きく分けて3つのAPIが用意されています。

  • メール送信
  • Webhook
  • メール配信状態取得、更新

メール送信APIはSMTPやWeb APIを通じてメール送信を行います。Webhookはメールの受信や配信結果を受け取るための仕組みです。そしてメール配信状態取得APIはバッチ処理である日付のメール配信結果を受け取れます。

Webhookで処理するのも良いですが、バッチ処理でも問題ない場合はメール配信状態取得APIを利用する方が手軽です。サーバを立てる必要もなく、ローカルコンピュータからでも取得できます。

今回、TypeScript版ライブラリでメール配信状態取得APIに対応したので、その使い方を解説します。

ライブラリのインストール

ライブラリの名前は customers_mail_cloud です。npmやyarnでインストールできます。

npm i customers_mail_cloud -S

初期化

ライブラリの初期化は次のようなコードになります。あらかじめCustomers Mail CloudでAPIユーザ、APIキーを取得しておいてください。

const client = new CustomersMailCloud('API_USER', 'API_KEY')

メール配信状態オブジェクトの取得

メール配信状態は次の3つに分かれています。

メールの種類 メソッド
正常終了したメール cliend.delivery()
エラーメール client.bounce()
ブロック client.block()

こちらの詳細についてはドキュメントを参考にしてください。

エラーメールを取得する

今回はエラーメールを取得してみます。日付も指定し、取得数(今回は100件)も取得しています。

const bounce = client.bounce()
bounce.setServerComposition('sandbox')
bounce.setStartDate(new Date(2020, 10, 5))
bounce.setLimit(100)
const res = await bounce.list()
console.log(res)

結果はメールの情報が入った配列になります。メールのIDが入っていますので、システムから送信した際のIDと突合して今後はメールを送信しないようにするといった処理ができるでしょう。

[
  CMCMail {
    fields: {
      apiData: '',
      created: 2020-11-08T07:32:14.000Z,
      from: 'from@smtps.jp',
      messageId: '<84079d20-2194-11eb-ae4f-9ca3ba311822@mta03.sandbox.smtps.jp>',
      reason: "550 5.1.1 The email account that you tried to reach does not exist. Please try 5.1.1 double-checking the recipient's email address for typos or 5.1.1 unnecessary spaces. Learn more at 5.1.1  https://support.google.com/mail/?p=NoSuchUser o10si5305699pgp.521 - gsmtp (in reply to RCPT TO)",
      returnPath: 'from@return.sandbox.smtps.jp',
      status: 2,
      subject: 'Example Subject',
      to: 'example@example.com'
    }
  },
  :
}

配送データを取得する場合は次のようになります。

const delivery = client.delivery()
delivery.setServerComposition('sandbox')
delivery.setDate(new Date(2020, 10, 5))
delivery.setLimit(100)
const res = await delivery.list()
console.log(res)

まとめ

TypeScript版はサーバサイドはもちろん、AWS LambdaのようなFaaS上で動かすこともできます。Node.jsプロジェクトでメール送信処理が必要になったら、ぜひCustomers Mail Cloudをご利用ください。

クラウドからのメール送信を簡単に。確実に。| Customers Mail Cloud