Node.jsライブラリからTransactional Email APIを操作する

Node.jsでメール送信を行う際にはnode-sendmailを使うのが基本だと思いますが、環境によってはSMTPが使えない場合もあります。そうした時にはWeb API経由でのメール送信が便利です。

Customers Mail Cloudにはメール送信用のAPIが用意されていますが、今回はさらに手軽に使いやすくするライブラリを開発したので紹介します。

customersmailcloud - npm

最も基本的なメール送信についてはCustomers Mail Cloud用のNode.jsライブラリでメール送信を行う - Customers Mail Cloud ブログを参照してください。今回はTransactional Email APIを操作する機能について解説します。

インストール

インストールは npm コマンドで行います。

npm i customersmailcloud -S

使い方

まずライブラリをインポートします。

const { CustomersMailCloud } = require('customersmailcloud');

次に初期化します。 Node.jsでメールを送信する - Email Sending API - Customers Mail Cloud ブログ ブログを参考にAPIユーザ、APIキーを作成してください。

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

現在は送信エラーになったメールを取り出す Bounces APIに対応しています。

const bounce = client.bounce()

サーバ構成を指定します。

bounce.setServerComposition('sandbox')

さらに検索条件を指定できます。条件はBounces | Customers Mail Cloudのパラメータを参照してください。

bounce.setStartDate(new Date(2020, 5, 17))
bounce.setLimit(100)

メソッドは下記を用意しています。

  • setServerComposition(name: string)
  • setEmail(address: string)
  • setStatus(status: number)
  • setStartDate(date: Date)
  • setEndDate(date: Date)
  • setDate(date: Date)
  • setHour(hour: number)
  • setMinute(minute: number)
  • setPage(page: number)
  • setLimit(limit: number)

後は list メソッドでデータを取得します。

const res = await bounce.list()
console.log(res)

結果は次のように返ってきます。

[
  CMCMail {
    fields: {
      apiData: '',
      created: 2020-06-17T09:50:20.000Z,
      from: 'info@smtps.jp',
      messageId: '<f3b6f390-b07f-11ea-a9aa-9ca3ba30b181@mta04.sandbox.smtps.jp>',
      reason: 'host unknown',
      returnPath: 'info@return.sandbox.smtps.jp',
      status: 1,
      subject: 'テストメール',
      to: 'test@test-domain.jp'
    }
  },
  CMCMail {
    :
  }
]

コードについて

コードは goofmint/CustomersMailCloud-js: Customers Mail Cloud用のNode.jsライブラリですで公開しています。不具合などがあれば、ご指摘ください。コードは通常のJavaScriptの他、TypeScriptにも対応しています。

まとめ

エラーメール分析を行うことで、より効率的なメール配信が可能になります。Node.jsライブラリを使えば、とても簡単です。ぜひお試しください。